changeset 0:e32fe563e124

First commit
author Andrew McPherson <andrewm@eecs.qmul.ac.uk>
date Fri, 10 Oct 2014 15:41:23 +0100
parents
children 04e171d2a747
files .DS_Store LICENSE.txt README.txt effects/autowah/.DS_Store effects/autowah/Source/PluginEditor.cpp effects/autowah/Source/PluginEditor.h effects/autowah/Source/PluginProcessor.cpp effects/autowah/Source/PluginProcessor.h effects/autowah/Source/ResonantLowpassFilter.cpp effects/autowah/Source/ResonantLowpassFilter.h effects/autowah/autowah.jucer effects/chorus/.DS_Store effects/chorus/Source/PluginEditor.cpp effects/chorus/Source/PluginEditor.h effects/chorus/Source/PluginProcessor.cpp effects/chorus/Source/PluginProcessor.h effects/chorus/chorus.jucer effects/compressor/Compressor.jucer effects/compressor/Source/PluginEditor.cpp effects/compressor/Source/PluginEditor.h effects/compressor/Source/PluginProcessor.cpp effects/compressor/Source/PluginProcessor.h effects/delay/.DS_Store effects/delay/Source/PluginEditor.cpp effects/delay/Source/PluginEditor.h effects/delay/Source/PluginProcessor.cpp effects/delay/Source/PluginProcessor.h effects/delay/delay.jucer effects/distortion/.DS_Store effects/distortion/Source/PluginEditor.cpp effects/distortion/Source/PluginEditor.h effects/distortion/Source/PluginProcessor.cpp effects/distortion/Source/PluginProcessor.h effects/distortion/distortion.jucer effects/empty/.DS_Store effects/empty/Source/PluginEditor.cpp effects/empty/Source/PluginEditor.h effects/empty/Source/PluginProcessor.cpp effects/empty/Source/PluginProcessor.h effects/empty/empty.jucer effects/flanger/.DS_Store effects/flanger/Source/PluginEditor.cpp effects/flanger/Source/PluginEditor.h effects/flanger/Source/PluginProcessor.cpp effects/flanger/Source/PluginProcessor.h effects/flanger/flanger.jucer effects/parametriceq/.DS_Store effects/parametriceq/Source/ParametricEQFilter.cpp effects/parametriceq/Source/ParametricEQFilter.h effects/parametriceq/Source/PluginEditor.cpp effects/parametriceq/Source/PluginEditor.h effects/parametriceq/Source/PluginProcessor.cpp effects/parametriceq/Source/PluginProcessor.h effects/parametriceq/parametriceq.jucer effects/phaser/.DS_Store effects/phaser/Source/OnePoleAllpassFilter.cpp effects/phaser/Source/OnePoleAllpassFilter.h effects/phaser/Source/PluginEditor.cpp effects/phaser/Source/PluginEditor.h effects/phaser/Source/PluginProcessor.cpp effects/phaser/Source/PluginProcessor.h effects/phaser/Source/TwoPoleAllpassFilter.cpp effects/phaser/Source/TwoPoleAllpassFilter.h effects/phaser/phaser.jucer effects/pingpongdelay/.DS_Store effects/pingpongdelay/Source/PluginEditor.cpp effects/pingpongdelay/Source/PluginEditor.h effects/pingpongdelay/Source/PluginProcessor.cpp effects/pingpongdelay/Source/PluginProcessor.h effects/pingpongdelay/pingpongdelay.jucer effects/pvoc_passthrough/.DS_Store effects/pvoc_passthrough/Source/PluginEditor.cpp effects/pvoc_passthrough/Source/PluginEditor.h effects/pvoc_passthrough/Source/PluginProcessor.cpp effects/pvoc_passthrough/Source/PluginProcessor.h effects/pvoc_passthrough/pvoc_passthrough.jucer effects/pvoc_pitchshift/.DS_Store effects/pvoc_pitchshift/Source/PluginEditor.cpp effects/pvoc_pitchshift/Source/PluginEditor.h effects/pvoc_pitchshift/Source/PluginProcessor.cpp effects/pvoc_pitchshift/Source/PluginProcessor.h effects/pvoc_pitchshift/pvoc_pitchshift.jucer effects/reverb/.DS_Store effects/reverb/Source/MVerb.h effects/reverb/Source/PluginEditor.cpp effects/reverb/Source/PluginEditor.h effects/reverb/Source/PluginProcessor.cpp effects/reverb/Source/PluginProcessor.h effects/reverb/Source/gpl-3.0.txt effects/reverb/reverb.jucer effects/ringmod/.DS_Store effects/ringmod/Source/PluginEditor.cpp effects/ringmod/Source/PluginEditor.h effects/ringmod/Source/PluginProcessor.cpp effects/ringmod/Source/PluginProcessor.h effects/ringmod/ringmod.jucer effects/robotisation/.DS_Store effects/robotisation/Source/PluginEditor.cpp effects/robotisation/Source/PluginEditor.h effects/robotisation/Source/PluginProcessor.cpp effects/robotisation/Source/PluginProcessor.h effects/robotisation/robotisation.jucer effects/tremolo/.DS_Store effects/tremolo/Source/PluginEditor.cpp effects/tremolo/Source/PluginEditor.h effects/tremolo/Source/PluginProcessor.cpp effects/tremolo/Source/PluginProcessor.h effects/tremolo/tremolo.jucer effects/vibrato/.DS_Store effects/vibrato/Source/PluginEditor.cpp effects/vibrato/Source/PluginEditor.h effects/vibrato/Source/PluginProcessor.cpp effects/vibrato/Source/PluginProcessor.h effects/vibrato/vibrato.jucer effects/wahwah/.DS_Store effects/wahwah/Source/PluginEditor.cpp effects/wahwah/Source/PluginEditor.h effects/wahwah/Source/PluginProcessor.cpp effects/wahwah/Source/PluginProcessor.h effects/wahwah/Source/ResonantLowpassFilter.cpp effects/wahwah/Source/ResonantLowpassFilter.h effects/wahwah/wahwah.jucer
diffstat 122 files changed, 32651 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE.txt	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.txt	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,24 @@
+*** About ***
+
+This repository contains code for AudioUnit and VST plugins using the Juce framework (www.rawmaterialsoftware.com). In addition to the effect source itself, Juce and the VST SDK (2.4) are included to minimise setup time.
+
+This code accompanies the textbook "Audio Effects: Theory, Implementation and Application" by Joshua D. Reiss and Andrew P. McPherson (CRC Press, 2014).
+
+*** Compiling ***
+
+Juce automates the creation of projects/makefiles in various development environments. The file "[name].jucer" in each effect folder contains all the required information to generate a project. These files should be opened in the Introjucer program included in your Juce folder (extras/Introjucer/). Build the Introjucer first and then use it to generate a project in your local development environment. Note that you will need to set the "module path" to your Juce folder within each Introjucer project in order for the projects to compile correctly.
+
+Platform- and environment-specific files (anything in the Builds directory of an effect) should not be included in the repository since Juce automatically regenerates this with every run of the Introjucer.
+
+Mac-specific note: Starting with XCode 4.3, the location of the CoreAudio/AudioUnit files moved from its previous location in /Developer/Extras to a location within the Xcode application bundle (/Applications/Xcode.app/). The Xcode projects Juce creates will not be able to find the required files. The easiest solution for anyone who has installed a previous version of Xcode previously is to create a symbolic link from the files in /Developer/Extras inside the Xcode bundle:
+
+cd /Applications/Xcode.app/Contents/Developer
+sudo ln -s /Developer/Extras Extras
+
+On the first compile, a couple errors related to static casting will appear in Apple's AudioUnit files. Add the suggested static_cast fixes and everything should compile normally. (This only has to be done once since the changes are to Apple's Developer/Extras files.)
+
+On a machine where Xcode 4.2 or prior has never been installed, another solution will need to be found.
+
+*** Running ***
+
+By default, the resulting plug-ins will be created as VST on all platforms and additionally AudioUnits on Mac. Any environment that hosts these plugins (e.g. AU Lab on Mac OS X) can be used to test them.
\ No newline at end of file
Binary file effects/autowah/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/autowah/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,432 @@
+/*
+  ==============================================================================
+
+  This is an automatically generated GUI class created by the Introjucer!
+
+  Be careful when adding custom code to these files, as only the code within
+  the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
+  and re-saved.
+
+  Created with Introjucer version: 3.1.0
+
+  ------------------------------------------------------------------------------
+
+  The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
+  Copyright 2004-13 by Raw Material Software Ltd.
+
+  ==============================================================================
+*/
+
+//[Headers] You can add your own extra header files here...
+#include "PluginProcessor.h"
+//[/Headers]
+
+#include "PluginEditor.h"
+
+
+//[MiscUserDefs] You can add your own user definitions and misc code here...
+
+//LookAndFeelCustom* AutoWahAudioProcessorEditor::customLookAndFeel = NULL;
+
+//[/MiscUserDefs]
+
+//==============================================================================
+AutoWahAudioProcessorEditor::AutoWahAudioProcessorEditor (AutoWahAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter)
+{
+    addAndMakeVisible (baseFrequencySlider_ = new Slider ("new slider"));
+    baseFrequencySlider_->setRange (200, 1000, 0.1);
+    baseFrequencySlider_->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    baseFrequencySlider_->setTextBoxStyle (Slider::TextBoxBelow, false, 60, 20);
+    baseFrequencySlider_->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    baseFrequencySlider_->setColour (Slider::textBoxTextColourId, Colours::white);
+    baseFrequencySlider_->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
+    baseFrequencySlider_->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    baseFrequencySlider_->addListener (this);
+
+    addAndMakeVisible (qSlider_ = new Slider ("new slider"));
+    qSlider_->setRange (2, 20, 0.1);
+    qSlider_->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    qSlider_->setTextBoxStyle (Slider::TextBoxBelow, false, 60, 20);
+    qSlider_->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    qSlider_->setColour (Slider::textBoxTextColourId, Colours::white);
+    qSlider_->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
+    qSlider_->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    qSlider_->addListener (this);
+
+    addAndMakeVisible (lfoFrequencySlider_ = new Slider ("new slider"));
+    lfoFrequencySlider_->setRange (0.2, 20, 0.1);
+    lfoFrequencySlider_->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    lfoFrequencySlider_->setTextBoxStyle (Slider::TextBoxBelow, false, 60, 20);
+    lfoFrequencySlider_->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    lfoFrequencySlider_->setColour (Slider::textBoxTextColourId, Colours::white);
+    lfoFrequencySlider_->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
+    lfoFrequencySlider_->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    lfoFrequencySlider_->addListener (this);
+
+    addAndMakeVisible (lfoWidthSlider_ = new Slider ("new slider"));
+    lfoWidthSlider_->setRange (0, 2000, 0.1);
+    lfoWidthSlider_->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    lfoWidthSlider_->setTextBoxStyle (Slider::TextBoxBelow, false, 60, 20);
+    lfoWidthSlider_->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    lfoWidthSlider_->setColour (Slider::textBoxTextColourId, Colours::white);
+    lfoWidthSlider_->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
+    lfoWidthSlider_->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    lfoWidthSlider_->addListener (this);
+
+    addAndMakeVisible (envelopeWidthSlider_ = new Slider ("new slider"));
+    envelopeWidthSlider_->setRange (0, 4000, 0.1);
+    envelopeWidthSlider_->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    envelopeWidthSlider_->setTextBoxStyle (Slider::TextBoxBelow, false, 60, 20);
+    envelopeWidthSlider_->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    envelopeWidthSlider_->setColour (Slider::textBoxTextColourId, Colours::white);
+    envelopeWidthSlider_->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
+    envelopeWidthSlider_->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    envelopeWidthSlider_->addListener (this);
+
+    addAndMakeVisible (envelopeAttackSlider_ = new Slider ("new slider"));
+    envelopeAttackSlider_->setRange (0, 0.1, 0.0001);
+    envelopeAttackSlider_->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    envelopeAttackSlider_->setTextBoxStyle (Slider::TextBoxBelow, false, 60, 20);
+    envelopeAttackSlider_->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    envelopeAttackSlider_->setColour (Slider::textBoxTextColourId, Colours::white);
+    envelopeAttackSlider_->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
+    envelopeAttackSlider_->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    envelopeAttackSlider_->addListener (this);
+    envelopeAttackSlider_->setSkewFactor (0.02);
+
+    addAndMakeVisible (envelopeDecaySlider_ = new Slider ("new slider"));
+    envelopeDecaySlider_->setRange (0, 2, 0.001);
+    envelopeDecaySlider_->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    envelopeDecaySlider_->setTextBoxStyle (Slider::TextBoxBelow, false, 60, 20);
+    envelopeDecaySlider_->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    envelopeDecaySlider_->setColour (Slider::textBoxTextColourId, Colours::white);
+    envelopeDecaySlider_->setColour (Slider::textBoxBackgroundColourId, Colour (0x00000000));
+    envelopeDecaySlider_->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    envelopeDecaySlider_->addListener (this);
+    envelopeDecaySlider_->setSkewFactor (0.4);
+
+
+    //[UserPreSize]
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(550, 200, 550, 200);
+    //[/UserPreSize]
+
+    setSize (354, 380);
+
+
+    //[Constructor] You can add your own custom stuff here..
+	//AutoWahAudioProcessor* ourProcessor = getProcessor();   // UNUSED (include when necessary)
+
+    UpdateInterfaceValues();
+
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+
+    //************************************ SET LOOKANDFEEL **********************************
+    //	if( customLookAndFeel == NULL )
+    //	{
+    //		customLookAndFeel = new LookAndFeelCustom();
+    //		LookAndFeel::setDefaultLookAndFeel (/*&*/customLookAndFeel);
+    //	}
+
+	//***************************************************************************************
+
+
+    startTimer(50);
+
+    //[/Constructor]
+}
+
+AutoWahAudioProcessorEditor::~AutoWahAudioProcessorEditor()
+{
+    //[Destructor_pre]. You can add your own custom destruction code here..
+    //[/Destructor_pre]
+
+    baseFrequencySlider_ = nullptr;
+    qSlider_ = nullptr;
+    lfoFrequencySlider_ = nullptr;
+    lfoWidthSlider_ = nullptr;
+    envelopeWidthSlider_ = nullptr;
+    envelopeAttackSlider_ = nullptr;
+    envelopeDecaySlider_ = nullptr;
+
+
+    //[Destructor]. You can add your own custom destruction code here..
+    //[/Destructor]
+}
+
+//==============================================================================
+void AutoWahAudioProcessorEditor::paint (Graphics& g)
+{
+    //[UserPrePaint] Add your own custom painting code here..
+    //[/UserPrePaint]
+
+    g.fillAll (Colour (0xffa7998c));
+
+    g.setColour (Colour (0xff9e8365));
+    g.fillRoundedRectangle (11.0f, 12.0f, 333.0f, 94.0f, 10.000f);
+
+    g.setColour (Colour (0xff9e8365));
+    g.fillRoundedRectangle (11.0f, 115.0f, 333.0f, 94.0f, 10.000f);
+
+    g.setColour (Colour (0xff9e8365));
+    g.fillRoundedRectangle (11.0f, 217.0f, 333.0f, 152.0f, 10.000f);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (15.00f, Font::plain));
+    g.drawText (TRANS("Q"),
+                190, 32, 72, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (15.00f, Font::plain));
+    g.drawText (TRANS("Depth"),
+                190, 138, 72, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (15.00f, Font::plain));
+    g.drawText (TRANS("Attack"),
+                190, 233, 72, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (15.00f, Font::plain));
+    g.drawText (TRANS("Release"),
+                192, 304, 72, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (15.00f, Font::plain));
+    g.drawText (TRANS("Frequency"),
+                12, 32, 72, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (15.00f, Font::plain));
+    g.drawText (TRANS("Frequency"),
+                3, 138, 89, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (15.00f, Font::plain));
+    g.drawText (TRANS("Depth"),
+                0, 233, 95, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (28.00f, Font::bold));
+    g.drawText (TRANS("AutoWah"),
+                2, -2, 111, 28,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (24.00f, Font::plain));
+    g.drawText (TRANS("LFO"),
+                1, 176, 69, 34,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff992b13));
+    g.setFont (Font (24.00f, Font::plain));
+    g.drawText (TRANS("ENVELOPE"),
+                10, 334, 112, 34,
+                Justification::centred, true);
+
+    //[UserPaint] Add your own custom painting code here..
+    //[/UserPaint]
+}
+
+void AutoWahAudioProcessorEditor::resized()
+{
+    baseFrequencySlider_->setBounds (86, 20, 80, 80);
+    qSlider_->setBounds (261, 20, 80, 80);
+    lfoFrequencySlider_->setBounds (86, 126, 80, 80);
+    lfoWidthSlider_->setBounds (261, 126, 80, 80);
+    envelopeWidthSlider_->setBounds (86, 223, 80, 80);
+    envelopeAttackSlider_->setBounds (269, 223, 66, 66);
+    envelopeDecaySlider_->setBounds (270, 299, 66, 66);
+    //[UserResized] Add your own custom resize handling here..
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+    //[/UserResized]
+}
+
+void AutoWahAudioProcessorEditor::sliderValueChanged (Slider* sliderThatWasMoved)
+{
+    //[UsersliderValueChanged_Pre]
+    AutoWahAudioProcessor* ourProcessor = getProcessor();
+    //[/UsersliderValueChanged_Pre]
+
+    if (sliderThatWasMoved == baseFrequencySlider_)
+    {
+        //[UserSliderCode_baseFrequencySlider_] -- add your slider handling code here..
+        ourProcessor->setParameterNotifyingHost (AutoWahAudioProcessor::kBaseFrequencyParam,
+                                                   (float)baseFrequencySlider_->getValue());
+        //[/UserSliderCode_baseFrequencySlider_]
+    }
+    else if (sliderThatWasMoved == qSlider_)
+    {
+        //[UserSliderCode_qSlider_] -- add your slider handling code here..
+        ourProcessor->setParameterNotifyingHost (AutoWahAudioProcessor::kQParam,
+                                                   (float)qSlider_->getValue());
+        //[/UserSliderCode_qSlider_]
+    }
+    else if (sliderThatWasMoved == lfoFrequencySlider_)
+    {
+        //[UserSliderCode_lfoFrequencySlider_] -- add your slider handling code here..
+        ourProcessor->setParameterNotifyingHost (AutoWahAudioProcessor::kLFOFrequencyParam,
+                                                   (float)lfoFrequencySlider_->getValue());
+        //[/UserSliderCode_lfoFrequencySlider_]
+    }
+    else if (sliderThatWasMoved == lfoWidthSlider_)
+    {
+        //[UserSliderCode_lfoWidthSlider_] -- add your slider handling code here..
+        ourProcessor->setParameterNotifyingHost (AutoWahAudioProcessor::kLFOWidthParam,
+                                                   (float)lfoWidthSlider_->getValue());
+        //[/UserSliderCode_lfoWidthSlider_]
+    }
+    else if (sliderThatWasMoved == envelopeWidthSlider_)
+    {
+        //[UserSliderCode_envelopeWidthSlider_] -- add your slider handling code here..
+        ourProcessor->setParameterNotifyingHost (AutoWahAudioProcessor::kEnvelopeWidthParam,
+                                                   (float)envelopeWidthSlider_->getValue());
+        //[/UserSliderCode_envelopeWidthSlider_]
+    }
+    else if (sliderThatWasMoved == envelopeAttackSlider_)
+    {
+        //[UserSliderCode_envelopeAttackSlider_] -- add your slider handling code here..
+        ourProcessor->setParameterNotifyingHost (AutoWahAudioProcessor::kEnvelopeAttackParam,
+                                                   (float)envelopeAttackSlider_->getValue());
+        //[/UserSliderCode_envelopeAttackSlider_]
+    }
+    else if (sliderThatWasMoved == envelopeDecaySlider_)
+    {
+        //[UserSliderCode_envelopeDecaySlider_] -- add your slider handling code here..
+        ourProcessor->setParameterNotifyingHost (AutoWahAudioProcessor::kEnvelopeDecayParam,
+                                                   (float)envelopeDecaySlider_->getValue());
+        //[/UserSliderCode_envelopeDecaySlider_]
+    }
+
+    //[UsersliderValueChanged_Post]
+    //[/UsersliderValueChanged_Post]
+}
+
+
+
+//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
+void AutoWahAudioProcessorEditor::UpdateInterfaceValues()
+{
+	AutoWahAudioProcessor* ourProcessor = getProcessor();
+
+    // Update Sliders
+    baseFrequencySlider_    ->setValue(ourProcessor->baseFrequency_, dontSendNotification);
+    qSlider_                ->setValue(ourProcessor->q_, dontSendNotification);
+    lfoFrequencySlider_     ->setValue(ourProcessor->lfoFrequency_);
+    lfoWidthSlider_         ->setValue(ourProcessor->lfoWidth_);
+    envelopeWidthSlider_    ->setValue(ourProcessor->envelopeWidth_);
+    envelopeAttackSlider_   ->setValue(ourProcessor->envelopeAttack_);
+    envelopeDecaySlider_    ->setValue(ourProcessor->envelopeDecay_);
+
+}
+
+// This timer periodically checks whether any of the filter's parameters have changed...
+void AutoWahAudioProcessorEditor::timerCallback()
+{
+    // AutoWahAudioProcessor* ourProcessor = getProcessor();
+}
+
+//[/MiscUserCode]
+
+
+//==============================================================================
+#if 0
+/*  -- Introjucer information section --
+
+    This is where the Introjucer stores the metadata that describe this GUI layout, so
+    make changes in here at your peril!
+
+BEGIN_JUCER_METADATA
+
+<JUCER_COMPONENT documentType="Component" className="AutoWahAudioProcessorEditor"
+                 componentName="" parentClasses="public AudioProcessorEditor, public Timer"
+                 constructorParams="AutoWahAudioProcessor* ownerFilter" variableInitialisers="AudioProcessorEditor (ownerFilter)"
+                 snapPixels="8" snapActive="0" snapShown="1" overlayOpacity="0.330"
+                 fixedSize="1" initialWidth="354" initialHeight="380">
+  <BACKGROUND backgroundColour="ffa7998c">
+    <ROUNDRECT pos="11 12 333 94" cornerSize="10" fill="solid: ff9e8365" hasStroke="0"/>
+    <ROUNDRECT pos="11 115 333 94" cornerSize="10" fill="solid: ff9e8365" hasStroke="0"/>
+    <ROUNDRECT pos="11 217 333 152" cornerSize="10" fill="solid: ff9e8365" hasStroke="0"/>
+    <TEXT pos="190 32 72 30" fill="solid: ff992b13" hasStroke="0" text="Q"
+          fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+    <TEXT pos="190 138 72 30" fill="solid: ff992b13" hasStroke="0" text="Depth"
+          fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+    <TEXT pos="190 233 72 30" fill="solid: ff992b13" hasStroke="0" text="Attack"
+          fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+    <TEXT pos="192 304 72 30" fill="solid: ff992b13" hasStroke="0" text="Release"
+          fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+    <TEXT pos="12 32 72 30" fill="solid: ff992b13" hasStroke="0" text="Frequency"
+          fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+    <TEXT pos="3 138 89 30" fill="solid: ff992b13" hasStroke="0" text="Frequency"
+          fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+    <TEXT pos="0 233 95 30" fill="solid: ff992b13" hasStroke="0" text="Depth"
+          fontname="Default font" fontsize="15" bold="0" italic="0" justification="36"/>
+    <TEXT pos="2 -2 111 28" fill="solid: ff992b13" hasStroke="0" text="AutoWah"
+          fontname="Default font" fontsize="28" bold="1" italic="0" justification="36"/>
+    <TEXT pos="1 176 69 34" fill="solid: ff992b13" hasStroke="0" text="LFO"
+          fontname="Default font" fontsize="24" bold="0" italic="0" justification="36"/>
+    <TEXT pos="10 334 112 34" fill="solid: ff992b13" hasStroke="0" text="ENVELOPE"
+          fontname="Default font" fontsize="24" bold="0" italic="0" justification="36"/>
+  </BACKGROUND>
+  <SLIDER name="new slider" id="b7cd5ae6d0a3bfc6" memberName="baseFrequencySlider_"
+          virtualName="" explicitFocusOrder="0" pos="86 20 80 80" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="0" textboxoutline="808080"
+          min="200" max="1000" int="0.10000000000000000555" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="60"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="d914eb36766034b1" memberName="qSlider_"
+          virtualName="" explicitFocusOrder="0" pos="261 20 80 80" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="0" textboxoutline="808080"
+          min="2" max="20" int="0.10000000000000000555" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="60"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="d914eb36766034b2" memberName="lfoFrequencySlider_"
+          virtualName="" explicitFocusOrder="0" pos="86 126 80 80" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="0" textboxoutline="808080"
+          min="0.2000000000000000111" max="20" int="0.10000000000000000555"
+          style="RotaryHorizontalVerticalDrag" textBoxPos="TextBoxBelow"
+          textBoxEditable="1" textBoxWidth="60" textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="d914eb36766034b3" memberName="lfoWidthSlider_"
+          virtualName="" explicitFocusOrder="0" pos="261 126 80 80" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="0" textboxoutline="808080"
+          min="0" max="2000" int="0.10000000000000000555" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="60"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="d914eb36766034b4" memberName="envelopeWidthSlider_"
+          virtualName="" explicitFocusOrder="0" pos="86 223 80 80" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="0" textboxoutline="808080"
+          min="0" max="4000" int="0.10000000000000000555" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="60"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="d914eb36766034b5" memberName="envelopeAttackSlider_"
+          virtualName="" explicitFocusOrder="0" pos="269 223 66 66" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="0" textboxoutline="808080"
+          min="0" max="0.10000000000000000555" int="0.00010000000000000000479"
+          style="RotaryHorizontalVerticalDrag" textBoxPos="TextBoxBelow"
+          textBoxEditable="1" textBoxWidth="60" textBoxHeight="20" skewFactor="0.020000000000000000416"/>
+  <SLIDER name="new slider" id="d914eb36766034b6" memberName="envelopeDecaySlider_"
+          virtualName="" explicitFocusOrder="0" pos="270 299 66 66" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="0" textboxoutline="808080"
+          min="0" max="2" int="0.0010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="60"
+          textBoxHeight="20" skewFactor="0.4000000000000000222"/>
+</JUCER_COMPONENT>
+
+END_JUCER_METADATA
+*/
+#endif
+
+
+//[EndFile] You can add extra defines here...
+//[/EndFile]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/autowah/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,99 @@
+/*
+  ==============================================================================
+
+  This is an automatically generated GUI class created by the Introjucer!
+
+  Be careful when adding custom code to these files, as only the code within
+  the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
+  and re-saved.
+
+  Created with Introjucer version: 3.1.0
+
+  ------------------------------------------------------------------------------
+
+  The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
+  Copyright 2004-13 by Raw Material Software Ltd.
+
+  ==============================================================================
+*/
+
+#ifndef __JUCE_HEADER_FEB21157F431A7A8__
+#define __JUCE_HEADER_FEB21157F431A7A8__
+
+//[Headers]     -- You can add your own extra header files here --
+
+//#include "../../Shared/LookAndFeelCustom.h" //used to be _nographics
+//[/Headers]
+
+
+
+//==============================================================================
+/**
+                                                                    //[Comments]
+ An auto-generated component, created by the Jucer.
+
+ Describe your class and how it works here!
+                                                                    //[/Comments]
+*/
+class AutoWahAudioProcessorEditor  : public AudioProcessorEditor,
+                                     public Timer,
+                                     public SliderListener
+{
+public:
+    //==============================================================================
+    AutoWahAudioProcessorEditor (AutoWahAudioProcessor* ownerFilter);
+    ~AutoWahAudioProcessorEditor();
+
+    //==============================================================================
+    //[UserMethods]     -- You can add your own custom methods in this section.
+	void timerCallback();
+    //[/UserMethods]
+
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider* sliderThatWasMoved);
+
+
+
+private:
+    //[UserVariables]   -- You can add your own custom variables in this section.
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+
+    //static LookAndFeelCustom* customLookAndFeel;
+
+    AudioPlayHead::CurrentPositionInfo lastDisplayedPosition;
+
+    AutoWahAudioProcessor* getProcessor() const
+    {
+        return static_cast <AutoWahAudioProcessor*> (getAudioProcessor());
+    }
+
+    void displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos);
+
+	void UpdateInterfaceValues();
+
+	void SetComboBoxActivity(ComboBox * comboBox, bool active);
+	void SetSliderActivity(Slider * slider, bool active);
+
+
+    //[/UserVariables]
+
+    //==============================================================================
+    ScopedPointer<Slider> baseFrequencySlider_;
+    ScopedPointer<Slider> qSlider_;
+    ScopedPointer<Slider> lfoFrequencySlider_;
+    ScopedPointer<Slider> lfoWidthSlider_;
+    ScopedPointer<Slider> envelopeWidthSlider_;
+    ScopedPointer<Slider> envelopeAttackSlider_;
+    ScopedPointer<Slider> envelopeDecaySlider_;
+
+
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AutoWahAudioProcessorEditor)
+};
+
+//[EndFile] You can add extra defines here...
+//[/EndFile]
+
+#endif   // __JUCE_HEADER_FEB21157F431A7A8__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/autowah/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,459 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Auto-Wah: LFO or envelope-operated wah effect
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+// The filter will produce a resonant peak of amplitude Q; bring everything
+// down somewhat to compensate, though try to maintain some perceptual balance
+// of being similar loudness. (This factor has been chosen somewhat arbitrarily.)
+const double kWahwahFilterGain = 0.5;
+
+//==============================================================================
+AutoWahAudioProcessor::AutoWahAudioProcessor()
+{
+    // Set default values:
+    baseFrequency_ = 350.0;
+    q_ = 5.0;
+    lfoFrequency_ = 2.0;
+    lfoWidth_ = 1000.0;
+    envelopeWidth_ = 0.0;
+    envelopeAttack_ = 0.005;
+    envelopeDecay_ = 0.1;
+    
+    // Initialise the filters later when we know how many channels
+    wahFilters_ = 0;
+    numWahFilters_ = 0;
+    envelopes_ = 0;
+    numEnvelopes_ = 0;
+    attackMultiplier_ = 1.0;
+    decayMultiplier_ = 0.0;
+    
+    inverseSampleRate_ = 1.0/44100.0; // start with a sensible default
+    
+    lastUIWidth_ = 550;
+    lastUIHeight_ = 200;
+}
+
+AutoWahAudioProcessor::~AutoWahAudioProcessor()
+{
+    deallocateFilters();
+}
+
+//==============================================================================
+const String AutoWahAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int AutoWahAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float AutoWahAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kBaseFrequencyParam:  return baseFrequency_;
+        case kQParam:              return q_;
+        case kLFOFrequencyParam:   return lfoFrequency_;
+        case kLFOWidthParam:       return lfoWidth_;
+        case kEnvelopeWidthParam:  return envelopeWidth_;
+        case kEnvelopeAttackParam: return envelopeAttack_;
+        case kEnvelopeDecayParam:  return envelopeDecay_;
+        default:                   return 0.0f;
+    }
+}
+
+void AutoWahAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    
+    switch (index)
+    {
+        case kBaseFrequencyParam:
+            baseFrequency_ = newValue;
+            break;
+        case kQParam:
+            q_ = newValue;
+            break;
+        case kLFOFrequencyParam:
+            lfoFrequency_ = newValue;
+            break;
+        case kLFOWidthParam:
+            lfoWidth_ = newValue;
+            break;
+        case kEnvelopeWidthParam:
+            envelopeWidth_ = newValue;
+            break;
+        case kEnvelopeAttackParam:
+            envelopeAttack_ = newValue;
+            // See comment below for justification
+            if(envelopeAttack_ == 0.0)
+                attackMultiplier_ = 0.0;
+            else
+                attackMultiplier_ = pow(1.0 / M_E, inverseSampleRate_ / envelopeAttack_);
+            break;
+        case kEnvelopeDecayParam:
+            envelopeDecay_ = newValue;
+            // envelopeDecay_ sets the time constant tau. The decay is
+            // given as e^-(t/tau) so after tau seconds, it will have
+            // decayed to 1/e of its original value. tau*sampleRate samples
+            // will have passed by then, each of which multiplies the signal
+            // by decayMultiplier_.
+            if(envelopeDecay_ == 0.0)
+                decayMultiplier_ = 0.0;
+            else
+                decayMultiplier_ = pow(1.0 / M_E, inverseSampleRate_ / envelopeDecay_);
+            break;
+        default:
+            break;
+    }
+}
+
+const String AutoWahAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kBaseFrequencyParam:  return "base frequency";
+        case kQParam:              return "Q";
+        case kLFOFrequencyParam:   return "LFO frequency";
+        case kLFOWidthParam:       return "LFO width";
+        case kEnvelopeWidthParam:  return "envelope width";
+        case kEnvelopeAttackParam: return "envelope attack";
+        case kEnvelopeDecayParam:  return "envelope decay";
+        default:                   break;
+    }
+    
+    return String::empty;
+}
+
+const String AutoWahAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String AutoWahAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String AutoWahAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool AutoWahAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool AutoWahAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool AutoWahAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double AutoWahAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool AutoWahAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool AutoWahAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int AutoWahAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int AutoWahAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void AutoWahAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String AutoWahAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void AutoWahAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void AutoWahAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback
+    // initialisation that you need..
+    
+    allocateFilters();
+    inverseSampleRate_ = 1.0 / sampleRate;
+    if(envelopeDecay_ == 0.0)
+        decayMultiplier_ = 0.0;
+    else
+        decayMultiplier_ = pow(1.0 / M_E, inverseSampleRate_ / envelopeDecay_);
+    if(envelopeAttack_ == 0.0)
+        attackMultiplier_ = 0.0;
+    else
+        attackMultiplier_ = pow(1.0 / M_E, inverseSampleRate_ / envelopeAttack_);
+}
+
+void AutoWahAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+
+    deallocateFilters();
+}
+
+void AutoWahAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    int channel;
+    float ph;
+    
+    // Go through each channel and put it through the resonant lowpass filter, updating
+    // the coefficients as we go along. Each channel is processed identically in this effect.
+    
+    for(channel = 0; channel < jmin(numInputChannels, numWahFilters_); ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        ph = lfoPhase_;
+        
+        for (int sample = 0; sample < numSamples; ++sample)
+        {
+            const float in = channelData[sample];
+            float centreFrequency = baseFrequency_;
+            
+            // Calculate the envelope of the signal. Do this even if we're not currently
+            // changing the frequeny based on it, since it involves maintaining a history
+            // of the signal's behaviour.
+            
+            if(channel < numEnvelopes_) {   // Safety check
+                if(fabs(in) > envelopes_[channel]) {
+                    envelopes_[channel] += (1.0 - attackMultiplier_) * (fabs(in) - (double)envelopes_[channel]);
+                }
+                else
+                    envelopes_[channel] *= decayMultiplier_;
+            }
+            
+            // Calculate the centre frequency of the filter based on the LFO and the
+            // signal envelope
+            if(lfoWidth_ > 0.0) {
+                centreFrequency += lfoWidth_ * (0.5f + 0.5f*sinf(2.0 * M_PI * ph));
+            }
+            if(envelopeWidth_ > 0.0 && channel < numEnvelopes_) {
+                centreFrequency += envelopeWidth_ * envelopes_[channel];
+            }
+            
+            // Update filter coefficients (see ResonantLowpassFilter.cpp for calculation)
+            wahFilters_[channel]->makeResonantLowpass(inverseSampleRate_,
+                                                      centreFrequency,
+                                                      q_,
+                                                      kWahwahFilterGain);
+            
+            // Process one sample and store it back in place. See juce_IIRFilter.cpp for the
+            // application of the IIR filter.
+            channelData[sample] = wahFilters_[channel]->processSingleSampleRaw(in);
+            
+            // Update the LFO phase, keeping it in the range 0-1
+            ph += lfoFrequency_*inverseSampleRate_;
+            if(ph >= 1.0)
+                ph -= 1.0;
+        }
+    }
+    
+    lfoPhase_ = ph;
+    
+    // Go through the remaining channels. In case we have more outputs
+    // than inputs, or there aren't enough filters, we'll clear any
+    // remaining output channels (which could otherwise contain garbage)
+    while(channel < numOutputChannels)
+    {
+        buffer.clear (channel++, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool AutoWahAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* AutoWahAudioProcessor::createEditor()
+{
+    return new AutoWahAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void AutoWahAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("baseFrequency", baseFrequency_);
+    xml.setAttribute("q", q_);
+    xml.setAttribute("lfoFrequency", lfoFrequency_);
+    xml.setAttribute("lfoWidth", lfoWidth_);
+    xml.setAttribute("envelopeWidth", envelopeWidth_);
+    xml.setAttribute("envelopeAttack", envelopeAttack_);
+    xml.setAttribute("envelopeDecay", envelopeDecay_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void AutoWahAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            q_ = (float)xmlState->getDoubleAttribute("q", q_);
+            baseFrequency_ = (float)xmlState->getDoubleAttribute("baseFrequency", baseFrequency_);
+            lfoFrequency_ = (float)xmlState->getDoubleAttribute("lfoFrequency", lfoFrequency_);
+            lfoWidth_ = (float)xmlState->getDoubleAttribute("lfoWidth", lfoWidth_);
+            envelopeWidth_ = (float)xmlState->getDoubleAttribute("envelopeWidth", envelopeWidth_);
+            envelopeAttack_ = (float)xmlState->getDoubleAttribute("envelopeAttack", envelopeAttack_);
+            envelopeDecay_ = (float)xmlState->getDoubleAttribute("envelopeDecay", envelopeDecay_);
+            inverseSampleRate_ = 1.0 / getSampleRate();
+            if(envelopeDecay_ == 0.0)
+                decayMultiplier_ = 0.0;
+            else
+                decayMultiplier_ = pow(1.0 / M_E, inverseSampleRate_ / envelopeDecay_);
+            if(envelopeAttack_ == 0.0)
+                attackMultiplier_ = 0.0;
+            else
+                attackMultiplier_ = pow(1.0 / M_E, inverseSampleRate_ / envelopeAttack_);
+        }
+    }
+}
+
+void AutoWahAudioProcessor::allocateFilters()
+{
+    // Prevent leaks from reallocation
+    if(wahFilters_ != 0 || envelopes_ != 0)
+        deallocateFilters();
+    
+    // Create as many filters as we have input channels
+    numWahFilters_ = getNumInputChannels();
+    wahFilters_ = (ResonantLowpassFilter**)malloc(numWahFilters_ * sizeof(ResonantLowpassFilter*));
+    if(wahFilters_ == 0)
+        numWahFilters_ = 0;
+    else {
+        for(int i = 0; i < numWahFilters_; i++)
+            wahFilters_[i] = new ResonantLowpassFilter;
+    }
+    
+    numEnvelopes_ = getNumInputChannels();
+    envelopes_ = (double *)malloc(numEnvelopes_ * sizeof(double));
+    if(envelopes_ == 0)
+        numEnvelopes_ = 0;
+    else {
+        for(int i = 0; i < numEnvelopes_; i++)
+            envelopes_[i] = 0.0;
+    }
+}
+
+void AutoWahAudioProcessor::deallocateFilters()
+{
+    for(int i = 0; i < numWahFilters_; i++)
+        delete wahFilters_[i];
+    if(numWahFilters_ != 0)
+        free(wahFilters_);
+    numWahFilters_ = 0;
+    wahFilters_ = 0;
+    if(envelopes_ != 0)
+        free(envelopes_);
+    envelopes_ = 0;
+    numEnvelopes_ = 0;
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new AutoWahAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/autowah/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,133 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Auto-Wah: LFO or envelope-operated wah effect
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "ResonantLowpassFilter.h"
+
+//==============================================================================
+/**
+*/
+class AutoWahAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    AutoWahAudioProcessor();
+    ~AutoWahAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kBaseFrequencyParam = 0, /* Centre frequency in Hz */
+        kQParam, /* Q of the resonant filter */
+        kLFOFrequencyParam,
+        kLFOWidthParam,
+        kEnvelopeWidthParam,
+        kEnvelopeAttackParam,
+        kEnvelopeDecayParam,
+        kNumParameters
+    };
+    
+    float baseFrequency_, q_;
+    float lfoFrequency_, lfoWidth_;
+    float envelopeWidth_, envelopeAttack_, envelopeDecay_;
+private:
+    // Methods for creating and releasing memory associated with filters
+    void allocateFilters();
+    void deallocateFilters();
+    
+    float lfoPhase_;   // Phase of the low-frequency oscillator
+
+    double *envelopes_; // Values of signal envelopes for each channel
+    int numEnvelopes_;
+    
+    // Convert the attack and decay time constants to a multiplier for
+    // a first-order lowpass filter
+    double attackMultiplier_, decayMultiplier_;
+    
+    ResonantLowpassFilter **wahFilters_;
+    int numWahFilters_;
+    double inverseSampleRate_; // Save the inverse of the sample rate for faster calculation
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AutoWahAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/autowah/Source/ResonantLowpassFilter.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,65 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Auto-Wah: LFO or envelope-operated wah effect
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "ResonantLowpassFilter.h"
+
+/* The actual audio processing is handled by the Juce IIRFilter parent
+ * class. This subclass is used to define the coefficients for our
+ * implementation of a parametric equaliser.
+ */
+
+void ResonantLowpassFilter::makeResonantLowpass(const double inverseSampleRate,
+                                                const double centreFrequency,
+                                                const double Q,
+                                                const double gain) noexcept
+{
+    jassert (Q > 0);
+    
+    // Use inverse sample rate since multiplication is more efficient than
+    // division, and the sample rate is unlikely to change each call.
+    const double discreteFrequency = 2.0 * M_PI * centreFrequency * inverseSampleRate;
+    const double alpha = sin(discreteFrequency) / (2.0 * Q);
+    const double cos_w0 = cos(discreteFrequency);
+
+    /* setCoefficients() takes arguments: b0, b1, b2, a0, a1, a2
+     * It will normalise the filter according to the value of a0
+     * to allow standard time-domain implementations
+     */
+    coefficients = IIRCoefficients(0.5*(1.0 - cos_w0)*gain, (1.0 - cos_w0)*gain, 0.5*(1.0 - cos_w0)*gain, 1.0 + alpha, -2.0 * cos_w0, 1.0 - alpha );
+    
+    setCoefficients(coefficients);
+}
+
+/* Copy coefficients from another object of the same class */
+
+void ResonantLowpassFilter::copyCoefficientsFrom (const ResonantLowpassFilter& other) noexcept
+{
+    setCoefficients(other.coefficients);
+    active = other.active;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/autowah/Source/ResonantLowpassFilter.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Auto-Wah: LFO or envelope-operated wah effect
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef __ResonantLowpassFilter_H_6E48F605__
+#define __ResonantLowpassFilter_H_6E48F605__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+//==============================================================================
+/**
+ * This class implements a resonant lowpass filter used in the wah-wah
+ * effect and its variants
+ */
+
+class ResonantLowpassFilter : public IIRFilter
+{
+public:
+    //==============================================================================
+	
+	/* Sets the filter coefficients to produce a resonant lowpass with a given
+     * centre frequency and Q. Also include a gain term to offset resonant peak.
+     */
+	void makeResonantLowpass(const double inverseSampleRate,
+                             const double centreFrequency,
+                             const double Q,
+                             const double gain) noexcept;
+	
+    /** Makes this filter duplicate the set-up of another one.
+	 */
+    void copyCoefficientsFrom (const ResonantLowpassFilter& other) noexcept;
+	
+private:
+    //==============================================================================
+	JUCE_LEAK_DETECTOR (ResonantLowpassFilter);
+};
+
+
+#endif // __ResonantLowpassFilter_H_6E48F605__
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/autowah/autowah.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="zpecIc" name="autowah" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.autowaheffect" buildVST="0"
+              buildRTAS="0" buildAU="1" pluginName="Auto Wah" pluginDesc="Automatic LFO or envelope-controlled wah-wah"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="auwa" pluginChannelConfigs="{1, 1}, {2, 2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="autowahAU"
+              pluginAUViewClass="autowahAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" aaxIdentifier="com.yourcompany.autowah"
+              pluginAAXCategory="AAX_ePlugInCategory_Dynamics" includeBinaryInAppConfig="1"
+              buildVST3="0" buildAAX="0">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="aOvqDD" vstFolder="~/SDKs/vstsdk2.4"
+               postbuildCommand="&#13;&#10;# This script takes the build product and copies it to the AU, VST, and RTAS folders, depending on &#13;&#10;# which plugin types you've built&#13;&#10;&#13;&#10;original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME&#13;&#10;&#13;&#10;# this looks inside the binary to detect which platforms are needed.. &#13;&#10;copyAU=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'AudioUnit' | wc -l&#96;&#13;&#10;copyVST=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'VSTPlugin' | wc -l&#96;&#13;&#10;copyRTAS=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'CProcess' | wc -l&#96;&#13;&#10;copyAAX=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'ACFStartup' | wc -l&#96;&#13;&#10;&#13;&#10;if [ $copyAU -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AudioUnit folder...&quot;&#13;&#10;  AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component&#13;&#10;  if [ -d &quot;$AU&quot; ]; then &#13;&#10;    rm -r &quot;$AU&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$AU&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$AU/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$AU/Contents/$INFOPLIST_FILE&quot;&#13;&#10;&#13;&#10;  # Fix info.plist for AUs built with Xcode 3&#13;&#10;  if [ -f &quot;$DEVELOPER_DIR/Library/Developer/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp&quot; ]; then&#13;&#10;    echo&#13;&#10;  else&#13;&#10;    echo &quot;Removing AudioComponents entry from Info.plist because this is not a new-format AU&quot;&#13;&#10;    /usr/libexec/PlistBuddy -c &quot;Delete AudioComponents&quot; &quot;$AU/Contents/Info.plist&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST folder...&quot;&#13;&#10;  VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst&#13;&#10;  if [ -d &quot;$VST&quot; ]; then &#13;&#10;    rm -r &quot;$VST&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyRTAS -gt 0 ]; then&#13;&#10;  echo &quot;Copying to RTAS folder...&quot;&#13;&#10;  RTAS=/Library/Application\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm&#13;&#10;  if [ -d &quot;$RTAS&quot; ]; then&#13;&#10;    rm -r &quot;$RTAS&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$RTAS&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyAAX -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AAX folder...&quot;&#13;&#10;&#13;&#10;  if [ -d &quot;/Applications/ProTools_3PDev/Plug-Ins&quot; ]; then&#13;&#10;    AAX1=&quot;/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX1&quot; ]; then&#13;&#10;      rm -r &quot;$AAX1&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX1&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  if [ -d &quot;/Library/Application Support/Avid/Audio/Plug-Ins&quot; ]; then&#13;&#10;    AAX2=&quot;/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX2&quot; ]; then&#13;&#10;      rm -r &quot;$AAX2&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX2&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="autowah"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="autowah"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="lu67tC" name="autowah">
+    <GROUP id="{53A84118-0AED-DFC5-A7C8-A649E8610450}" name="Source">
+      <FILE id="fFIiX7" name="ResonantLowpassFilter.cpp" compile="1" resource="0"
+            file="Source/ResonantLowpassFilter.cpp"/>
+      <FILE id="bjeg12" name="ResonantLowpassFilter.h" compile="0" resource="0"
+            file="Source/ResonantLowpassFilter.h"/>
+      <FILE id="GCNfS4" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="eIYIB6" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="nF3mDW" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="PBXZ7e" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/chorus/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/chorus/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,246 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Chorus: chorus effect based on time-varying delays
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+ChorusAudioProcessorEditor::ChorusAudioProcessorEditor (ChorusAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      delayLabel_("", "Min. Delay (sec):"),
+      sweepWidthLabel_("", "Sweep Width (sec.):"),
+      depthLabel_("", "Depth:"),
+      frequencyLabel_("", "LFO Frequency:"),
+      waveformLabel_("", "LFO Waveform:"),
+      interpolationLabel_("", "Interpolation Type:"),
+      numVoicesLabel_("", "Number of Voices:")
+{
+
+    // Set up the sliders
+    addAndMakeVisible (&delaySlider_);
+    delaySlider_.setSliderStyle (Slider::Rotary);
+    delaySlider_.addListener (this);
+    delaySlider_.setRange (.01, ChorusAudioProcessor::kMaximumDelay, 0.001);
+    
+    addAndMakeVisible (&sweepWidthSlider_);
+    sweepWidthSlider_.setSliderStyle (Slider::Rotary);
+    sweepWidthSlider_.addListener (this);
+    sweepWidthSlider_.setRange (.01, ChorusAudioProcessor::kMaximumSweepWidth, 0.001);
+    
+    addAndMakeVisible (&depthSlider_);
+    depthSlider_.setSliderStyle (Slider::Rotary);
+    depthSlider_.addListener (this);
+    depthSlider_.setRange (0.0, 1.0, 0.01);
+    
+    addAndMakeVisible (&frequencySlider_);
+    frequencySlider_.setSliderStyle (Slider::Rotary);
+    frequencySlider_.addListener (this);
+    frequencySlider_.setRange (0.05, 2.0, 0.025);
+    
+    addAndMakeVisible(&waveformComboBox_);
+    waveformComboBox_.setEditableText(false);
+    waveformComboBox_.setJustificationType(Justification::left);
+    waveformComboBox_.addItem("Sine", ChorusAudioProcessor::kWaveformSine);
+    waveformComboBox_.addItem("Triangle", ChorusAudioProcessor::kWaveformTriangle);
+    waveformComboBox_.addItem("Square", ChorusAudioProcessor::kWaveformSquare);
+    waveformComboBox_.addItem("Sawtooth", ChorusAudioProcessor::kWaveformSawtooth);
+    waveformComboBox_.addListener(this);
+    
+    addAndMakeVisible(&interpolationComboBox_);
+    interpolationComboBox_.setEditableText(false);
+    interpolationComboBox_.setJustificationType(Justification::left);
+    interpolationComboBox_.addItem("None", ChorusAudioProcessor::kInterpolationNearestNeighbour);
+    interpolationComboBox_.addItem("Linear", ChorusAudioProcessor::kInterpolationLinear);
+    interpolationComboBox_.addItem("Cubic", ChorusAudioProcessor::kInterpolationCubic);
+    interpolationComboBox_.addListener(this);
+    
+    addAndMakeVisible(&numVoicesComboBox_);
+    numVoicesComboBox_.setEditableText(false);
+    numVoicesComboBox_.setJustificationType(Justification::left);
+    numVoicesComboBox_.addItem("2", 2);
+    numVoicesComboBox_.addItem("3", 3);
+    numVoicesComboBox_.addItem("4", 4);
+    numVoicesComboBox_.addItem("5", 5);
+    numVoicesComboBox_.addListener(this);
+    
+    addAndMakeVisible(&stereoToggleButton_);
+    stereoToggleButton_.setName("Stereo");
+    stereoToggleButton_.setButtonText("Stereo");
+    stereoToggleButton_.addListener(this);
+    
+    delayLabel_.attachToComponent(&delaySlider_, false);
+    delayLabel_.setFont(Font (11.0f));
+    
+    sweepWidthLabel_.attachToComponent(&sweepWidthSlider_, false);
+    sweepWidthLabel_.setFont(Font (11.0f));
+    
+    depthLabel_.attachToComponent(&depthSlider_, false);
+    depthLabel_.setFont(Font (11.0f));
+
+    frequencyLabel_.attachToComponent(&frequencySlider_, false);
+    frequencyLabel_.setFont(Font (11.0f));
+    
+    waveformLabel_.attachToComponent(&waveformComboBox_, false);
+    waveformLabel_.setFont(Font (11.0f));
+    
+    interpolationLabel_.attachToComponent(&interpolationComboBox_, false);
+    interpolationLabel_.setFont(Font (11.0f));
+    
+    numVoicesLabel_.attachToComponent(&numVoicesComboBox_, false);
+    numVoicesLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(550, 200, 600, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+ChorusAudioProcessorEditor::~ChorusAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void ChorusAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void ChorusAudioProcessorEditor::resized()
+{
+    delaySlider_.setBounds (20, 20, 150, 40);
+    sweepWidthSlider_.setBounds (200, 20, 150, 40);
+    depthSlider_.setBounds(380, 20, 150, 40);
+    frequencySlider_.setBounds(20, 80, 150, 40);
+    numVoicesComboBox_.setBounds(200, 80, 150, 30);
+    waveformComboBox_.setBounds(20, 140, 200, 30);
+    interpolationComboBox_.setBounds(250, 140, 200, 30);
+    stereoToggleButton_.setBounds(380, 80, 150, 40);
+    stereoToggleButton_.changeWidthToFitText();
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void ChorusAudioProcessorEditor::timerCallback()
+{
+    ChorusAudioProcessor* ourProcessor = getProcessor();
+    
+    delaySlider_.setValue(ourProcessor->delay_, dontSendNotification);
+    sweepWidthSlider_.setValue(ourProcessor->sweepWidth_, dontSendNotification);
+    depthSlider_.setValue(ourProcessor->depth_, dontSendNotification);
+    frequencySlider_.setValue(ourProcessor->frequency_, dontSendNotification);
+    waveformComboBox_.setSelectedId(ourProcessor->waveform_, false);
+    interpolationComboBox_.setSelectedId(ourProcessor->interpolation_, false);
+    numVoicesComboBox_.setSelectedId(ourProcessor->numVoices_, false);
+    stereoToggleButton_.setToggleState((ourProcessor->stereo_ != 0), false);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void ChorusAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &delaySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kDelayParam,
+                                                   (float)delaySlider_.getValue());
+    }
+    else if (slider == &sweepWidthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kSweepWidthParam,
+                                                   (float)sweepWidthSlider_.getValue());
+    }
+    else if (slider == &depthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kDepthParam,
+                                                   (float)depthSlider_.getValue());
+    }
+    else if (slider == &frequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kFrequencyParam,
+                                                   (float)frequencySlider_.getValue());
+    }
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void ChorusAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &waveformComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kWaveformParam,
+                                                   (float)waveformComboBox_.getSelectedId());
+    }
+    else if(comboBox == &interpolationComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kInterpolationParam,
+                                                   (float)interpolationComboBox_.getSelectedId());
+    }
+    else if(comboBox == &numVoicesComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kNumVoicesParam,
+                                                   (float)numVoicesComboBox_.getSelectedId());
+    }
+}
+
+// Callback for toggle button
+void ChorusAudioProcessorEditor::buttonClicked (Button *button)
+{
+    if(button == &stereoToggleButton_)
+    {
+        if(button->getToggleState())
+        {
+            getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kStereoParam, 1.0);
+            
+            // Stereo chorus only makes sense with 3 or more voices (1 input, 2 delayed voices)
+            if(numVoicesComboBox_.getSelectedId() == 2)
+            {
+                numVoicesComboBox_.setSelectedId(3);
+                getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kNumVoicesParam, 3);
+            }
+            numVoicesComboBox_.setItemEnabled(2, false);
+        }
+        else
+        {
+            getProcessor()->setParameterNotifyingHost (ChorusAudioProcessor::kStereoParam, 0.0);
+            numVoicesComboBox_.setItemEnabled(2, true);
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/chorus/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,78 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Chorus: chorus effect based on time-varying delays
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class ChorusAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Button::Listener,
+                                   public Timer
+{
+public:
+    ChorusAudioProcessorEditor (ChorusAudioProcessor* ownerFilter);
+    ~ChorusAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    void buttonClicked (Button *);
+    
+private:
+    Label delayLabel_, sweepWidthLabel_, depthLabel_;
+    Label frequencyLabel_, waveformLabel_;
+    Label interpolationLabel_, numVoicesLabel_;
+    Slider delaySlider_, sweepWidthSlider_, depthSlider_;
+    Slider frequencySlider_;
+    ComboBox waveformComboBox_, numVoicesComboBox_;
+    ComboBox interpolationComboBox_;
+    ToggleButton stereoToggleButton_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    ChorusAudioProcessor* getProcessor() const
+    {
+        return static_cast <ChorusAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/chorus/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,526 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Chorus: chorus effect based on time-varying delays
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <math.h>
+
+const float ChorusAudioProcessor::kMaximumDelay = 0.05;
+const float ChorusAudioProcessor::kMaximumSweepWidth = 0.05;
+
+//==============================================================================
+ChorusAudioProcessor::ChorusAudioProcessor() : delayBuffer_ (2, 1)
+{
+    // Set default values:
+    delay_ = .03;
+    sweepWidth_ = .02;
+    depth_ = 1.0;
+    frequency_ = 0.2;
+    waveform_ = kWaveformSine;
+    interpolation_ = kInterpolationLinear;
+    numVoices_ = 2;
+    stereo_ = 0;
+    
+    delayBufferLength_ = 1;
+    lfoPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/44100.0;
+    
+    // Start the circular buffer pointer at the beginning
+    delayWritePosition_ = 0;
+    
+    lastUIWidth_ = 550;
+    lastUIHeight_ = 200;
+}
+
+ChorusAudioProcessor::~ChorusAudioProcessor()
+{
+}
+
+//==============================================================================
+const String ChorusAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int ChorusAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float ChorusAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kDelayParam:         return delay_;
+        case kSweepWidthParam:    return sweepWidth_;
+        case kDepthParam:         return depth_;
+        case kFrequencyParam:     return frequency_;
+        case kWaveformParam:      return (float)waveform_;
+        case kInterpolationParam: return (float)interpolation_;
+        case kNumVoicesParam:     return (float)numVoices_;
+        case kStereoParam:        return (float)stereo_;
+        default:                  return 0.0f;
+    }
+}
+
+void ChorusAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+
+    switch (index)
+    {
+        case kDelayParam:
+            delay_ = newValue;
+            break;
+        case kSweepWidthParam:
+            sweepWidth_ = newValue;
+            break;
+        case kDepthParam:
+            depth_ = newValue;
+            break;
+        case kFrequencyParam:
+            frequency_ = newValue;
+            break;
+        case kWaveformParam:
+            waveform_ = (int)newValue;
+            break;
+        case kInterpolationParam:
+            interpolation_ = (int)newValue;
+            break;
+        case kNumVoicesParam:
+            numVoices_ = (int)newValue;
+            break;
+        case kStereoParam:
+            stereo_ = (int)newValue;
+            break;
+        default:
+            break;
+    }
+}
+
+const String ChorusAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kDelayParam:         return "delay";
+        case kSweepWidthParam:    return "sweep width";
+        case kDepthParam:         return "depth";
+        case kFrequencyParam:     return "frequency";
+        case kWaveformParam:      return "waveform";
+        case kInterpolationParam: return "interpolation";
+        case kNumVoicesParam:     return "number of voices";
+        case kStereoParam:        return "stereo";
+        default:                  break;
+    }
+    
+    return String::empty;
+}
+
+const String ChorusAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String ChorusAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String ChorusAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool ChorusAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool ChorusAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool ChorusAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double ChorusAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool ChorusAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool ChorusAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int ChorusAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int ChorusAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void ChorusAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String ChorusAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void ChorusAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void ChorusAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Allocate and zero the delay buffer (size will depend on current sample rate)
+    // Add 3 extra samples to allow cubic interpolation even at maximum delay
+    delayBufferLength_ = (int)((kMaximumDelay + kMaximumSweepWidth)*sampleRate) + 3;
+    delayBuffer_.setSize(2, delayBufferLength_);
+    delayBuffer_.clear();
+    lfoPhase_ = 0.0;
+    
+    inverseSampleRate_ = 1.0/sampleRate;
+}
+
+void ChorusAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    // The delay buffer will stay in memory until the effect is unloaded.
+}
+
+void ChorusAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    delayBuffer_.clear();
+}
+
+
+void ChorusAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel, dpw; // dpr = delay read pointer; dpw = delay write pointer
+    float dpr, currentDelay, ph;
+    
+    // Go through each channel of audio that's passed in. In this example we apply identical
+    // effects to each channel, regardless of how many input channels there are. For some effects, like
+    // a stereo chorus or panner, you might do something different for each channel.
+    
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // delayData is the circular buffer for implementing delay on this channel
+        float* delayData = delayBuffer_.getSampleData (jmin (channel, delayBuffer_.getNumChannels() - 1));
+        
+        // Make a temporary copy of any state variables declared in PluginProcessor.h which need to be
+        // maintained between calls to processBlock(). Each channel needs to be processed identically
+        // which means that the activity of processing one channel can't affect the state variable for
+        // the next channel.
+        
+        dpw = delayWritePosition_;
+        ph = lfoPhase_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+            float interpolatedSample = 0.0;
+            float phaseOffset = 0.0;
+            float weight;
+            
+            // Chorus can have more than 2 voices (where the original, undelayed signal counts as a voice).
+            // In this implementation, all voices use the same LFO, but with different phase offsets. It
+            // is also possible to use different waveforms and different frequencies for each voice.
+            
+            for(int j = 0; j < numVoices_ - 1; ++j)
+            {
+                if(stereo_ != 0 && numVoices_ > 2)
+                {
+                    // A stereo chorus pans each voice to a different location in the stereo field.
+                    // How this is done depends on the number of voices:
+                    // -- 2 voices: N/A (need at least 2 delayed voices for stereo chorus)
+                    // -- 3 voices: 1 voice left, 1 voice right (0, 1)
+                    // -- 4 voices: 1 voice left, 1 voice centre, 1 voice right (0, 0.5, 1)
+                    // -- 5 voices: 1 voice left, 1 voice left-centre,
+                    //              1 voice right-centre, 1 voice right (0, 0.33, 0.66, 1)
+                    
+                    weight = (float)j/(float)(numVoices_ - 2);
+                    
+                    // Left and right channels are mirrors of each other in weight
+                    if(channel != 0)
+                        weight = 1.0 - weight;
+                }
+                else
+                    weight = 1.0;
+
+                // Add the voice to the mix if it has nonzero weight
+                if(weight != 0.0)
+                {
+                    // Recalculate the read pointer position with respect to the write pointer. A more efficient
+                    // implementation might increment the read pointer based on the derivative of the LFO without
+                    // running the whole equation again, but this format makes the operation clearer.
+                    
+                    currentDelay = delay_ + sweepWidth_*lfo(fmodf(ph + phaseOffset, 1.0f), waveform_);
+                    dpr = fmodf((float)dpw - (float)(currentDelay * getSampleRate()) + (float)delayBufferLength_,
+                                (float)delayBufferLength_);
+                    
+                    // In this example, the output is the input plus the contents of the delay buffer (weighted by delayMix)
+                    // The last term implements a tremolo (variable amplitude) on the whole thing.
+          
+                    if(interpolation_ == kInterpolationLinear)
+                    {
+                        // Find the fraction by which the read pointer sits between two
+                        // samples and use this to adjust weights of the samples
+                        float fraction = dpr - floorf(dpr);
+                        int previousSample = (int)floorf(dpr);
+                        int nextSample = (previousSample + 1) % delayBufferLength_;
+                        interpolatedSample = fraction*delayData[nextSample]
+                            + (1.0f-fraction)*delayData[previousSample];
+                    }
+                    else if(interpolation_ == kInterpolationCubic)
+                    {
+                        // Cubic interpolation will produce cleaner results at the expense
+                        // of more computation. This code uses the Catmull-Rom variant of
+                        // cubic interpolation. To reduce the load, calculate a few quantities
+                        // in advance that will be used several times in the equation:
+                        
+                        int sample1 = (int)floorf(dpr);
+                        int sample2 = (sample1 + 1) % delayBufferLength_;
+                        int sample3 = (sample2 + 1) % delayBufferLength_;
+                        int sample0 = (sample1 - 1 + delayBufferLength_) % delayBufferLength_;
+                        
+                        float fraction = dpr - floorf(dpr);
+                        float frsq = fraction*fraction;
+                        
+                        float a0 = -0.5f*delayData[sample0] + 1.5f*delayData[sample1]
+                                    - 1.5f*delayData[sample2] + 0.5f*delayData[sample3];
+                        float a1 = delayData[sample0] - 2.5f*delayData[sample1]
+                                    + 2.0f*delayData[sample2] - 0.5f*delayData[sample3];
+                        float a2 = -0.5f*delayData[sample0] + 0.5f*delayData[sample2];
+                        float a3 = delayData[sample1];
+                        
+                        interpolatedSample = a0*fraction*frsq + a1*frsq + a2*fraction + a3;
+                    }
+                    else // Nearest neighbour interpolation
+                    {
+                        // Find the nearest input sample by rounding the fractional index to the
+                        // nearest integer. It's possible this will round it to the end of the buffer,
+                        // in which case we need to roll it back to the beginning.
+                        int closestSample = (int)floorf(dpr + 0.5f);
+                        if(closestSample == delayBufferLength_)
+                            closestSample = 0;
+                        interpolatedSample = delayData[closestSample];
+                    }
+
+                    // Store the output sample in the buffer, which starts by containing the input sample
+                    channelData[i] += depth_ * weight * interpolatedSample;
+                }
+                
+                // 3-voice chorus uses two voices in quadrature phase (90 degrees apart). Otherwise,
+                // spread the voice phases evenly around the unit circle. (For 2-voice chorus, this
+                // code doesn't matter since the loop only runs once.)
+                if(numVoices_ < 3)
+                    phaseOffset += 0.25f;
+                else
+                    phaseOffset += 1.0f / (float)(numVoices_ - 1);
+            }
+            
+            // Store the current input in the delay buffer (no feedback in a chorus, unlike a flanger).
+            delayData[dpw] = in;
+            
+            // Increment the write pointer at a constant rate. The read pointer will move at different
+            // rates depending on the settings of the LFO, the delay and the sweep width.
+            
+            if (++dpw >= delayBufferLength_)
+                dpw = 0;
+
+            // Update the LFO phase, keeping it in the range 0-1
+            ph += frequency_*inverseSampleRate_;
+            if(ph >= 1.0)
+                ph -= 1.0;
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    
+    delayWritePosition_ = dpw;
+    lfoPhase_ = ph;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool ChorusAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* ChorusAudioProcessor::createEditor()
+{
+    return new ChorusAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void ChorusAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("delay", delay_);
+    xml.setAttribute("sweepWidth", sweepWidth_);
+    xml.setAttribute("depth", depth_);
+    xml.setAttribute("frequency", frequency_);
+    xml.setAttribute("waveform", waveform_);
+    xml.setAttribute("interpolation", interpolation_);
+    xml.setAttribute("numVoices", numVoices_);
+    xml.setAttribute("stereo", stereo_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void ChorusAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            delay_      = (float)xmlState->getDoubleAttribute("delay", delay_);
+            sweepWidth_ = (float)xmlState->getDoubleAttribute("sweepWidth", sweepWidth_);
+            depth_      = (float)xmlState->getDoubleAttribute("depth", depth_);
+            frequency_  = (float)xmlState->getDoubleAttribute("frequency", frequency_);
+            waveform_   = xmlState->getIntAttribute("waveform", waveform_);
+            interpolation_ = xmlState->getIntAttribute("interpolation", interpolation_);
+            numVoices_  = xmlState->getIntAttribute("numVoices", numVoices_);
+            stereo_     = xmlState->getIntAttribute("stereo", stereo_);
+        }
+    }
+}
+
+//==============================================================================
+// Function for calculating LFO waveforms. Phase runs from 0-1, output is scaled
+// from 0 to 1 (note: not -1 to 1 as would be typical of sine).
+float ChorusAudioProcessor::lfo(float phase, int waveform)
+{
+    switch(waveform)
+    {
+        case kWaveformTriangle:
+            if(phase < 0.25f)
+                return 0.5f + 2.0f*phase;
+            else if(phase < 0.75f)
+                return 1.0f - 2.0f*(phase - 0.25f);
+            else
+                return 2.0f*(phase-0.75f);
+        case kWaveformSquare:
+            if(phase < 0.5f)
+                return 1.0f;
+            else
+                return 0.0f;
+        case kWaveformSawtooth:
+            if(phase < 0.5f)
+                return 0.5f + phase;
+            else
+                return phase - 0.5f;
+        case kWaveformSine:
+        default:
+            return 0.5f + 0.5f*sinf(2.0 * M_PI * phase);
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new ChorusAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/chorus/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,156 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Chorus: chorus effect based on time-varying delays
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class ChorusAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    ChorusAudioProcessor();
+    ~ChorusAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kDelayParam = 0,
+        kSweepWidthParam,
+        kDepthParam,
+        kFrequencyParam,
+        kWaveformParam,
+        kInterpolationParam,
+        kNumVoicesParam,
+        kStereoParam,
+        kNumParameters
+    };
+    
+    enum Waveforms
+    {
+        kWaveformSine = 1,
+        kWaveformTriangle,
+        kWaveformSquare,
+        kWaveformSawtooth,
+        kNumWaveforms
+    };
+    
+    enum Interpolation
+    {
+        kInterpolationNearestNeighbour = 1,
+        kInterpolationLinear,
+        kInterpolationCubic,
+        kNumInterpolations
+    };
+    
+    static const float kMaximumDelay;
+    static const float kMaximumSweepWidth;
+    
+    // Adjustable parameters:
+    float delay_;      // Minimum length of delay line in seconds
+    float sweepWidth_; // Amount of change from min to max delay
+    float depth_;      // Mix level of delayed signal (0-1)
+    float frequency_;  // LFO frequency (Hz)
+    int   waveform_;   // What shape should be used for the LFO
+    int   interpolation_; // What type of interpolation to use
+    int   numVoices_;  // How many voices to use in the chorus (2-5)
+    int   stereo_;     // Whether to use stereo (quadrature-phase) chorus
+    
+private:
+    float lfo(float phase, int waveform);
+    
+    // Circular buffer variables for implementing delay
+    AudioSampleBuffer delayBuffer_;
+    int delayBufferLength_;
+    int delayWritePosition_;
+    
+    float lfoPhase_;   // Phase of the low-frequency oscillator
+    double inverseSampleRate_; // It's more efficient to multiply than divide, so
+                               // cache the inverse of the sample rate
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ChorusAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/chorus/chorus.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="jqUTfu" name="chorus" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.choruseffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Chorus" pluginDesc="Chorus effect"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="chor" pluginChannelConfigs="{2,2}, {1,1}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0"
+              pluginTailLength="1" pluginEditorRequiresKeys="0" pluginAUExportPrefix="chorusAU"
+              pluginAUViewClass="chorusAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.chorus" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="WedtX3" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="chorus"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="chorus"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="bPEiPc" name="chorus">
+    <GROUP id="{846CFF56-22A7-417C-3A8F-BC186E0C003D}" name="Source">
+      <FILE id="B2Uqlt" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="gStcm8" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="Fab6uq" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="Ii1WBn" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/compressor/Compressor.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="MBaMzn" name="compressor" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.compressor" buildVST="1" buildRTAS="0"
+              buildAU="1" pluginName="Compressor" pluginDesc="Compressor" pluginManufacturer="Reiss and McPherson"
+              pluginManufacturerCode="JRAM" pluginCode="comp" pluginChannelConfigs="{2, 2}, {1, 1}"
+              pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0"
+              pluginSilenceInIsSilenceOut="1" pluginTailLength="0" pluginEditorRequiresKeys="0"
+              pluginAUExportPrefix="CompressorAU" pluginAUViewClass="CompressorAU_V1"
+              pluginRTASCategory="" jucerVersion="3.1.0" aaxIdentifier="uk.ac.qmul.eecs.compressor"
+              buildVST3="0" buildAAX="0" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1" companyName="Reiss and McPherson">
+  <EXPORTFORMATS>
+    <VS2010 targetFolder="Builds/VisualStudio2010" libraryType="1" vstFolder="..\..\vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Release" winWarningLevel="4" generateManifest="1" winArchitecture="32-bit"
+                       isDebug="0" optimisation="2" targetName="Compressor"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_video" path="../../juce/modules"/>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_cryptography" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </VS2010>
+    <XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="../../vstsdk2.4" postbuildCommand="&#13;&#10;# This script takes the build product and copies it to the AU, VST, VST3, RTAS and AAX folders, depending on &#13;&#10;# which plugin types you've built&#13;&#10;&#13;&#10;original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME&#13;&#10;&#13;&#10;# this looks inside the binary to detect which platforms are needed.. &#13;&#10;copyAU=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'AudioUnit' | wc -l&#96;&#13;&#10;copyVST=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'VSTPlugin' | wc -l&#96;&#13;&#10;copyVST3=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'GetPluginFactory' | wc -l&#96;&#13;&#10;copyRTAS=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'CProcess' | wc -l&#96;&#13;&#10;copyAAX=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'ACFStartup' | wc -l&#96;&#13;&#10;&#13;&#10;if [ $copyAU -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AudioUnit folder...&quot;&#13;&#10;  AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component&#13;&#10;  if [ -d &quot;$AU&quot; ]; then &#13;&#10;    rm -r &quot;$AU&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$AU&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$AU/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$AU/Contents/$INFOPLIST_FILE&quot;&#13;&#10;&#13;&#10;  # Fix info.plist for AUs built with Xcode 3&#13;&#10;  if [ -f &quot;$DEVELOPER_DIR/Library/Developer/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp&quot; ]; then&#13;&#10;    echo&#13;&#10;  else&#13;&#10;    echo &quot;Removing AudioComponents entry from Info.plist because this is not a new-format AU&quot;&#13;&#10;    /usr/libexec/PlistBuddy -c &quot;Delete AudioComponents&quot; &quot;$AU/Contents/Info.plist&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST folder...&quot;&#13;&#10;  VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst&#13;&#10;  if [ -d &quot;$VST&quot; ]; then &#13;&#10;    rm -r &quot;$VST&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST3 -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST3 folder...&quot;&#13;&#10;  VST3=~/Library/Audio/Plug-Ins/VST3/$PRODUCT_NAME.vst3&#13;&#10;  if [ -d &quot;$VST3&quot; ]; then &#13;&#10;    rm -r &quot;$VST3&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST3&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST3/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST3/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyRTAS -gt 0 ]; then&#13;&#10;  echo &quot;Copying to RTAS folder...&quot;&#13;&#10;  RTAS=/Library/Application\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm&#13;&#10;  if [ -d &quot;$RTAS&quot; ]; then&#13;&#10;    rm -r &quot;$RTAS&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$RTAS&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyAAX -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AAX folder...&quot;&#13;&#10;&#13;&#10;  if [ -d &quot;/Applications/ProTools_3PDev/Plug-Ins&quot; ]; then&#13;&#10;    AAX1=&quot;/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX1&quot; ]; then&#13;&#10;      rm -r &quot;$AAX1&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX1&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  if [ -d &quot;/Library/Application Support/Avid/Audio/Plug-Ins&quot; ]; then&#13;&#10;    AAX2=&quot;/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX2&quot; ]; then&#13;&#10;      rm -r &quot;$AAX2&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX2&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       isDebug="1" optimisation="1" targetName="compressor"/>
+        <CONFIGURATION name="Release" osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       isDebug="0" optimisation="2" targetName="compressor"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_video" path="../../juce/modules"/>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_cryptography" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="R56iUz" name="compressor">
+    <GROUP id="{839367BB-53A9-7137-E15E-D2DD800BA26D}" name="Source">
+      <FILE id="RUKlAk" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="uEbtTW" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="vo9R27" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="IiR9iQ" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_cryptography" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_video" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/compressor/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,12269 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Compressor: dynamic range compression effect
+  See textbook Chapter 6: Dynamics Processing
+ 
+  Code by Joshua Reiss, Brecht de Man and Andrew McPherson
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+//[Headers] You can add your own extra header files here...
+#include "PluginProcessor.h"
+//[/Headers]
+
+#include "PluginEditor.h"
+
+
+//[MiscUserDefs] You can add your own user definitions and misc code here...
+
+
+
+//[/MiscUserDefs]
+
+//==============================================================================
+CompressorAudioProcessorEditor::CompressorAudioProcessorEditor (CompressorAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      buttonONOFF (0),
+      label (0),
+      sliderThreshold (0),
+      label2 (0),
+      sliderRatio (0),
+      label3 (0),
+      sliderGain (0),
+      label7 (0),
+      sliderAttack (0),
+      label5 (0),
+      sliderRelease (0),
+      label6 (0),
+      cachedImage_brushedMetalDark_jpg (0)
+{
+    addAndMakeVisible (buttonONOFF = new TextButton (L"on off button"));
+    buttonONOFF->setButtonText (L"ON / OFF");
+    buttonONOFF->addListener (this);
+    buttonONOFF->setColour (TextButton::buttonColourId, Colour (0xff615a5a));
+    buttonONOFF->setColour (TextButton::buttonOnColourId, Colours::chartreuse);
+
+    addAndMakeVisible (label = new Label (String::empty,
+                                          L"Compressor"));
+    label->setFont (Font (22.0000f, Font::bold));
+    label->setJustificationType (Justification::centred);
+    label->setEditable (false, false, false);
+    label->setColour (TextEditor::textColourId, Colours::black);
+    label->setColour (TextEditor::backgroundColourId, Colour (0x0));
+
+    addAndMakeVisible (sliderThreshold = new Slider (L"new slider"));
+    sliderThreshold->setRange (-60, 0, -60);
+    sliderThreshold->setSliderStyle (Slider::RotaryVerticalDrag);
+    sliderThreshold->setTextBoxStyle (Slider::TextBoxBelow, false, 80, 20);
+    sliderThreshold->addListener (this);
+
+    addAndMakeVisible (label2 = new Label (L"new label",
+                                           L"Threshold"));
+    label2->setFont (Font (15.0000f, Font::plain));
+    label2->setJustificationType (Justification::centredLeft);
+    label2->setEditable (false, false, false);
+    label2->setColour (TextEditor::textColourId, Colours::black);
+    label2->setColour (TextEditor::backgroundColourId, Colour (0x0));
+
+    addAndMakeVisible (sliderRatio = new Slider (L"new slider"));
+    sliderRatio->setRange (1, 100, 0.1);
+    sliderRatio->setSliderStyle (Slider::RotaryVerticalDrag);
+    sliderRatio->setTextBoxStyle (Slider::TextBoxBelow, false, 80, 20);
+    sliderRatio->addListener (this);
+
+    addAndMakeVisible (label3 = new Label (L"new label",
+                                           L"Ratio"));
+    label3->setFont (Font (15.0000f, Font::plain));
+    label3->setJustificationType (Justification::centredLeft);
+    label3->setEditable (false, false, false);
+    label3->setColour (TextEditor::textColourId, Colours::black);
+    label3->setColour (TextEditor::backgroundColourId, Colour (0x0));
+
+    addAndMakeVisible (sliderGain = new Slider (L"new slider"));
+    sliderGain->setRange (0, 40, 1);
+    sliderGain->setSliderStyle (Slider::RotaryVerticalDrag);
+    sliderGain->setTextBoxStyle (Slider::TextBoxBelow, false, 80, 20);
+    sliderGain->addListener (this);
+
+    addAndMakeVisible (label7 = new Label (L"new label",
+                                           L"Gain"));
+    label7->setFont (Font (15.0000f, Font::plain));
+    label7->setJustificationType (Justification::centredLeft);
+    label7->setEditable (false, false, false);
+    label7->setColour (TextEditor::textColourId, Colours::black);
+    label7->setColour (TextEditor::backgroundColourId, Colour (0x0));
+
+    addAndMakeVisible (sliderAttack = new Slider (L"new slider"));
+    sliderAttack->setRange (0.1, 80, 0.1);
+    sliderAttack->setSliderStyle (Slider::RotaryVerticalDrag);
+    sliderAttack->setTextBoxStyle (Slider::TextBoxBelow, false, 80, 20);
+    sliderAttack->addListener (this);
+
+    addAndMakeVisible (label5 = new Label (L"new label",
+                                           L"Attack Time (ms)"));
+    label5->setFont (Font (15.0000f, Font::plain));
+    label5->setJustificationType (Justification::centredLeft);
+    label5->setEditable (false, false, false);
+    label5->setColour (TextEditor::textColourId, Colours::black);
+    label5->setColour (TextEditor::backgroundColourId, Colour (0x0));
+
+    addAndMakeVisible (sliderRelease = new Slider (L"new slider"));
+    sliderRelease->setRange (0.1, 1000, 0.1);
+    sliderRelease->setSliderStyle (Slider::RotaryVerticalDrag);
+    sliderRelease->setTextBoxStyle (Slider::TextBoxBelow, false, 80, 20);
+    sliderRelease->addListener (this);
+
+    addAndMakeVisible (label6 = new Label (L"new label",
+                                           L"Release Time (ms)"));
+    label6->setFont (Font (15.0000f, Font::plain));
+    label6->setJustificationType (Justification::centredLeft);
+    label6->setEditable (false, false, false);
+    label6->setColour (TextEditor::textColourId, Colours::black);
+    label6->setColour (TextEditor::backgroundColourId, Colour (0x0));
+
+    cachedImage_brushedMetalDark_jpg = ImageCache::getFromMemory (brushedMetalDark_jpg, brushedMetalDark_jpgSize);
+
+    //[UserPreSize]
+    addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits));
+    resizeLimits.setSizeLimits (150, 150, 850, 290);
+    //[/UserPreSize]
+
+    setSize (700, 310);
+
+
+    //[Constructor] You can add your own custom stuff here..
+	buttonONOFF->setClickingTogglesState(true);
+
+    startTimer (50);
+
+    //[/Constructor]
+}
+
+CompressorAudioProcessorEditor::~CompressorAudioProcessorEditor()
+{
+    //[Destructor_pre]. You can add your own custom destruction code here..
+    //[/Destructor_pre]
+
+    deleteAndZero (buttonONOFF);
+    deleteAndZero (label);
+    deleteAndZero (sliderThreshold);
+    deleteAndZero (label2);
+    deleteAndZero (sliderRatio);
+    deleteAndZero (label3);
+    deleteAndZero (sliderGain);
+    deleteAndZero (label7);
+    deleteAndZero (sliderAttack);
+    deleteAndZero (label5);
+    deleteAndZero (sliderRelease);
+    deleteAndZero (label6);
+
+
+    //[Destructor]. You can add your own custom destruction code here..
+    //[/Destructor]
+}
+
+//==============================================================================
+void CompressorAudioProcessorEditor::paint (Graphics& g)
+{
+    //[UserPrePaint] Add your own custom painting code here..
+    //[/UserPrePaint]
+
+    g.fillAll (Colour (0xff3e3a3a));
+
+    g.setColour (Colours::white);
+    g.fillRoundedRectangle (4.0f, (float) (-1), 700.0f, 60.0f, 10.0000f);
+
+    g.setColour (Colours::black);
+    g.drawImage (cachedImage_brushedMetalDark_jpg,
+                 0, 50, 700, 260,
+                 0, 0, cachedImage_brushedMetalDark_jpg.getWidth(), cachedImage_brushedMetalDark_jpg.getHeight());
+
+    //[UserPaint] Add your own custom painting code here..
+    //[/UserPaint]
+}
+
+void CompressorAudioProcessorEditor::resized()
+{
+    buttonONOFF->setBounds (17, 55, 125, 25);
+    label->setBounds (-3, 0, 500, 49);
+    sliderThreshold->setBounds (533, 182, 175, 98);
+    label2->setBounds (588, 152, 91, 24);
+    sliderRatio->setBounds (5, 182, 175, 98);
+    label3->setBounds (132, 152, 50, 24);
+    sliderGain->setBounds (595, 77, 56, 70);
+    label7->setBounds (604, 52, 52, 24);
+    sliderAttack->setBounds (196, 182, 175, 98);
+    label5->setBounds (229, 152, 120, 24);
+    sliderRelease->setBounds (365, 182, 175, 98);
+    label6->setBounds (391, 152, 120, 24);
+    //[UserResized] Add your own custom resize handling here..
+    //[/UserResized]
+}
+
+void CompressorAudioProcessorEditor::buttonClicked (Button* buttonThatWasClicked)
+{
+    //[UserbuttonClicked_Pre]
+    //[/UserbuttonClicked_Pre]
+
+    if (buttonThatWasClicked == buttonONOFF)
+    {
+        //[UserButtonCode_buttonONOFF] -- add your button handler code here..
+		getProcessor()->compressorONOFF = buttonONOFF->getToggleState();
+        //[/UserButtonCode_buttonONOFF]
+    }
+
+    //[UserbuttonClicked_Post]
+    //[/UserbuttonClicked_Post]
+}
+
+void CompressorAudioProcessorEditor::sliderValueChanged (Slider* sliderThatWasMoved)
+{
+    //[UsersliderValueChanged_Pre]
+    //[/UsersliderValueChanged_Pre]
+
+    if (sliderThatWasMoved == sliderThreshold)
+    {
+        //[UserSliderCode_sliderThreshold] -- add your slider handling code here..
+		getProcessor()->setThreshold(sliderThreshold->getValue());
+        //[/UserSliderCode_sliderThreshold]
+    }
+    else if (sliderThatWasMoved == sliderRatio)
+    {
+        //[UserSliderCode_sliderRatio] -- add your slider handling code here..
+		getProcessor()->setRatio(sliderRatio->getValue());
+        //[/UserSliderCode_sliderRatio]
+    }
+    else if (sliderThatWasMoved == sliderGain)
+    {
+        //[UserSliderCode_sliderGain] -- add your slider handling code here..
+		getProcessor()->setGain(sliderGain->getValue());
+        //[/UserSliderCode_sliderGain]
+    }
+    else if (sliderThatWasMoved == sliderAttack)
+    {
+        //[UserSliderCode_sliderAttack] -- add your slider handling code here..
+		getProcessor()->setAttackTime(sliderAttack->getValue());
+        //[/UserSliderCode_sliderAttack]
+    }
+    else if (sliderThatWasMoved == sliderRelease)
+    {
+        //[UserSliderCode_sliderRelease] -- add your slider handling code here..
+ 		getProcessor()->setReleaseTime(sliderRelease->getValue());
+        //[/UserSliderCode_sliderRelease]
+    }
+
+    //[UsersliderValueChanged_Post]
+    //[/UsersliderValueChanged_Post]
+}
+
+
+
+//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
+
+
+// This timer periodically checks whether any of the filter's parameters have changed...
+
+void CompressorAudioProcessorEditor::timerCallback()
+{
+
+		// Display the ON/OFF button in its correct state
+	if (buttonONOFF->getToggleState()) buttonONOFF->setToggleState(true, false);
+	else buttonONOFF->setToggleState(false, false);
+}
+
+
+//[/MiscUserCode]
+
+
+//==============================================================================
+#if 0
+/*  -- Jucer information section --
+
+    This is where the Jucer puts all of its metadata, so don't change anything in here!
+
+BEGIN_JUCER_METADATA
+
+<JUCER_COMPONENT documentType="Component" className="CompressorAudioProcessorEditor"
+                 componentName="" parentClasses="public AudioProcessorEditor, public Timer"
+                 constructorParams="CompressorAudioProcessor* ownerFilter" variableInitialisers="AudioProcessorEditor (ownerFilter)"
+                 snapPixels="8" snapActive="0" snapShown="1" overlayOpacity="0.330000013"
+                 fixedSize="0" initialWidth="700" initialHeight="310">
+  <BACKGROUND backgroundColour="ff3e3a3a">
+    <ROUNDRECT pos="4 -1 700 60" cornerSize="10" fill="solid: ffffffff" hasStroke="0"/>
+    <IMAGE pos="0 50 700 260" resource="brushedMetalDark_jpg" opacity="1"
+           mode="0"/>
+  </BACKGROUND>
+  <TEXTBUTTON name="on off button" id="74cbf2a91094eddb" memberName="buttonONOFF"
+              virtualName="" explicitFocusOrder="0" pos="17 55 125 25" bgColOff="ff615a5a"
+              bgColOn="ff7fff00" buttonText="ON / OFF" connectedEdges="0" needsCallback="1"
+              radioGroupId="0"/>
+  <LABEL name="" id="eb547386eded429d" memberName="label" virtualName=""
+         explicitFocusOrder="0" pos="-3 0 500 49" edTextCol="ff000000"
+         edBkgCol="0" labelText="Compressor" editableSingleClick="0" editableDoubleClick="0"
+         focusDiscardsChanges="0" fontname="Default font" fontsize="22"
+         bold="1" italic="0" justification="36"/>
+  <SLIDER name="new slider" id="eab20a7ec2124789" memberName="sliderThreshold"
+          virtualName="" explicitFocusOrder="0" pos="533 182 175 98" min="-60"
+          max="0" int="-60" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
+          textBoxEditable="1" textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
+  <LABEL name="new label" id="a68032c64d515cea" memberName="label2" virtualName=""
+         explicitFocusOrder="0" pos="588 152 91 24" edTextCol="ff000000"
+         edBkgCol="0" labelText="Threshold" editableSingleClick="0" editableDoubleClick="0"
+         focusDiscardsChanges="0" fontname="Default font" fontsize="15"
+         bold="0" italic="0" justification="33"/>
+  <SLIDER name="new slider" id="2707ee7701d502c1" memberName="sliderRatio"
+          virtualName="" explicitFocusOrder="0" pos="5 182 175 98" min="1"
+          max="100" int="0.1" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
+          textBoxEditable="1" textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
+  <LABEL name="new label" id="3e752a04cae9a566" memberName="label3" virtualName=""
+         explicitFocusOrder="0" pos="132 152 50 24" edTextCol="ff000000"
+         edBkgCol="0" labelText="Ratio" editableSingleClick="0" editableDoubleClick="0"
+         focusDiscardsChanges="0" fontname="Default font" fontsize="15"
+         bold="0" italic="0" justification="33"/>
+  <SLIDER name="new slider" id="c28d5a8c02343352" memberName="sliderGain"
+          virtualName="" explicitFocusOrder="0" pos="595 77 56 70" min="0"
+          max="40" int="1" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
+          textBoxEditable="1" textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
+  <LABEL name="new label" id="e3bb48b03347cb15" memberName="label7" virtualName=""
+         explicitFocusOrder="0" pos="604 52 52 24" edTextCol="ff000000"
+         edBkgCol="0" labelText="Gain" editableSingleClick="0" editableDoubleClick="0"
+         focusDiscardsChanges="0" fontname="Default font" fontsize="15"
+         bold="0" italic="0" justification="33"/>
+  <SLIDER name="new slider" id="153b41a7187b4d90" memberName="sliderAttack"
+          virtualName="" explicitFocusOrder="0" pos="196 182 175 98" min="0.1"
+          max="80" int="0.1" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
+          textBoxEditable="1" textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
+  <LABEL name="new label" id="ada7a829c3c54075" memberName="label5" virtualName=""
+         explicitFocusOrder="0" pos="229 152 120 24" edTextCol="ff000000"
+         edBkgCol="0" labelText="Attack Time (ms)" editableSingleClick="0"
+         editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
+         fontsize="15" bold="0" italic="0" justification="33"/>
+  <SLIDER name="new slider" id="147aff9502a416d7" memberName="sliderRelease"
+          virtualName="" explicitFocusOrder="0" pos="365 182 175 98" min="0.1"
+          max="1000" int="0.1" style="RotaryVerticalDrag" textBoxPos="TextBoxBelow"
+          textBoxEditable="1" textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
+  <LABEL name="new label" id="a04b8eaf5c6b5440" memberName="label6" virtualName=""
+         explicitFocusOrder="0" pos="391 152 120 24" edTextCol="ff000000"
+         edBkgCol="0" labelText="Release Time (ms)" editableSingleClick="0"
+         editableDoubleClick="0" focusDiscardsChanges="0" fontname="Default font"
+         fontsize="15" bold="0" italic="0" justification="33"/>
+</JUCER_COMPONENT>
+
+END_JUCER_METADATA
+*/
+#endif
+
+//==============================================================================
+// Binary resources - be careful not to edit any of these sections!
+
+// JUCER_RESOURCE: brushedMetalDark_jpg, 462527, "../../../../../Users/Antoine/Desktop/SAVE window choice and tests/Assets/BrushedMetal - dark.jpg"
+static const unsigned char resource_CompressorAudioProcessorEditor_brushedMetalDark_jpg[] = { 255,216,255,224,0,16,74,70,73,70,0,1,1,1,0,72,0,72,0,0,255,225,0,74,69,120,105,102,0,0,73,73,42,0,8,0,0,0,
+1,0,105,135,4,0,1,0,0,0,26,0,0,0,0,0,0,0,1,0,134,146,2,0,22,0,0,0,44,0,0,0,0,0,0,0,67,114,101,97,116,101,100,32,119,105,116,104,32,84,104,101,32,71,73,77,80,0,255,219,0,67,0,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,255,219,0,67,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,255,192,0,17,8,4,26,5,120,3,1,34,0,2,17,1,3,17,1,255,196,0,31,0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,255,196,0,181,16,0,2,1,3,3,2,4,3,5,
+5,4,4,0,0,1,125,1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,
+72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,
+178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250,255,196,0,31,
+1,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,255,196,0,181,17,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119,0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,
+240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,
+131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,
+216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250,255,218,0,12,3,1,0,2,17,3,17,0,63,0,252,215,251,67,177,25,179,99,143,250,97,25,200,224,99,45,62,115,192,0,113,215,223,
+53,50,202,122,255,0,103,147,144,7,250,152,191,146,204,51,248,159,108,230,176,132,138,64,253,236,153,61,130,1,250,241,234,112,57,245,25,231,18,7,112,65,23,19,103,142,170,167,240,255,0,90,160,140,103,175,
+235,210,128,58,21,152,128,63,208,37,92,116,43,28,35,0,231,214,98,125,125,122,96,142,13,74,151,46,56,91,73,186,255,0,17,132,126,3,247,128,99,3,24,236,79,21,134,147,76,7,252,124,75,142,152,17,70,220,114,
+112,9,148,131,144,114,126,132,251,84,201,44,253,68,211,54,57,57,183,135,143,108,249,191,159,183,126,184,0,232,22,226,83,143,244,23,28,100,147,229,30,185,231,253,119,56,252,184,205,76,179,17,247,236,206,
+58,28,249,96,245,228,113,33,29,51,223,36,250,86,42,61,193,192,87,112,15,28,197,10,147,146,57,249,100,200,199,25,193,207,30,248,54,21,174,201,234,79,3,168,129,122,103,131,186,108,244,192,36,3,237,158,5,
+0,108,165,194,18,9,178,135,31,237,180,71,244,50,99,244,207,161,205,89,87,83,140,91,64,131,160,199,144,72,233,220,187,31,111,199,7,177,172,85,55,156,16,34,28,243,150,128,146,59,240,103,24,237,208,156,122,
+102,172,161,188,192,253,228,10,120,227,100,100,254,36,93,142,126,156,246,201,231,32,27,40,128,224,144,136,51,216,91,103,168,245,35,240,199,92,117,61,106,194,197,8,229,157,71,166,90,207,36,231,147,157,
+217,60,250,140,15,83,89,40,215,140,0,18,192,78,7,252,187,196,57,247,63,111,7,249,130,51,245,171,35,237,61,194,55,178,172,92,158,57,37,181,62,131,147,208,116,201,199,74,0,214,69,183,4,109,149,71,95,152,
+125,140,156,228,116,3,57,201,200,3,7,57,244,201,19,132,64,63,227,225,190,158,85,169,245,57,27,57,250,142,158,158,149,151,28,179,3,243,65,25,126,132,226,28,145,237,141,68,146,73,228,140,99,211,3,53,109,
+102,110,246,202,113,255,0,76,163,228,96,231,159,183,182,15,127,166,113,211,128,13,4,69,61,39,124,30,50,109,247,115,159,103,3,167,29,190,185,53,97,97,132,144,13,195,41,244,251,42,142,135,190,92,251,116,
+245,198,49,156,208,89,195,12,125,150,51,128,58,172,64,140,250,147,121,245,245,207,225,138,157,74,183,34,214,46,167,42,171,9,96,58,227,38,112,58,158,153,57,61,78,40,2,248,182,182,200,255,0,75,244,198,45,
+212,103,61,56,32,112,61,61,207,175,22,22,218,30,171,118,231,216,90,68,113,232,78,75,16,122,144,121,207,62,132,28,208,169,140,253,154,53,246,217,111,158,189,120,153,142,79,111,65,222,164,2,62,63,113,131,
+254,204,118,228,227,35,167,207,143,161,199,227,142,104,3,72,71,0,32,53,212,231,161,0,90,39,108,244,196,103,241,253,41,227,236,235,255,0,45,39,99,235,246,110,222,248,43,215,175,110,156,138,164,139,9,251,
+214,238,227,63,222,182,95,230,167,30,160,226,166,9,110,70,62,199,47,28,255,0,199,205,184,29,185,32,219,184,60,17,235,143,228,1,117,90,1,209,174,129,56,32,139,75,134,206,70,127,131,176,239,140,243,235,
+82,168,78,187,238,185,254,245,165,208,199,234,157,125,79,208,116,36,211,81,110,56,251,43,12,243,131,45,177,207,32,103,254,60,143,29,115,248,251,85,164,142,6,60,68,70,112,62,89,34,60,16,48,9,26,105,28,
+12,12,100,122,96,98,128,38,81,8,251,207,55,60,101,173,238,71,227,142,71,174,57,231,211,165,60,36,4,1,185,206,49,214,9,59,118,229,79,169,228,250,158,135,38,162,251,44,36,30,56,244,243,96,82,49,128,71,58,
+104,235,192,236,125,125,105,194,197,9,200,13,156,247,186,140,99,32,241,198,158,195,31,92,0,58,1,129,64,19,136,98,234,60,204,129,218,30,163,128,115,136,178,115,212,228,254,52,121,106,91,0,72,188,255,0,
+207,54,198,65,232,6,193,144,126,153,254,116,213,183,35,161,147,60,12,11,188,15,110,154,112,201,207,92,131,140,114,65,228,63,107,47,33,155,61,193,188,126,221,50,5,144,233,233,143,175,83,64,15,242,115,147,
+135,231,214,54,252,121,242,58,3,212,146,112,115,211,187,150,6,61,49,158,64,200,35,175,166,98,82,78,61,71,182,7,90,81,231,63,27,73,246,55,147,3,249,253,137,135,126,249,244,35,138,147,108,195,25,141,6,6,
+6,110,221,136,30,159,53,134,15,126,163,7,158,61,0,24,45,164,56,229,79,76,157,220,253,62,231,110,217,198,1,233,146,42,81,109,40,28,52,99,61,154,72,193,255,0,199,163,247,239,252,197,0,93,2,112,209,99,35,
+24,147,220,142,73,178,80,125,136,247,227,2,164,205,192,56,105,35,30,184,184,97,235,235,105,245,224,99,129,219,138,0,103,145,50,131,131,31,212,73,106,121,244,255,0,85,158,59,100,126,7,184,98,159,4,109,
+4,245,206,235,97,239,198,34,0,126,92,99,62,153,0,184,32,31,49,64,233,254,188,30,51,211,6,209,123,227,28,254,184,5,224,92,140,124,224,253,39,81,244,227,201,246,206,113,131,156,247,2,128,16,36,170,7,238,
+65,227,57,205,175,57,228,115,229,15,78,57,237,79,223,50,255,0,203,32,48,71,67,110,79,62,226,35,156,243,147,143,90,104,55,3,57,96,126,179,46,71,94,153,136,114,126,163,21,56,18,228,252,231,142,121,149,72,
+39,241,76,247,247,206,15,165,0,66,39,144,31,245,108,71,112,190,73,201,239,140,64,121,207,60,246,234,51,74,46,152,245,141,148,250,230,49,220,142,190,64,193,245,206,71,4,224,12,230,113,231,228,227,39,216,
+21,97,212,30,190,73,207,167,111,78,5,47,239,198,14,93,79,94,10,255,0,241,143,211,57,245,247,0,137,110,143,32,150,31,140,99,62,199,16,31,161,246,237,214,143,61,206,0,115,140,147,150,32,113,128,15,62,65,
+255,0,245,117,199,121,188,217,71,89,230,200,31,116,18,8,235,156,15,47,169,207,39,240,238,105,60,217,115,243,207,114,123,169,15,32,24,236,14,87,28,128,122,125,121,160,8,140,207,158,10,159,162,196,115,215,
+146,126,200,79,111,95,200,211,12,242,19,128,177,227,35,239,40,3,131,219,109,162,129,158,49,215,140,113,216,90,18,63,105,110,179,234,36,148,115,142,236,160,30,51,211,4,156,14,79,90,122,203,58,228,137,39,
+32,158,166,89,201,233,211,135,83,233,199,233,211,0,21,119,54,7,16,100,231,156,142,189,184,54,192,100,122,145,216,99,61,227,102,126,112,32,198,238,238,84,31,111,150,215,130,50,0,200,197,95,51,203,146,12,
+146,142,59,53,201,63,146,206,71,60,118,0,126,32,82,11,137,58,25,231,3,142,162,231,235,215,207,192,61,122,99,211,7,176,6,126,92,240,62,207,211,175,154,73,245,234,108,242,0,56,25,39,182,121,166,236,155,
+146,69,176,4,231,253,110,14,72,255,0,106,223,144,48,125,179,219,21,164,102,113,255,0,47,15,245,31,105,7,0,119,204,224,158,188,100,224,126,39,12,251,79,36,125,166,108,241,159,154,111,126,65,123,161,215,
+143,243,205,0,81,41,42,247,128,129,198,3,199,140,99,175,252,123,103,252,49,145,207,86,17,48,228,197,3,30,56,47,31,97,220,139,110,71,78,217,61,201,226,180,197,200,25,197,213,193,62,128,22,31,80,126,213,
+159,254,191,233,27,92,49,63,44,147,147,219,247,108,120,207,125,183,103,191,183,52,1,152,26,65,193,183,136,231,39,153,20,99,175,172,28,116,250,82,110,63,197,12,10,59,102,68,80,79,30,144,175,56,238,57,7,
+208,214,145,150,99,209,229,201,7,172,12,71,95,123,146,71,57,29,186,122,154,141,164,184,199,28,247,201,179,45,208,242,73,107,145,200,231,160,235,158,120,228,3,57,139,30,145,192,6,122,249,227,29,248,25,
+78,253,57,250,116,201,49,29,252,159,42,44,130,57,243,129,233,207,67,1,94,152,236,122,113,205,104,153,46,59,236,60,156,255,0,161,228,254,7,207,108,116,192,61,48,115,140,140,83,124,203,174,222,81,28,112,
+108,249,235,236,249,231,219,30,156,115,64,25,197,177,146,99,132,146,49,144,241,241,248,253,157,115,219,242,35,144,105,9,4,12,236,140,99,248,90,1,212,245,4,198,1,201,238,7,61,205,104,135,186,60,255,0,163,
+99,57,255,0,143,67,156,240,7,59,200,252,185,231,189,52,201,115,221,227,82,7,240,217,231,63,95,222,100,228,30,113,249,208,6,97,42,6,124,220,251,9,109,71,94,157,99,207,235,235,144,122,3,114,231,2,69,94,
+58,180,150,217,228,250,121,96,16,122,159,215,219,64,125,176,147,137,35,30,237,106,139,145,234,57,57,207,248,122,28,177,146,236,30,110,45,134,78,121,183,35,35,158,132,19,143,196,122,158,180,1,71,4,231,
+247,232,1,232,67,193,211,161,224,47,60,250,156,113,212,114,105,4,14,126,111,180,198,73,28,28,219,2,48,50,121,57,207,97,198,8,60,116,235,119,202,184,99,205,229,153,234,48,109,215,39,183,36,134,227,35,175,
+183,122,79,42,94,247,122,119,29,140,40,121,199,208,99,185,7,25,238,56,226,128,40,132,112,112,46,193,61,148,73,6,61,64,218,56,227,212,0,126,134,152,82,110,134,114,57,199,88,49,220,245,220,128,119,250,159,
+194,180,10,77,146,86,238,193,122,245,82,159,200,116,199,185,35,63,155,8,185,231,109,237,150,71,7,106,59,3,232,57,140,227,31,227,156,80,5,64,36,24,2,225,184,193,32,181,185,235,158,153,152,113,212,244,199,
+66,7,74,105,89,155,56,184,57,255,0,101,161,206,61,112,179,118,255,0,30,71,90,186,86,231,39,117,245,169,28,15,149,28,30,159,245,196,244,31,92,99,25,61,105,140,36,255,0,159,200,79,76,144,192,16,123,117,
+178,57,4,241,140,142,63,34,1,79,203,147,175,158,196,245,25,104,185,61,56,196,222,255,0,215,175,20,252,74,185,11,135,199,241,23,35,190,123,57,199,79,79,169,199,53,35,25,179,129,117,1,227,187,33,29,57,235,
+100,7,60,119,28,230,154,124,192,62,105,237,207,115,143,40,147,215,210,197,178,122,156,22,239,129,205,0,52,180,227,131,26,28,250,200,70,113,146,123,103,29,50,114,59,250,212,78,36,57,63,101,65,232,124,241,
+245,39,5,79,190,115,233,244,169,124,226,164,226,88,78,79,63,34,3,147,129,218,196,30,231,147,142,120,206,8,160,204,9,39,48,176,234,72,136,19,156,255,0,215,159,60,118,60,99,219,160,4,42,100,11,255,0,30,
+192,140,244,243,35,99,239,210,46,61,135,126,212,132,182,8,54,72,222,187,146,54,200,252,34,83,158,71,63,254,186,152,78,6,14,229,81,233,228,140,115,211,37,173,0,0,243,211,147,158,41,62,213,25,224,186,224,
+131,200,72,129,246,251,246,185,60,254,24,200,160,8,48,160,128,108,208,12,228,226,52,28,156,12,3,180,119,227,130,123,243,214,152,226,60,227,236,225,1,234,54,2,120,244,253,211,17,233,233,236,123,78,39,181,
+56,203,3,244,138,30,79,61,127,209,215,211,212,247,231,138,67,61,136,60,228,245,233,20,28,231,140,228,168,207,56,198,115,223,130,1,20,1,80,52,121,63,186,252,203,160,244,249,130,70,185,227,160,24,199,191,
+57,11,160,233,24,25,207,33,174,14,79,66,62,184,7,63,143,115,197,193,115,97,201,199,182,62,207,3,99,167,82,25,122,28,113,199,61,64,167,27,141,56,158,85,125,6,32,143,158,253,165,246,245,232,57,233,64,25,
+165,219,7,8,113,199,105,72,29,123,145,199,95,65,207,79,90,105,119,232,16,142,188,226,83,211,219,112,28,245,224,244,7,233,90,191,107,211,199,72,148,251,152,128,231,60,240,39,4,251,142,185,207,32,80,215,
+22,13,128,45,151,156,114,17,151,143,251,250,122,15,124,30,254,148,1,144,94,65,220,142,7,72,164,234,79,253,117,237,143,199,215,34,135,150,76,125,242,220,113,147,42,146,70,7,252,246,192,244,224,116,206,
+71,122,212,243,52,242,120,180,76,31,246,73,199,226,73,227,36,231,25,29,50,71,20,19,100,7,203,109,27,122,13,164,114,79,66,55,15,167,0,143,65,130,77,0,99,6,152,142,7,215,18,204,64,206,127,187,112,153,236,
+57,3,191,39,138,66,215,36,241,183,29,57,146,224,228,14,58,139,161,245,193,7,184,173,188,90,48,192,180,10,122,224,43,244,245,225,186,119,36,15,195,213,190,92,36,144,182,241,12,103,25,142,98,125,186,18,
+115,131,207,57,235,142,58,0,99,147,54,112,76,89,244,18,76,72,35,29,204,252,30,156,115,142,221,69,56,71,112,217,202,68,56,227,231,39,29,125,100,28,145,142,14,61,51,222,181,54,42,240,34,183,81,192,27,161,
+155,7,158,156,242,7,92,228,224,250,119,167,24,114,48,34,183,198,56,43,4,128,140,99,190,9,98,115,211,57,60,208,6,80,73,51,247,98,198,127,137,226,76,99,156,252,207,237,208,247,246,167,24,207,241,71,110,
+115,253,233,161,254,65,179,215,167,30,227,21,127,236,202,87,132,65,199,56,180,13,235,200,110,72,28,255,0,22,49,248,83,13,154,158,161,65,201,207,250,38,79,7,31,221,108,247,192,199,97,158,112,104,2,137,
+129,8,229,45,71,184,54,228,156,156,247,113,211,0,119,61,77,48,67,111,159,245,112,12,245,249,237,128,250,30,15,29,1,57,250,244,171,166,209,1,225,240,58,255,0,199,146,241,159,98,138,78,50,122,3,199,97,210,
+165,91,69,198,68,228,96,118,176,92,244,239,128,14,79,35,56,247,29,120,0,204,251,61,167,86,134,217,179,223,54,228,143,175,238,249,199,177,238,121,238,28,45,173,48,63,117,0,207,76,45,183,35,240,137,185,
+239,200,233,158,135,53,122,75,88,249,205,196,131,174,127,208,128,245,3,131,47,35,156,14,57,246,21,19,90,66,216,6,240,231,208,218,16,120,231,167,153,219,24,207,78,63,48,10,162,11,101,60,68,128,0,114,81,
+172,208,99,232,109,243,147,219,232,113,207,72,216,64,15,203,20,188,99,59,94,205,179,235,200,133,7,168,228,144,51,200,53,116,89,193,192,55,71,35,186,218,158,189,185,50,118,63,135,114,65,52,255,0,177,66,
+216,83,114,72,29,196,1,114,120,207,30,97,57,235,206,8,234,125,40,3,49,229,129,63,229,132,185,233,203,218,228,125,119,2,51,233,129,235,211,140,198,102,140,131,251,137,49,216,230,208,156,115,221,118,156,
+142,49,130,122,99,21,172,108,109,215,24,185,151,169,56,17,183,183,63,235,1,192,235,215,142,190,212,134,210,48,50,37,118,60,131,145,112,189,56,7,9,41,231,212,251,12,142,212,1,145,230,32,60,65,48,62,164,
+192,61,6,64,12,115,223,160,199,29,48,105,119,14,138,179,158,152,196,209,254,95,113,135,62,227,156,224,115,205,107,8,20,12,110,126,14,9,6,108,114,127,218,144,158,195,63,135,185,165,16,198,114,12,132,30,
+224,25,58,30,191,242,208,123,28,99,145,158,194,128,50,149,229,0,31,223,143,251,111,207,177,226,60,122,119,239,72,124,242,14,13,199,95,249,237,39,83,147,192,80,7,161,60,241,207,108,214,171,219,196,51,135,
+206,122,101,229,25,252,60,211,142,123,85,111,33,1,32,41,57,244,154,97,216,231,140,57,35,215,147,144,120,199,90,0,162,126,209,140,6,159,176,249,167,152,113,239,128,196,113,192,227,211,61,205,71,155,207,
+186,37,144,30,217,185,149,187,28,241,176,140,228,117,253,57,173,51,2,245,216,217,238,86,226,65,156,156,114,26,44,145,232,56,61,15,3,138,70,136,176,255,0,82,196,231,189,203,15,167,88,134,126,188,158,121,
+239,144,12,237,151,132,159,222,191,3,167,159,47,108,28,231,200,39,175,81,250,122,167,145,124,121,251,70,58,140,121,211,54,48,78,51,182,212,254,35,63,202,174,53,184,224,52,18,142,191,118,237,198,79,64,
+56,136,31,126,120,7,130,1,21,25,183,28,168,134,108,123,221,176,228,99,190,206,127,78,158,157,64,43,11,75,208,121,185,7,39,159,223,221,143,166,72,141,64,39,56,233,232,112,121,195,90,218,244,147,254,146,
+71,174,46,174,249,29,250,167,36,243,233,142,51,86,62,202,163,27,97,108,227,169,190,126,70,120,192,49,254,131,35,61,142,57,70,181,207,72,216,224,238,255,0,143,183,3,243,11,192,231,39,140,253,40,2,139,90,
+95,49,32,207,51,46,62,108,92,76,220,145,159,226,110,255,0,253,115,142,180,211,103,113,192,47,35,18,115,204,147,150,227,233,56,31,203,252,46,27,51,200,88,164,39,61,5,245,192,3,219,42,167,175,57,227,255,
+0,173,11,89,178,240,208,74,15,108,95,79,159,196,24,199,29,198,72,228,119,233,64,21,205,172,224,18,124,206,120,200,150,81,211,35,36,53,192,29,7,61,249,35,167,37,13,172,221,2,205,201,207,18,72,73,29,51,
+255,0,31,126,157,121,252,141,89,22,135,254,120,220,112,115,143,237,9,64,231,145,193,92,227,156,138,13,180,152,194,197,56,60,19,155,249,152,142,248,0,49,28,117,254,88,205,0,87,242,27,163,139,177,219,10,
+242,30,125,143,219,57,199,82,8,3,0,230,154,96,235,242,222,237,236,9,153,189,58,129,126,61,72,57,199,65,219,53,96,219,202,188,152,174,193,29,214,234,114,61,142,90,80,71,126,184,198,120,237,76,49,75,209,
+22,228,17,208,189,204,196,228,103,144,60,194,123,142,224,251,30,104,2,3,4,101,114,99,190,110,61,103,219,223,183,219,134,7,110,221,1,199,92,183,236,240,133,199,151,169,115,159,184,36,32,250,19,186,241,
+176,71,175,95,214,165,43,115,206,68,160,255,0,215,203,174,73,224,28,134,7,245,110,120,224,0,42,22,23,56,194,180,248,30,146,187,250,250,30,61,185,233,232,120,32,17,155,72,14,236,38,172,62,176,179,15,126,
+4,249,35,30,220,118,233,138,143,236,86,189,93,53,19,237,246,89,61,186,159,59,61,127,14,158,212,31,56,144,25,164,0,99,134,46,62,185,234,57,206,50,71,78,59,140,33,82,73,218,236,196,140,145,144,113,234,1,
+96,185,252,56,39,191,34,128,20,218,217,30,54,234,95,133,164,192,129,146,56,38,227,25,233,199,126,163,169,38,7,178,178,57,220,53,17,129,159,248,247,126,125,114,62,210,121,3,220,99,147,129,138,121,82,120,
+223,199,184,143,241,254,62,157,1,207,175,65,217,141,17,56,27,212,112,57,204,7,30,248,36,96,129,212,113,129,233,64,16,155,27,30,199,80,3,7,3,236,216,7,25,228,19,49,63,92,18,123,240,122,68,218,125,139,99,
+38,252,158,79,54,228,14,227,170,201,140,253,113,201,231,138,157,173,75,117,116,60,250,217,142,158,236,228,158,184,235,211,223,164,109,104,153,249,100,136,119,39,117,160,237,220,153,7,62,253,62,188,96,
+2,187,105,150,63,220,188,228,28,1,11,117,247,37,200,199,7,28,31,67,207,21,25,211,173,179,242,199,117,131,158,26,21,108,122,125,236,140,242,121,231,28,84,237,100,156,229,163,35,35,39,207,181,25,227,167,
+222,252,249,56,244,39,172,109,105,110,15,27,179,215,11,113,101,249,15,222,100,140,15,127,166,114,40,2,35,166,193,200,49,93,183,28,3,103,27,123,19,247,71,24,7,159,155,29,135,113,17,211,32,80,72,142,76,
+224,156,53,156,3,249,199,159,196,15,198,166,54,214,196,227,7,25,36,230,107,94,79,78,72,60,243,129,159,65,156,122,33,179,183,110,237,180,115,133,187,181,0,231,212,20,57,192,233,201,233,159,92,0,85,58,124,
+71,63,184,147,35,214,11,81,211,24,224,196,79,248,122,2,9,17,62,154,185,251,184,192,239,29,168,234,123,98,35,250,12,19,142,58,213,131,99,111,207,250,222,188,255,0,165,90,159,66,121,216,51,193,207,31,173,
+66,214,86,132,231,231,227,39,155,152,7,191,95,43,3,156,156,228,12,96,118,20,1,93,180,227,158,74,15,247,173,237,216,253,115,246,115,156,156,241,145,215,219,6,6,176,97,213,35,60,96,226,222,53,57,245,249,
+109,73,207,242,24,205,89,107,75,85,60,40,35,215,207,129,186,113,158,23,56,238,56,30,252,98,162,49,217,0,114,131,142,9,243,87,230,35,175,221,0,99,0,117,253,40,2,163,233,236,79,250,146,70,59,219,161,233,
+207,241,64,50,79,76,97,70,79,6,163,22,108,15,54,249,198,113,254,139,17,27,177,146,78,80,15,195,220,247,206,108,177,178,231,1,177,159,225,112,115,239,131,235,199,161,245,2,162,205,142,238,22,76,242,121,
+228,115,238,49,239,245,199,113,212,2,35,110,220,110,181,35,142,171,111,18,228,17,143,238,128,127,167,124,158,106,35,10,142,13,187,128,57,193,75,113,207,126,185,207,3,235,214,172,191,217,56,0,55,161,221,
+188,99,167,60,43,30,196,241,236,64,201,230,172,176,219,54,74,171,183,251,158,119,24,199,102,143,24,231,39,140,143,200,208,2,24,198,0,48,242,121,200,242,9,199,78,118,184,35,60,246,30,190,148,210,20,40,
+59,14,112,127,229,156,109,249,15,63,29,56,29,57,207,28,10,77,150,106,57,142,112,123,2,78,7,175,30,88,110,253,142,72,252,42,22,22,228,17,229,203,207,99,187,28,245,254,15,175,63,254,186,0,119,152,122,249,
+14,123,96,68,138,123,158,247,35,57,207,28,96,123,14,105,190,99,14,77,141,201,31,236,69,23,30,188,139,172,116,233,158,70,79,110,42,51,28,64,18,177,178,227,213,152,114,51,234,131,7,242,39,7,158,42,38,72,
+200,193,19,2,64,201,12,132,19,199,25,40,72,235,207,81,142,7,60,80,5,141,249,235,97,119,198,121,100,78,252,114,77,223,111,168,230,152,210,160,225,172,165,3,212,197,9,238,59,153,216,119,245,245,206,42,185,
+128,118,105,242,15,121,34,231,143,65,26,147,244,235,158,58,244,95,36,96,157,179,254,14,23,39,167,80,164,116,245,237,248,208,4,141,52,39,36,219,76,49,199,16,218,30,63,224,79,245,207,126,252,117,170,204,
+240,19,243,91,92,127,192,173,45,27,61,241,196,202,59,251,159,232,173,106,167,157,147,17,140,227,237,46,79,174,126,225,3,215,31,214,171,189,162,110,200,142,228,244,200,243,51,249,126,237,78,6,49,146,114,
+123,246,52,0,246,120,89,73,251,52,152,29,141,140,10,125,143,203,118,58,250,158,123,123,24,25,224,199,54,114,177,255,0,102,210,48,51,158,224,92,55,25,200,35,60,117,237,192,45,138,241,228,206,3,1,146,206,
+78,49,158,223,48,207,78,8,227,29,169,90,216,48,33,90,83,158,128,111,96,49,223,1,148,254,135,39,144,7,6,128,34,43,110,220,253,138,224,117,206,219,116,3,35,184,31,104,237,156,158,115,239,214,163,48,91,145,
+187,236,215,43,219,238,168,63,128,51,231,31,64,70,115,244,18,125,149,151,60,92,253,68,115,1,199,61,68,139,223,167,81,199,95,81,162,153,191,138,240,41,57,35,203,185,192,24,199,95,49,184,199,166,113,199,
+165,0,87,120,160,4,100,202,189,240,203,26,244,255,0,122,227,29,61,113,156,156,129,76,22,240,103,253,100,159,128,182,193,235,215,253,36,250,247,199,57,207,39,21,109,96,152,114,191,104,98,120,201,75,222,
+6,127,216,254,167,142,112,0,230,165,242,110,48,6,219,147,129,215,202,191,56,224,113,211,7,60,116,231,4,144,120,34,128,40,24,32,192,201,152,242,63,231,220,12,3,145,200,156,12,158,57,201,231,138,119,151,
+0,31,242,212,145,217,158,17,199,176,91,158,51,212,99,223,140,158,110,52,87,35,37,100,186,78,248,41,120,7,92,244,96,123,122,103,175,35,156,210,132,188,92,31,180,93,123,226,9,206,63,23,66,56,245,94,191,
+136,160,10,96,90,128,65,89,63,22,4,228,250,145,62,57,36,240,49,219,4,17,196,100,90,159,225,155,32,28,124,233,244,227,18,55,127,202,180,129,190,220,8,158,80,71,77,209,237,39,211,254,89,117,235,158,189,
+57,235,82,111,189,7,155,169,7,29,118,179,0,50,56,207,144,0,250,103,241,24,160,12,205,150,196,112,183,28,156,127,120,115,244,97,146,121,250,254,20,224,177,167,43,29,206,48,15,49,70,71,228,224,169,7,63,
+94,79,28,86,135,157,122,14,62,214,199,156,228,238,83,142,227,27,15,7,220,125,61,207,54,225,137,83,118,1,56,198,231,199,168,227,49,2,6,51,158,8,35,24,192,234,1,76,62,220,159,179,204,195,147,255,0,30,241,
+30,79,56,194,169,39,245,56,236,56,194,25,193,60,89,206,112,7,11,106,156,30,56,25,65,131,158,255,0,133,104,131,114,0,111,181,67,215,25,50,32,30,152,193,183,199,60,224,28,230,141,247,0,159,244,200,129,245,
+89,34,192,233,206,13,186,142,227,184,228,128,56,160,10,126,121,237,101,48,233,156,218,38,113,206,115,251,178,7,76,122,119,245,33,126,208,227,27,108,229,82,57,207,217,1,231,142,152,85,7,216,246,198,113,
+215,22,76,179,231,6,245,75,28,28,153,98,31,128,92,40,233,207,183,29,121,194,249,174,50,77,242,113,221,100,128,243,142,159,119,56,60,145,130,121,200,239,64,20,222,107,150,225,45,231,7,29,237,14,49,236,
+20,129,207,25,232,123,243,73,139,198,227,202,148,12,240,126,206,224,228,99,28,131,144,70,9,227,63,76,252,213,120,92,48,193,251,80,32,156,229,165,69,63,78,48,57,235,192,29,58,231,6,166,89,193,63,241,245,
+22,122,144,46,84,30,221,8,145,49,192,62,231,208,244,160,10,73,13,233,24,10,195,56,7,116,45,156,115,211,60,28,231,161,253,14,105,124,139,188,159,155,191,57,129,122,231,156,243,215,235,208,245,171,134,112,
+14,5,208,35,140,145,116,185,247,227,207,56,231,142,159,211,42,183,7,39,109,195,243,215,109,212,100,241,211,0,205,158,122,126,99,218,128,43,8,110,112,126,85,56,239,181,114,113,147,192,222,48,57,227,189,
+30,76,217,57,84,29,8,44,48,6,51,158,146,122,125,6,127,75,130,105,115,242,220,74,61,133,196,96,156,231,175,239,248,201,246,230,131,119,113,156,121,183,71,158,72,184,76,126,56,155,60,103,208,30,72,244,160,
+10,171,105,33,32,184,141,192,63,194,192,99,243,155,63,128,192,232,15,0,1,47,217,93,186,71,27,99,177,110,190,196,121,227,215,142,216,199,24,60,216,23,115,103,173,211,28,12,131,112,24,122,128,113,114,0,
+246,250,131,199,90,122,220,204,73,253,220,195,129,144,210,22,57,60,99,30,107,241,223,25,60,118,237,64,16,125,153,198,6,200,148,3,211,122,14,121,232,94,126,188,117,250,230,158,182,236,73,6,40,137,224,252,
+207,110,120,236,70,110,151,158,8,235,145,238,49,83,153,230,228,121,82,127,223,109,206,51,129,128,112,49,129,219,28,228,82,121,210,156,230,223,143,92,156,228,159,117,63,134,78,122,251,96,1,68,33,112,60,
+168,135,214,91,92,113,219,254,62,189,186,100,241,250,76,168,252,124,144,253,68,182,192,156,99,3,139,130,114,9,32,96,142,7,61,49,80,25,166,232,45,92,130,127,132,41,199,167,68,198,122,99,28,253,49,79,12,
+228,243,111,40,224,116,137,142,58,12,31,220,145,201,57,200,0,126,185,0,159,44,63,133,64,207,79,62,17,252,166,61,71,67,206,123,122,84,184,118,232,17,0,24,36,205,1,39,129,219,205,253,71,62,184,230,162,66,
+72,249,160,114,163,175,238,192,31,142,45,216,243,211,56,169,210,24,31,4,219,254,27,121,250,113,96,72,233,250,116,197,0,57,21,179,159,147,140,127,203,120,65,247,232,231,30,156,129,158,112,56,169,0,193,
+251,185,36,245,19,64,51,249,100,140,158,221,248,205,70,109,173,88,255,0,168,80,127,218,96,189,251,110,176,233,250,127,71,139,91,96,1,16,167,83,209,225,24,236,121,251,24,0,142,156,224,243,233,64,19,5,220,
+15,238,226,35,175,250,232,75,99,175,25,137,189,137,7,57,247,201,37,76,65,184,104,23,29,15,239,99,80,63,5,135,240,245,61,6,41,159,101,181,198,118,160,61,121,154,220,241,216,255,0,199,168,192,255,0,56,206,
+105,201,13,151,33,147,28,18,49,53,190,7,182,126,206,62,163,191,175,56,160,3,236,168,73,196,40,51,142,179,145,248,103,236,231,249,158,227,146,57,81,107,30,14,96,7,39,254,122,150,7,24,199,252,184,231,3,
+56,228,246,61,121,196,139,29,136,60,12,96,246,184,137,125,15,104,7,39,140,242,56,232,106,95,38,196,240,92,40,56,36,25,225,35,29,136,38,47,240,3,156,159,64,10,127,97,183,110,182,131,234,3,31,207,26,113,
+235,156,156,99,158,7,25,166,141,54,216,145,155,24,216,19,221,78,122,251,233,164,254,99,63,144,53,160,33,211,112,64,150,34,79,99,61,167,234,12,39,177,56,233,143,200,83,214,215,78,115,254,178,19,192,57,
+243,108,143,60,113,204,67,159,199,175,20,1,155,253,157,106,48,69,140,24,28,237,49,147,238,58,233,216,227,4,251,1,129,154,85,176,181,24,221,167,218,21,233,157,141,159,192,45,136,193,227,35,128,64,239,207,
+58,38,210,204,28,167,147,211,180,150,160,245,231,32,48,31,55,190,56,60,99,147,72,45,226,83,202,43,14,156,189,177,227,160,228,200,2,129,215,29,114,104,2,144,178,180,29,52,251,115,211,172,115,14,216,233,
+246,28,116,239,235,207,28,84,191,100,181,219,255,0,30,150,139,142,223,103,155,183,191,216,242,58,247,39,29,234,224,130,14,235,183,29,137,183,60,250,125,243,244,231,29,57,165,48,66,78,112,159,82,240,228,
+243,234,37,39,158,249,28,227,158,188,0,85,88,45,70,49,109,99,207,28,193,56,24,61,58,91,1,145,131,207,65,206,49,138,176,162,212,117,138,200,17,206,5,164,191,174,97,235,248,12,227,142,106,97,103,22,9,2,
+30,122,110,150,46,128,117,4,205,142,254,156,251,240,41,126,196,112,1,54,228,112,120,185,129,70,56,227,153,215,7,145,212,243,192,238,104,2,63,50,212,231,17,217,169,24,199,250,43,247,192,244,83,198,79,61,
+6,51,219,52,84,162,201,65,255,0,85,110,253,78,13,204,93,115,211,34,119,228,103,160,228,243,198,49,130,128,49,150,117,239,28,173,142,185,156,119,255,0,112,140,240,59,100,2,56,198,121,157,37,102,32,8,167,
+25,231,135,157,128,39,185,37,251,143,66,126,157,106,156,112,12,255,0,174,191,80,79,56,137,143,25,233,157,164,142,15,76,113,211,167,53,117,34,136,114,243,234,71,166,72,67,131,199,76,152,250,245,245,235,
+207,24,160,11,137,187,0,17,38,58,29,203,43,123,227,239,123,28,19,154,178,17,136,235,140,244,249,166,83,219,57,3,35,208,102,170,71,21,191,25,151,81,224,144,62,70,28,99,131,254,163,39,191,97,239,222,173,
+167,150,8,253,245,254,51,252,105,212,99,24,57,140,115,142,152,199,76,244,232,1,50,161,3,135,101,60,17,135,151,156,99,3,136,73,246,201,35,30,135,57,169,213,101,63,197,33,24,200,195,92,142,64,255,0,102,
+5,7,56,3,147,142,230,152,143,31,31,189,152,243,209,188,160,126,164,27,99,215,211,156,241,158,217,178,141,17,224,77,32,192,39,5,162,29,7,61,108,199,65,200,231,25,199,168,160,5,95,55,3,45,32,28,96,51,94,
+227,142,115,196,64,103,211,208,14,245,54,210,195,129,147,198,64,107,242,120,192,29,99,42,58,117,247,237,205,56,28,159,150,124,140,122,219,243,215,35,152,16,253,64,207,53,97,84,145,146,217,198,57,205,176,
+7,158,184,242,79,94,220,30,190,148,1,18,68,249,207,206,190,152,123,145,158,72,227,116,89,4,142,14,48,51,216,142,42,194,192,196,143,150,99,142,114,90,228,241,248,218,183,31,143,160,198,51,82,172,103,169,
+4,100,127,7,144,115,216,130,69,184,244,255,0,245,84,201,16,43,133,141,253,57,207,61,121,56,136,46,62,135,159,169,56,0,104,182,147,28,130,57,254,33,49,228,99,25,38,207,61,198,113,158,167,147,205,75,246,
+118,61,88,140,103,56,107,132,252,121,176,231,160,227,60,99,28,210,136,156,100,136,240,7,60,245,228,240,50,84,113,192,244,231,28,212,203,12,141,144,9,207,7,1,21,177,156,123,19,211,249,116,56,205,0,53,33,
+152,17,180,177,192,28,25,164,199,94,255,0,241,47,56,245,192,201,247,226,172,162,220,30,55,30,132,1,231,76,7,225,139,14,156,114,56,254,84,197,183,148,19,195,125,124,172,103,167,183,175,57,198,71,212,84,
+130,7,238,146,224,255,0,118,50,125,251,48,199,92,250,158,230,128,37,22,247,12,62,111,47,7,169,251,75,250,244,230,196,12,227,177,62,160,96,117,153,44,166,245,128,145,198,124,240,79,230,109,176,70,49,142,
+57,227,161,205,71,28,13,142,22,232,158,51,136,216,145,248,25,87,215,183,231,83,44,78,127,229,158,160,78,123,71,32,3,140,147,184,72,79,94,61,0,231,61,128,5,149,177,156,99,46,131,183,250,213,233,198,120,
+22,121,252,193,199,175,60,217,91,121,6,71,156,159,139,198,196,254,122,127,94,158,158,157,176,106,36,61,50,154,135,126,177,187,99,243,112,57,232,115,142,249,171,11,3,28,31,46,247,182,3,68,49,142,185,230,
+110,57,252,189,179,200,4,226,222,99,207,153,8,28,100,111,76,241,223,157,63,131,215,235,197,61,96,102,56,47,27,16,114,197,103,143,57,234,15,22,64,243,142,70,79,233,81,125,154,78,201,48,83,219,200,143,158,
+156,17,246,149,252,121,236,56,167,165,187,103,230,19,231,29,4,17,19,158,123,253,164,129,200,232,14,9,0,2,7,32,2,97,109,32,57,222,72,231,143,181,33,253,26,212,125,123,242,79,35,0,212,171,104,255,0,196,
+79,66,115,246,148,231,167,80,176,175,110,220,115,235,205,49,109,241,252,55,108,49,206,35,85,24,3,142,86,110,61,64,236,56,25,193,53,58,66,163,63,187,186,198,56,7,104,238,59,27,161,218,128,20,89,129,129,
+151,99,199,252,182,7,143,96,20,113,239,142,227,142,230,84,182,64,121,146,101,255,0,101,24,16,56,239,251,190,122,231,169,36,243,140,30,92,176,41,0,148,152,123,52,125,192,231,7,206,112,125,58,140,159,94,
+41,126,206,8,5,68,131,235,26,241,208,112,124,206,152,239,220,99,189,0,74,34,81,128,178,221,126,4,54,71,29,15,217,220,126,3,167,83,236,211,27,30,18,75,179,159,108,242,122,231,22,103,143,254,191,34,148,
+90,169,7,46,1,234,11,68,171,159,114,124,222,199,142,217,207,78,121,119,217,215,0,228,49,62,145,126,24,218,46,8,252,66,255,0,92,0,32,183,148,159,245,151,100,250,145,39,242,91,51,129,144,189,179,215,190,
+49,32,183,126,1,150,227,145,156,17,113,207,227,246,64,7,183,94,115,143,74,111,146,59,146,56,29,98,148,117,255,0,117,155,31,159,94,252,240,229,140,2,14,249,0,62,130,98,51,233,204,108,1,60,1,158,253,56,
+160,7,173,187,15,249,120,157,125,246,92,182,125,73,197,137,24,7,32,124,216,228,122,224,74,177,0,126,107,153,24,118,221,21,192,28,119,230,200,122,122,119,239,145,150,129,129,128,247,28,244,198,226,120,
+233,255,0,44,56,199,111,95,90,20,191,252,245,156,250,238,140,55,29,121,30,71,191,60,142,121,224,208,4,162,56,122,155,134,60,245,17,205,130,79,167,250,17,192,207,29,56,236,49,75,229,199,145,251,226,57,
+193,12,178,254,29,108,54,129,154,143,50,103,253,123,143,111,35,31,153,16,183,211,183,94,163,154,48,196,127,199,195,12,227,143,36,103,30,193,173,193,36,126,56,235,64,19,152,80,140,9,35,110,135,230,243,
+71,161,237,97,215,176,236,121,234,51,144,64,171,214,72,192,250,184,92,143,115,104,184,28,115,130,15,24,239,80,236,199,38,225,184,39,254,93,215,32,231,7,254,88,113,208,30,49,200,192,28,83,113,30,79,250,
+75,228,244,255,0,70,83,234,120,83,14,61,243,140,100,1,159,80,11,97,34,24,6,107,97,223,153,28,99,25,236,33,206,125,9,193,244,237,78,34,220,17,155,139,64,70,79,205,43,28,103,161,230,44,255,0,79,76,113,84,
+254,78,215,18,255,0,224,36,61,126,134,213,178,79,243,63,141,61,10,119,185,147,131,159,248,245,132,15,175,48,142,122,118,233,156,158,57,0,179,182,220,240,46,108,241,140,113,112,1,62,128,228,47,174,14,64,
+224,254,96,142,14,130,226,207,7,254,158,152,14,160,224,97,135,24,231,215,191,65,80,252,167,239,92,202,71,78,44,237,241,235,206,54,254,103,219,167,0,38,216,51,205,196,132,117,193,179,136,140,244,234,36,
+63,94,49,212,208,5,157,150,253,4,182,217,238,69,219,48,233,238,249,239,216,31,76,230,154,18,60,228,75,30,1,233,230,202,87,24,246,147,145,128,125,249,200,207,104,68,118,248,56,149,143,3,31,232,104,63,147,
+1,207,94,15,177,198,105,155,109,193,195,76,228,103,254,120,0,9,201,231,6,83,199,25,228,115,64,22,74,192,126,252,136,190,225,174,51,143,94,24,246,224,124,220,99,191,83,19,197,105,158,36,102,30,170,243,
+140,240,79,119,25,24,199,78,252,115,81,131,109,207,239,72,60,145,136,98,82,7,24,36,153,129,252,51,244,193,160,75,109,211,206,144,99,31,117,98,246,3,57,184,206,56,207,99,223,7,25,160,5,217,104,15,89,79,
+76,140,205,129,142,152,59,219,63,212,250,118,97,138,209,142,74,72,115,128,126,89,219,191,226,9,63,253,110,42,67,52,28,128,247,7,61,188,200,151,215,63,41,156,255,0,33,235,232,105,190,109,191,173,194,145,
+235,58,55,110,114,22,99,233,158,188,123,156,154,0,65,111,106,113,133,152,255,0,186,142,51,212,227,4,174,48,113,192,237,193,61,41,198,218,1,158,46,71,92,31,37,136,3,240,155,167,248,15,165,6,91,98,48,26,
+94,59,238,76,115,158,185,114,70,120,224,3,245,235,152,76,150,191,243,210,69,228,159,188,163,184,28,114,122,241,192,228,80,2,249,17,116,18,76,7,251,118,196,241,207,247,166,25,207,168,61,114,64,239,64,183,
+67,192,148,129,129,140,217,70,191,251,115,159,175,166,42,49,60,67,129,43,143,164,136,61,184,249,177,215,211,212,142,156,83,77,204,96,225,167,152,147,158,147,32,92,228,140,227,206,28,125,57,235,199,168,
+4,159,101,224,145,58,131,208,3,4,75,200,231,35,46,72,250,247,0,224,119,160,90,185,206,46,87,158,113,182,14,190,152,220,15,29,134,115,237,214,163,251,92,92,126,246,94,63,233,188,125,115,200,3,206,199,166,
+72,3,146,48,121,160,94,14,113,53,208,199,31,36,209,227,158,127,231,177,97,156,103,143,110,61,64,30,109,102,224,125,165,112,59,149,131,140,3,215,15,207,92,245,35,29,241,212,251,44,167,165,222,79,108,172,
+64,2,114,51,196,163,232,62,163,212,26,136,222,49,235,61,217,32,144,7,154,184,199,108,126,240,254,29,243,233,214,152,111,78,63,227,226,240,118,255,0,92,164,142,231,131,40,235,147,219,142,156,224,224,2,
+70,177,185,24,43,126,163,160,56,17,100,3,211,129,114,73,199,63,161,192,168,158,206,224,242,111,156,143,66,141,142,71,79,150,228,253,120,253,123,31,108,98,188,93,92,159,64,206,163,241,226,227,158,9,231,
+142,224,113,77,23,146,1,129,113,115,143,250,238,87,39,60,128,86,231,233,201,25,231,29,49,64,17,53,148,167,63,233,205,158,184,49,204,115,219,175,155,199,92,231,159,175,170,125,130,79,249,250,103,198,78,
+68,115,31,124,143,222,244,192,227,31,95,173,145,122,236,63,215,220,144,59,11,182,63,95,249,120,7,220,224,156,228,113,197,6,228,140,147,52,227,32,243,189,216,158,167,189,207,177,231,61,207,122,0,170,108,
+229,60,121,215,7,175,43,29,214,9,233,156,13,231,62,153,227,158,248,200,133,173,166,92,254,250,225,135,28,24,239,201,231,128,62,66,56,252,189,51,218,175,11,150,255,0,158,178,246,251,204,228,254,39,237,
+3,158,190,188,99,214,154,103,44,127,215,63,99,198,15,35,24,206,235,131,212,250,15,233,64,25,239,111,49,28,52,231,3,145,228,106,188,251,144,15,231,210,163,242,46,7,0,78,72,236,32,213,128,252,112,192,250,
+14,173,232,70,43,79,205,81,157,210,205,156,112,22,48,70,122,158,68,167,232,58,15,165,2,120,113,143,57,193,227,25,135,63,92,226,79,175,227,250,128,102,27,121,152,128,222,127,166,126,207,170,231,175,57,
+221,184,15,195,245,7,20,195,4,217,0,189,200,25,235,228,106,158,217,235,7,62,189,127,92,138,214,51,198,20,230,92,158,132,125,156,3,235,201,50,183,79,112,49,211,175,70,249,241,140,97,227,207,60,11,120,115,
+199,82,64,108,158,188,126,35,232,1,150,45,36,36,149,150,124,0,58,199,126,164,28,142,198,221,189,248,61,190,156,187,236,147,147,196,242,125,25,111,119,116,228,127,199,171,103,169,29,61,200,235,90,13,58,
+31,227,140,103,56,38,218,32,79,92,117,148,12,227,183,211,241,137,166,0,224,203,24,231,57,251,52,25,228,117,201,184,83,253,121,52,1,84,65,40,193,50,76,217,231,159,182,145,142,157,5,160,61,112,51,145,207,
+97,75,228,72,78,51,41,198,57,63,105,29,58,242,214,235,233,208,145,156,145,212,113,99,237,86,224,125,248,201,57,192,242,237,87,62,196,121,248,62,220,158,188,117,193,67,117,111,146,74,68,79,188,118,205,
+219,61,86,224,100,117,236,122,240,115,64,16,52,18,19,130,242,99,60,16,210,28,117,61,226,28,12,117,62,220,103,138,67,108,114,51,45,200,198,78,67,112,127,3,22,122,242,125,184,206,6,42,192,188,128,12,44,
+113,247,251,177,64,163,158,127,134,98,123,127,158,148,211,125,27,99,9,25,60,240,202,164,228,103,159,245,163,140,122,30,115,64,17,181,178,55,6,225,241,146,72,44,188,99,183,250,161,147,158,216,61,198,49,
+64,178,143,35,109,212,131,29,129,92,12,245,231,98,241,237,159,95,193,30,238,62,15,151,19,28,128,56,92,2,56,39,153,250,145,146,190,131,145,211,20,134,236,17,133,130,44,1,215,124,67,249,59,113,248,131,215,
+235,64,18,253,139,118,64,184,118,199,32,23,140,227,252,231,234,115,239,76,251,18,130,119,59,158,189,12,103,166,14,122,103,191,235,216,245,99,92,130,0,218,191,64,204,49,215,29,3,3,216,245,252,59,134,9,
+212,28,109,80,9,206,1,98,123,255,0,211,19,248,31,76,113,147,64,14,54,112,100,110,45,206,63,134,60,254,96,241,248,241,216,158,13,52,216,219,183,66,222,156,149,247,32,96,110,31,92,245,231,138,67,112,184,
+193,216,51,220,146,56,201,224,143,179,30,189,58,30,255,0,90,141,174,50,56,49,175,28,18,237,215,232,208,15,196,103,35,158,79,20,1,40,211,224,235,185,255,0,15,47,211,167,220,39,175,56,247,60,142,180,191,
+217,176,146,127,214,144,50,122,47,31,142,206,58,14,135,143,124,213,127,180,100,0,103,65,207,240,204,65,233,200,0,69,131,206,15,67,140,158,121,6,141,192,231,23,15,216,255,0,199,204,96,12,14,249,140,117,
+233,208,99,161,230,128,44,29,45,72,39,105,227,187,238,35,211,146,23,7,223,182,59,99,145,11,105,140,24,225,20,14,58,19,199,160,251,128,118,246,62,221,234,63,47,60,172,139,220,182,235,136,73,39,63,222,32,
+142,249,199,165,56,6,29,103,140,117,200,23,80,143,111,225,4,228,125,9,61,121,61,0,3,167,184,207,202,48,50,64,243,20,103,39,220,12,125,125,143,94,51,25,181,32,243,25,97,198,2,201,156,116,7,36,71,129,147,
+131,248,242,114,14,37,104,193,97,153,212,158,115,153,213,179,235,208,12,15,199,232,105,60,148,60,111,129,135,114,210,69,208,15,121,20,140,103,174,65,56,35,61,50,1,93,173,162,198,124,146,167,142,76,147,
+100,128,49,255,0,44,226,111,167,225,199,179,62,204,6,2,164,131,216,73,112,50,121,231,152,71,202,62,135,158,125,170,241,134,44,99,125,159,66,56,120,51,215,29,230,247,231,60,142,57,52,193,107,15,105,173,
+51,206,49,228,182,48,78,70,86,228,15,94,71,94,156,30,128,21,124,153,148,252,177,202,187,122,19,37,209,253,124,188,126,135,57,238,120,13,97,112,115,147,56,236,7,157,112,8,28,116,59,1,250,254,100,12,138,
+208,16,66,48,124,203,83,206,57,72,207,30,227,237,12,71,83,158,59,224,116,167,155,88,72,28,218,96,227,164,99,158,252,141,252,113,156,245,234,113,138,0,200,34,126,207,63,161,204,247,99,167,184,35,169,28,
+15,199,156,114,155,100,234,94,115,207,7,207,185,57,231,166,88,18,71,24,239,211,28,245,173,99,106,156,96,89,18,73,198,88,168,30,188,6,199,78,184,235,147,237,71,216,211,28,45,145,3,174,11,14,59,28,150,192,
+31,78,228,15,74,0,202,253,239,221,15,116,72,24,192,146,232,99,216,16,0,3,240,28,247,28,210,159,180,119,251,127,29,7,153,116,195,241,33,64,252,113,192,227,61,107,72,216,131,206,109,193,224,130,55,28,1,
+211,162,145,207,30,221,56,25,166,125,129,135,67,1,207,251,69,79,226,48,58,122,242,125,58,208,6,105,243,243,159,46,240,227,174,77,233,252,79,202,7,31,78,49,235,72,26,233,79,200,215,32,158,48,13,224,207,
+0,255,0,19,15,95,108,116,250,223,107,52,3,147,30,115,212,76,254,158,192,115,211,45,147,145,199,61,67,126,204,191,194,100,39,56,253,220,243,41,201,36,117,12,15,39,234,15,31,90,0,172,69,230,50,126,211,223,
+130,215,28,30,61,101,30,152,228,231,215,28,83,9,184,254,49,46,7,57,45,54,78,121,232,110,49,158,199,177,235,83,180,12,163,152,238,57,234,13,205,216,193,236,126,240,237,212,142,158,158,140,48,103,36,44,
+225,186,228,94,92,30,121,206,11,238,192,199,78,79,114,123,146,1,1,7,239,50,76,79,56,56,114,122,231,254,126,50,58,28,240,114,125,241,81,146,1,25,89,122,243,133,199,56,231,239,92,145,192,207,80,63,30,149,
+35,194,224,144,126,212,1,31,243,247,49,206,126,131,161,7,168,24,199,34,171,180,101,121,197,209,28,100,27,137,143,60,247,60,231,244,233,232,5,0,5,240,48,166,224,99,184,143,190,122,113,114,164,145,215,175,
+31,141,66,100,39,32,155,190,56,251,170,191,144,55,227,25,255,0,116,0,56,250,57,242,15,221,185,61,242,179,92,254,120,80,114,70,123,142,255,0,90,129,153,70,70,203,194,123,127,164,95,46,61,71,37,71,183,3,
+185,56,52,1,33,117,32,124,215,153,29,65,137,14,1,192,201,34,241,143,7,219,39,29,15,102,51,224,224,125,167,0,117,49,170,243,234,127,124,126,185,35,241,239,81,17,27,30,86,237,123,228,220,94,55,76,142,217,
+231,159,124,250,113,203,76,64,125,217,174,7,29,12,151,135,175,210,60,119,206,9,199,182,65,160,9,55,30,9,150,229,114,56,3,202,237,193,207,206,253,9,235,215,175,110,106,57,36,85,60,203,116,0,28,28,65,142,
+121,236,164,156,114,58,99,24,238,57,104,130,78,162,107,134,4,12,131,246,209,198,63,217,128,231,28,227,156,126,28,82,27,117,254,41,231,231,177,55,68,156,243,211,200,207,7,29,115,129,237,145,64,13,23,8,
+79,51,93,31,64,171,1,39,24,249,127,212,18,14,15,92,241,244,230,154,110,163,192,196,151,217,39,160,49,14,163,0,231,200,199,32,244,235,198,64,206,13,41,180,94,72,184,185,252,18,227,4,96,243,147,106,57,227,
+7,158,56,60,138,79,177,194,78,76,179,19,131,252,19,228,145,156,156,27,114,56,255,0,245,227,173,0,34,221,57,200,15,113,198,62,243,166,127,28,90,177,250,227,30,230,152,110,166,193,35,204,124,12,114,196,
+254,127,232,44,56,231,56,233,233,82,125,138,51,192,150,225,65,36,146,85,200,28,255,0,215,28,227,140,1,128,126,166,154,108,96,207,252,126,202,50,58,24,73,28,250,230,32,79,231,192,207,25,205,0,48,94,72,
+123,42,123,22,124,254,71,76,111,214,147,237,50,227,239,193,140,100,140,200,9,245,39,254,37,131,215,158,163,142,188,138,113,181,129,78,63,180,93,78,70,8,182,25,30,159,194,113,131,215,24,250,246,168,218,
+24,211,145,169,150,201,32,150,179,221,156,140,116,42,51,211,63,211,32,80,0,215,78,112,55,192,51,158,4,174,51,158,191,242,224,188,12,142,120,235,223,156,68,247,51,96,3,34,126,4,55,63,248,9,245,31,150,123,
+10,115,20,0,3,126,92,103,24,22,106,57,57,227,25,24,35,183,35,175,165,67,132,25,63,109,124,19,222,214,60,126,68,158,156,245,43,143,173,0,70,110,231,7,34,96,15,113,229,240,127,40,1,29,243,208,130,58,119,
+164,251,101,217,233,58,142,223,119,24,233,216,198,0,29,127,207,37,219,148,124,162,244,253,62,201,8,239,220,140,158,120,32,243,129,143,108,41,200,201,23,142,199,158,76,113,247,61,135,4,118,227,24,254,128,
+17,53,230,162,115,139,149,3,167,221,3,158,223,242,196,242,50,122,125,15,179,26,238,248,245,186,29,59,198,8,246,206,97,31,204,115,193,165,99,41,57,23,173,131,159,249,98,8,201,247,7,29,57,28,245,250,28,
+180,155,131,210,245,137,193,56,49,62,65,234,112,67,129,244,3,143,115,130,40,2,38,190,187,56,6,229,128,233,145,26,174,78,71,170,14,15,7,57,244,247,168,154,234,229,178,126,217,33,24,251,128,67,131,207,112,
+201,158,79,29,125,42,192,251,64,60,220,76,216,28,127,173,81,233,218,94,51,212,242,79,183,28,176,199,51,117,158,127,251,237,241,142,156,238,102,60,99,154,0,166,247,14,188,25,37,57,235,131,2,243,244,217,
+192,238,120,63,142,121,175,246,160,122,200,192,115,242,147,109,220,241,200,65,156,125,220,113,239,147,90,134,7,3,151,148,231,28,249,132,103,241,36,147,142,61,187,230,144,219,72,122,239,198,50,9,154,64,
+7,211,104,57,245,234,49,200,160,12,182,186,137,191,139,113,3,187,219,224,117,250,17,199,191,96,71,52,130,123,118,31,50,70,113,217,228,128,143,174,55,28,123,3,90,77,110,235,209,212,19,235,60,217,57,232,
+56,35,175,57,7,31,206,169,73,111,38,73,50,3,156,129,254,144,193,73,224,31,226,7,183,169,62,184,160,10,140,214,92,147,20,39,215,13,106,115,158,217,98,167,57,232,121,0,85,118,26,113,225,160,135,56,233,190,
+200,143,196,153,199,78,184,199,61,70,49,86,36,19,2,0,101,0,129,156,204,196,158,125,67,231,175,25,60,158,159,86,121,111,140,180,136,220,116,51,42,114,59,103,204,206,61,200,25,234,65,206,104,2,191,252,75,
+185,81,109,108,126,173,102,7,226,124,240,7,160,60,247,60,14,140,217,167,158,150,176,3,200,56,154,215,7,161,239,112,61,186,3,86,72,227,130,160,255,0,215,212,103,129,211,239,62,49,199,191,29,128,56,168,
+89,20,228,25,144,18,73,230,230,2,15,176,204,108,6,125,155,161,160,10,175,21,150,115,246,104,248,39,31,61,145,237,232,46,65,32,17,156,131,158,167,167,21,11,8,63,229,156,80,128,122,13,246,170,113,199,28,
+223,96,231,30,157,253,8,204,172,132,103,19,71,142,191,235,45,253,243,216,14,195,160,30,227,154,130,66,6,65,153,14,122,124,246,184,228,127,187,147,233,208,115,147,159,80,4,61,182,199,30,8,207,250,219,44,
+224,241,156,125,180,251,103,32,125,113,205,70,82,64,55,0,170,0,235,254,138,221,122,99,108,236,79,212,2,58,250,26,97,65,255,0,63,35,212,5,48,96,28,255,0,184,70,113,244,231,235,81,144,217,31,190,145,187,
+48,6,219,56,30,167,203,228,96,145,140,96,113,206,77,0,60,180,196,124,179,145,236,169,109,142,253,127,120,123,159,192,99,142,245,25,123,145,210,226,81,207,36,249,0,113,244,115,233,239,236,70,5,72,160,40,
+225,229,30,255,0,184,32,19,207,69,92,14,189,73,4,28,103,24,20,237,160,145,155,139,156,159,225,43,1,28,247,228,142,115,198,49,143,161,160,10,172,215,39,36,93,184,39,61,81,79,29,122,146,64,233,201,7,143,
+64,79,53,218,75,194,78,111,220,115,156,249,72,71,79,94,135,234,61,123,244,171,238,10,227,109,196,195,176,255,0,80,164,122,253,217,179,223,156,245,199,60,245,174,230,66,9,23,119,67,159,239,67,130,62,134,
+66,127,31,229,216,2,145,107,206,250,150,62,177,32,31,95,245,47,215,182,7,255,0,88,83,115,142,117,8,152,30,78,65,235,212,0,69,185,4,19,140,228,103,241,171,138,210,17,129,115,113,158,185,222,163,244,206,
+57,246,61,56,206,121,165,15,56,56,251,101,226,158,120,5,118,254,121,61,199,174,120,28,240,13,0,84,204,192,141,215,176,103,62,145,158,58,255,0,29,174,113,156,12,19,215,30,180,140,228,100,27,203,97,142,
+14,109,67,156,231,145,148,181,227,156,99,0,246,198,42,225,105,143,91,187,199,250,228,142,249,193,231,216,99,218,153,185,192,193,158,232,227,221,129,233,193,61,58,103,158,61,122,115,64,20,140,152,56,55,
+150,192,156,117,182,101,24,227,156,24,19,57,206,121,39,175,65,73,144,64,38,238,197,177,207,205,110,70,61,120,91,102,234,58,131,207,211,53,123,205,29,238,174,151,0,116,113,144,7,166,88,147,223,160,231,
+216,10,107,77,206,6,161,56,224,117,117,233,143,82,252,103,215,131,159,126,40,3,60,176,200,30,126,152,59,31,244,105,58,114,71,38,223,175,185,60,125,79,42,36,35,33,38,176,235,243,31,38,101,92,251,102,6,
+0,227,183,39,142,51,87,76,204,191,118,254,70,250,206,156,244,235,134,56,245,199,94,184,246,112,158,94,15,158,205,216,145,51,49,235,158,129,73,227,173,0,83,18,183,252,246,211,185,233,152,174,135,215,36,
+90,129,145,244,207,78,113,140,183,204,57,229,244,243,215,12,34,189,99,198,56,24,129,73,247,198,58,125,43,72,79,39,95,48,0,120,203,44,141,130,64,7,56,140,96,243,244,62,189,130,153,100,193,34,104,200,61,
+127,119,48,250,119,81,199,78,62,185,227,144,12,225,48,81,204,150,120,207,107,75,195,129,199,247,215,174,123,103,30,226,129,117,30,64,243,45,155,217,109,111,84,156,103,25,216,140,121,200,35,183,173,104,
+9,152,115,230,219,100,30,75,25,80,254,100,245,252,49,252,170,79,180,62,78,38,181,39,169,30,100,152,199,177,12,167,191,76,227,211,214,128,51,12,200,71,202,209,147,158,64,183,212,70,63,242,1,231,159,110,
+189,198,65,111,152,228,253,229,199,167,145,169,247,233,255,0,44,73,238,121,231,175,32,230,182,5,196,227,37,102,182,57,207,2,89,79,233,230,30,63,2,79,74,95,180,92,142,119,192,120,236,102,63,206,78,195,
+167,225,199,92,0,100,23,99,200,25,198,57,88,117,65,215,211,16,160,239,232,120,207,4,129,78,12,224,229,98,108,245,27,163,212,136,198,65,232,97,45,235,223,7,158,156,231,88,93,72,9,200,132,144,9,200,50,169,
+193,235,198,230,35,31,160,244,25,165,23,78,79,250,168,72,198,57,19,158,188,19,242,149,35,128,122,241,245,233,64,25,97,166,25,204,75,142,58,219,95,54,7,124,102,49,142,58,117,193,244,237,50,187,103,2,54,
+7,218,11,165,207,30,241,156,123,245,227,211,35,26,62,118,79,1,16,119,1,103,246,245,147,25,252,241,142,58,210,121,132,241,190,49,200,193,243,118,142,115,234,65,253,79,211,52,1,85,90,76,242,178,140,127,
+211,9,113,158,113,130,98,25,237,158,221,42,82,147,48,24,89,58,242,76,44,7,227,251,189,223,204,117,239,83,121,142,6,56,97,193,255,0,94,163,25,60,96,22,35,39,233,238,59,138,67,51,175,0,17,255,0,109,151,
+39,219,142,255,0,153,231,184,197,0,11,107,112,227,59,100,3,182,35,126,71,169,6,17,215,142,156,99,21,34,216,221,227,25,147,24,3,152,64,224,251,236,207,57,227,56,39,191,36,154,111,157,47,77,132,15,121,24,
+158,221,213,79,95,78,42,100,154,94,6,95,24,237,35,140,114,123,109,3,39,185,62,199,29,13,0,2,198,92,140,239,206,14,48,135,35,56,238,23,175,183,35,242,167,253,154,117,224,121,160,119,198,70,71,211,56,252,
+112,14,71,124,154,112,150,80,15,239,14,57,227,206,199,230,57,63,167,127,81,128,171,52,188,109,120,250,14,26,89,24,247,234,14,14,71,224,14,59,208,0,45,228,7,231,121,215,35,35,18,21,32,28,131,252,105,128,
+122,100,231,28,226,165,88,48,9,51,94,156,242,10,204,199,0,245,4,7,126,123,254,56,193,164,19,207,142,101,182,227,168,86,27,186,125,79,31,128,207,226,41,69,228,224,243,45,176,29,112,196,147,249,42,115,131,
+244,239,207,67,64,15,251,59,16,71,155,126,56,228,52,164,143,92,2,84,30,163,219,160,224,30,168,44,240,120,55,129,185,193,13,33,198,7,66,84,117,4,245,36,140,156,116,224,57,111,38,60,253,162,216,251,126,
+251,24,247,34,49,131,219,167,244,204,162,242,67,214,123,62,57,198,110,51,223,158,35,56,62,167,245,56,205,0,65,246,86,200,220,247,3,161,195,52,252,142,163,63,186,198,113,215,3,158,184,192,165,104,8,0,135,
+153,113,144,1,105,242,127,17,24,245,60,159,175,122,182,183,110,121,51,89,159,246,74,220,183,24,7,180,28,254,7,215,6,167,23,39,128,100,180,32,255,0,8,142,224,116,198,57,104,20,126,184,61,70,104,3,47,59,
+113,153,101,239,213,238,143,94,189,142,62,191,158,105,203,44,128,229,37,115,129,144,54,220,103,61,122,144,9,239,156,243,215,174,50,117,13,211,131,242,253,148,231,177,46,57,238,0,242,200,239,234,7,67,129,
+64,185,151,4,133,183,56,198,72,46,71,79,250,225,212,227,166,225,250,230,128,51,67,200,120,50,28,243,247,188,238,122,145,198,215,31,144,4,140,247,165,15,34,2,3,193,159,246,150,110,61,58,65,142,254,248,
+250,10,211,91,153,207,240,219,0,59,109,28,99,185,204,61,59,116,199,225,75,231,79,193,242,224,110,79,160,35,223,30,64,28,115,211,130,7,6,128,50,252,233,112,62,107,17,158,135,202,115,206,70,119,19,0,30,
+190,189,240,7,57,118,249,79,222,151,79,25,57,229,92,17,207,31,117,61,125,15,81,218,180,196,179,49,4,164,103,156,112,200,58,228,255,0,20,60,30,78,15,127,204,210,137,165,31,122,5,198,63,191,31,94,120,226,
+12,15,175,63,214,128,41,44,210,99,2,107,76,113,140,121,152,250,101,190,164,115,159,214,156,38,112,71,239,173,20,142,251,176,127,241,229,227,241,231,220,85,227,33,56,196,68,31,85,42,125,248,43,110,61,241,
+158,185,227,60,212,66,103,200,196,114,113,158,135,28,231,159,249,98,58,126,184,192,227,154,0,96,185,108,255,0,199,228,7,175,1,208,109,24,200,234,153,201,61,123,126,84,225,59,118,185,182,30,133,167,135,
+167,184,242,78,15,7,142,184,224,117,200,156,203,47,252,241,148,227,24,44,224,231,167,253,50,29,176,115,223,142,41,190,108,249,192,143,111,78,8,147,35,175,79,244,102,4,116,200,29,184,250,128,49,100,126,
+191,110,182,83,237,115,16,199,61,177,108,115,142,57,39,240,56,201,151,204,56,31,241,51,181,92,114,115,114,131,242,196,0,245,35,156,117,227,234,211,113,34,140,148,99,129,217,37,63,144,22,67,182,120,45,
+140,211,150,227,57,253,220,185,199,240,197,63,230,49,98,112,121,245,192,24,237,205,0,74,178,99,25,214,162,193,237,246,128,113,219,254,120,12,122,231,249,140,83,188,200,255,0,232,46,6,58,109,185,0,112,
+50,72,253,214,123,231,216,99,235,80,153,137,251,201,112,50,122,249,50,146,70,115,128,126,194,57,227,3,31,143,76,211,150,64,113,132,185,35,222,222,98,125,70,49,102,58,12,231,60,145,193,245,160,11,11,60,
+24,227,82,144,231,183,218,65,231,183,5,84,28,241,200,246,235,69,66,24,156,241,54,49,143,248,243,184,62,167,35,48,47,108,228,118,252,49,69,0,115,169,109,42,255,0,203,107,28,115,198,99,236,122,15,244,108,
+243,215,169,206,51,83,44,55,3,253,92,150,140,61,0,3,24,28,114,182,185,57,200,35,61,1,228,116,198,68,100,31,249,117,82,56,224,136,135,110,216,143,183,124,123,143,90,180,133,49,204,1,125,138,36,159,55,176,
+17,231,255,0,173,143,90,0,212,69,191,233,186,215,182,15,155,180,128,58,128,77,176,192,198,115,145,223,175,165,164,23,160,231,22,141,143,91,181,231,234,4,3,60,130,112,63,165,100,46,222,8,0,115,206,219,
+101,32,115,199,47,31,3,175,255,0,94,172,71,41,28,109,144,244,63,234,80,31,108,97,71,92,125,61,168,3,101,26,236,16,76,22,103,25,233,112,135,62,217,22,252,247,25,206,122,103,165,88,86,185,60,155,123,78,
+135,3,205,4,243,244,183,250,14,51,234,58,86,56,102,57,34,55,39,145,202,39,126,192,22,29,7,208,114,126,130,194,135,3,229,128,231,60,112,131,61,15,64,248,245,7,161,61,243,197,0,106,171,93,140,109,181,181,
+57,244,184,28,113,215,254,61,15,211,183,111,165,76,179,94,142,5,148,7,176,197,204,99,174,112,48,109,71,231,215,166,121,198,115,227,243,79,252,176,67,199,57,39,61,177,202,130,63,206,112,106,208,45,208,
+196,23,156,19,231,21,193,224,253,211,25,0,142,0,25,237,197,0,90,19,223,128,65,179,183,193,245,189,140,16,15,251,177,47,108,156,241,235,145,198,101,23,23,132,0,109,34,29,126,237,236,68,228,158,120,227,
+39,56,25,237,220,114,105,145,224,143,153,80,123,253,165,71,92,255,0,211,177,35,243,224,17,147,208,155,43,21,184,25,50,70,56,232,110,64,63,94,32,207,244,227,156,245,160,4,141,239,57,45,8,81,199,252,189,
+196,58,119,33,79,124,1,216,103,146,42,202,188,195,0,198,7,191,218,163,57,25,24,193,4,231,35,29,254,167,52,192,150,128,127,174,66,51,208,220,47,29,58,31,44,19,239,199,167,32,116,122,11,113,209,163,60,224,
+226,230,16,49,245,54,236,223,92,19,64,22,17,229,63,192,184,29,73,157,73,224,243,223,159,233,234,56,169,212,146,7,203,142,79,34,237,20,122,115,245,28,119,192,56,207,122,137,82,217,176,119,32,244,43,116,
+190,131,191,216,200,232,121,199,57,245,206,76,226,43,46,239,22,227,223,204,87,63,173,144,60,140,243,207,168,60,208,3,213,91,185,32,96,156,11,213,25,247,231,175,174,65,60,14,153,6,164,84,35,169,108,30,
+133,175,129,247,232,184,57,231,24,56,3,142,157,209,86,205,71,250,213,227,31,196,185,233,142,134,219,7,223,61,63,157,132,22,56,192,149,1,198,73,221,17,57,232,115,155,78,135,0,245,32,14,51,158,128,8,35,
+7,163,168,28,117,186,147,63,145,56,39,57,25,250,241,142,42,117,135,104,31,188,86,29,63,227,229,137,28,14,184,39,56,28,126,88,231,138,64,150,153,207,218,163,24,199,223,104,9,231,215,253,25,113,253,61,6,
+42,101,242,1,24,186,132,241,212,121,67,60,96,255,0,2,140,118,206,121,244,237,64,10,34,67,214,68,35,208,207,183,168,245,42,199,161,35,175,181,89,85,140,40,201,136,158,224,221,28,99,61,254,76,30,248,0,131,
+212,28,224,83,84,68,58,72,167,182,85,96,111,112,64,221,156,115,215,140,103,147,82,42,195,187,45,51,103,140,31,42,219,0,100,255,0,180,64,61,251,115,201,4,115,64,10,169,25,237,24,250,221,70,59,245,25,183,
+193,246,25,227,191,180,171,18,14,118,194,123,131,246,216,243,235,208,68,58,247,30,163,185,38,167,142,59,108,2,103,113,219,62,84,0,96,250,21,32,156,142,220,143,166,106,216,142,212,17,137,156,129,142,177,
+68,71,191,89,6,15,60,227,56,233,129,220,2,158,213,192,1,19,30,243,35,140,30,248,17,15,79,211,138,153,76,67,57,0,113,211,247,95,78,72,80,122,247,198,123,14,249,188,177,68,115,182,66,59,113,12,24,252,127,
+123,206,56,236,127,198,100,133,15,6,119,0,122,67,22,121,247,4,142,223,129,29,58,228,3,61,101,139,238,134,143,142,228,167,28,19,208,133,227,215,220,247,200,167,249,171,142,36,139,140,224,151,128,116,206,
+120,98,9,30,216,254,166,180,197,188,120,25,185,185,245,249,98,136,12,115,215,230,92,116,239,248,83,252,171,117,235,53,222,65,200,38,56,186,115,211,19,116,233,211,29,58,122,0,101,44,167,129,148,56,7,7,
+124,57,198,63,222,0,100,30,50,115,252,234,85,154,85,198,223,44,142,217,146,44,12,129,215,231,198,51,207,6,181,4,54,228,115,53,215,126,74,70,121,235,208,57,35,156,228,115,140,244,239,65,138,217,120,89,
+238,135,186,192,191,207,99,31,169,193,228,119,238,1,155,246,171,162,112,4,68,243,193,104,59,228,231,253,103,175,242,239,128,12,130,230,247,63,118,49,207,95,50,12,142,227,141,235,215,211,36,158,221,205,
+94,6,44,113,52,228,143,88,212,123,231,136,63,14,8,35,161,35,187,139,0,56,150,78,189,209,123,231,61,99,29,186,3,233,244,160,10,95,104,187,24,203,32,3,24,195,70,122,250,129,47,82,126,158,231,4,138,119,155,
+120,199,130,48,112,113,186,16,56,39,169,243,57,245,57,206,49,211,158,44,137,20,100,52,211,5,0,19,242,174,57,233,142,71,83,219,20,25,35,28,137,156,19,216,42,254,60,228,240,125,250,103,167,114,1,14,237,
+67,213,122,28,238,146,1,223,182,28,231,242,207,110,130,151,204,212,56,5,99,60,231,62,108,4,15,82,62,112,115,245,3,219,218,95,58,33,199,154,238,58,96,132,39,215,147,145,239,219,223,158,237,55,16,140,229,
+148,96,28,230,37,238,79,28,242,115,156,224,158,254,180,0,162,91,190,164,115,200,225,237,242,70,122,1,184,156,30,158,189,254,179,44,215,132,1,181,199,28,97,225,207,227,130,58,118,200,199,231,205,95,180,
+68,199,27,199,28,255,0,199,186,159,108,240,49,201,201,30,255,0,65,79,18,67,212,228,243,255,0,60,23,35,29,122,198,113,252,129,233,222,128,45,25,239,142,84,150,3,253,232,51,200,28,228,140,241,211,140,244,
+199,173,52,11,151,63,51,74,79,125,175,15,24,224,14,83,24,207,83,219,235,154,173,231,196,78,21,156,15,83,18,5,239,199,48,245,235,206,57,239,140,12,174,236,224,140,227,211,201,131,57,199,98,16,103,158,185,
+25,253,5,0,92,88,167,7,172,223,95,180,66,164,113,212,130,153,30,196,28,122,245,165,242,36,36,134,19,158,114,49,117,110,15,166,78,98,31,207,25,224,250,213,38,4,142,85,179,159,249,225,22,123,250,68,120,
+237,237,239,158,19,7,3,17,177,245,253,202,19,245,255,0,143,124,118,250,123,118,160,11,254,83,142,134,225,71,253,127,219,15,167,43,24,231,142,191,204,128,64,55,41,198,249,179,199,252,196,34,4,113,198,48,
+135,57,247,239,250,81,219,48,193,17,77,128,122,136,144,231,60,112,77,175,94,253,121,244,20,255,0,222,140,0,151,61,206,22,20,63,94,150,100,241,128,120,235,219,52,1,108,172,204,113,190,228,244,60,234,17,
+125,115,200,29,207,183,215,138,67,28,249,31,61,193,39,214,250,31,82,122,100,103,142,59,231,25,198,50,5,50,210,156,130,151,68,147,208,198,1,207,227,109,156,103,147,193,237,212,117,112,141,201,195,91,222,
+28,14,56,3,60,100,156,125,143,24,244,201,207,166,123,0,79,228,204,71,63,104,0,231,254,94,225,228,103,156,252,199,174,121,224,243,220,227,152,140,79,157,167,237,39,56,36,173,228,11,156,227,176,76,114,58,
+96,131,234,15,90,140,176,81,131,105,117,156,145,202,161,61,79,95,244,112,125,186,174,123,17,216,3,113,207,216,175,25,79,83,177,64,250,12,199,131,208,2,112,122,117,7,160,3,196,78,50,66,221,241,200,38,238,
+51,215,31,221,85,60,241,208,156,31,90,110,110,64,59,90,228,2,79,252,180,146,76,227,142,217,235,215,249,231,154,82,35,76,110,176,188,235,207,56,228,117,56,85,3,28,103,191,225,70,248,7,63,100,186,83,200,
+31,41,99,193,199,39,120,247,234,57,233,198,78,0,25,230,221,40,192,107,145,255,0,0,148,143,192,0,0,198,123,122,116,52,27,139,240,50,169,112,220,103,136,110,15,235,183,140,142,120,7,24,57,171,2,104,15,63,
+103,188,24,24,249,98,99,248,2,100,7,31,227,199,74,60,203,124,228,199,119,142,62,253,191,175,78,68,192,159,78,40,2,151,218,181,35,255,0,44,38,111,95,244,121,216,129,215,248,144,244,250,247,207,209,191,
+105,190,39,152,36,200,28,102,23,7,160,61,60,163,223,191,110,61,234,225,146,211,166,201,114,78,114,96,35,233,214,127,111,78,15,122,104,123,64,79,223,24,31,243,204,15,83,198,36,39,25,247,60,114,40,2,153,
+186,191,60,8,165,31,72,156,17,207,167,217,201,233,245,28,117,25,20,121,250,139,112,171,50,129,235,20,152,35,191,6,1,156,243,198,7,110,245,120,77,108,58,51,12,14,165,0,35,177,224,72,56,3,28,144,121,63,
+133,33,158,34,72,14,192,1,128,66,168,231,159,246,142,113,208,243,193,237,232,1,64,201,168,30,166,97,199,79,34,99,223,253,148,0,123,119,235,131,146,65,95,54,251,187,92,12,115,129,109,54,61,199,42,120,252,
+189,121,61,45,121,195,4,153,66,255,0,188,136,79,28,96,146,56,239,248,19,248,176,220,174,112,179,68,126,145,198,127,28,20,39,25,235,143,168,237,64,21,204,151,184,206,249,142,120,230,22,95,174,75,71,140,
+227,160,7,165,68,198,232,240,4,164,244,230,53,233,208,96,133,235,199,78,163,142,115,86,76,185,228,76,157,59,36,64,103,25,56,204,7,156,231,140,241,212,115,205,70,238,237,201,104,152,227,130,22,31,83,158,
+176,156,227,190,58,100,103,61,40,2,12,93,17,247,37,231,175,9,159,92,124,203,252,129,31,149,40,142,110,75,44,252,158,131,201,218,59,30,145,18,71,230,61,56,28,161,119,31,195,19,28,127,211,53,253,69,187,
+127,143,61,105,132,203,201,17,197,211,180,168,15,115,158,109,135,110,127,46,115,197,0,15,111,41,232,151,4,113,194,136,207,227,254,164,158,63,14,252,246,166,11,57,24,242,151,28,30,134,62,131,142,0,17,143,
+196,241,223,167,101,34,67,156,193,31,28,159,153,72,30,135,253,72,24,60,140,246,168,155,120,255,0,150,17,99,159,238,146,71,211,103,124,116,231,3,60,131,197,0,74,108,216,12,180,119,0,3,255,0,60,200,206,
+51,220,41,61,113,199,57,7,7,178,212,66,212,110,36,65,116,221,121,41,38,61,192,221,11,1,201,252,122,244,224,71,177,136,201,183,136,122,98,34,79,175,100,92,254,71,142,185,166,152,243,157,201,31,28,149,17,
+48,35,0,117,249,123,116,224,15,202,128,44,125,151,45,255,0,30,242,19,215,231,4,17,142,185,196,43,236,120,28,231,60,83,13,137,63,242,235,33,5,178,24,22,99,249,178,100,115,220,30,123,140,213,127,36,19,254,
+172,142,56,2,11,134,24,29,58,16,49,158,78,23,4,243,223,33,202,136,7,220,94,59,125,150,224,158,221,203,130,8,235,212,251,117,160,9,69,131,143,187,107,113,215,166,211,129,211,32,113,199,99,147,223,61,133,
+56,216,178,129,152,39,94,160,141,153,245,227,36,131,223,35,169,30,163,28,197,136,191,138,51,184,103,147,4,227,232,57,207,78,224,30,252,244,20,5,182,56,27,16,158,73,204,115,129,250,241,211,156,100,1,216,
+208,3,197,174,1,2,9,206,120,228,63,94,50,120,126,188,103,24,20,223,177,18,79,238,37,1,135,247,102,35,215,36,171,30,158,164,103,223,169,161,133,152,192,37,84,158,155,109,221,186,246,7,63,78,115,219,158,
+217,64,176,143,186,87,212,226,7,92,140,243,157,195,167,92,245,228,227,38,128,29,246,50,191,242,197,189,243,28,167,175,115,188,146,9,232,78,7,34,162,107,86,36,238,133,72,247,19,142,73,39,178,17,215,174,
+9,7,0,142,148,242,35,36,29,168,220,112,60,178,72,250,2,163,242,218,70,63,70,238,69,232,85,65,236,86,47,208,55,111,192,254,61,40,1,134,220,174,127,115,23,174,78,253,222,223,122,60,228,140,117,246,234,114,
+106,7,137,137,225,19,62,138,15,95,161,137,129,199,190,113,208,158,120,181,230,70,121,253,211,14,188,199,3,116,61,73,198,59,103,29,200,7,158,5,47,155,24,83,197,191,227,21,167,234,74,183,61,243,158,156,
+119,160,12,255,0,46,97,209,99,199,114,201,8,207,191,250,140,246,199,28,140,18,78,14,1,243,224,135,91,115,200,238,131,211,156,125,145,191,50,42,233,146,38,7,41,24,231,63,118,199,143,205,0,199,61,242,122,
+244,166,230,37,206,22,50,114,57,242,236,73,224,127,178,233,199,110,112,113,249,80,5,83,140,18,162,12,142,184,120,155,39,56,255,0,159,28,243,199,76,240,50,121,206,80,164,204,219,64,182,30,192,68,113,142,
+249,251,9,236,123,129,140,142,121,25,178,93,78,54,44,96,28,130,124,187,32,51,220,140,187,115,248,227,215,28,18,158,99,142,23,203,227,56,196,118,61,250,131,135,235,245,61,197,0,87,16,202,167,45,246,92,
+116,28,91,160,3,57,60,181,144,28,125,122,126,128,7,56,38,211,142,192,217,147,200,60,3,246,108,228,123,159,78,249,196,226,82,58,162,19,147,210,11,86,35,142,251,92,112,48,121,25,235,244,164,51,131,212,40,
+250,65,16,32,227,208,75,159,81,211,4,208,4,96,115,156,219,103,63,221,181,110,158,132,218,3,159,199,210,151,51,100,127,199,175,94,15,151,105,140,115,253,216,149,176,63,161,239,140,187,207,24,56,126,199,
+129,10,17,249,43,246,235,219,24,231,210,154,102,155,57,14,160,31,88,164,95,126,10,74,78,126,131,7,158,244,1,32,89,179,156,217,18,71,25,242,1,24,232,112,160,49,227,156,112,121,61,250,187,100,131,150,251,
+15,29,14,245,31,94,142,184,199,108,116,227,144,106,3,115,116,0,34,81,129,143,225,156,113,238,55,5,199,110,167,182,41,4,247,127,243,241,23,110,162,124,243,198,64,243,56,207,126,59,100,140,228,144,9,246,
+158,203,106,79,112,28,159,203,247,189,61,128,7,208,211,74,204,51,133,179,227,28,25,220,100,103,156,17,49,29,199,28,113,199,78,144,180,247,224,227,237,49,1,140,240,110,48,115,159,118,206,59,100,241,219,
+154,67,45,255,0,252,252,69,142,153,217,49,4,245,245,231,175,175,124,140,230,128,37,242,217,186,197,100,61,197,211,12,227,24,224,75,223,174,14,57,252,48,198,73,7,252,177,181,62,133,110,219,255,0,30,31,
+105,36,126,31,95,74,140,203,126,114,13,204,67,161,63,185,185,31,145,82,7,211,145,154,65,61,234,231,23,81,54,15,64,183,32,224,117,234,71,60,156,115,192,206,113,216,2,109,147,129,254,162,18,167,176,186,
+96,6,71,96,103,198,57,60,247,61,56,205,41,73,192,226,218,33,159,75,150,24,255,0,200,227,215,183,227,85,197,197,232,251,183,17,147,159,250,120,60,118,60,159,175,111,92,250,80,102,187,63,121,226,108,19,
+157,201,118,220,47,94,137,142,115,143,95,211,32,18,21,185,24,253,196,99,156,113,117,252,89,246,148,156,243,223,156,251,10,113,55,56,230,2,72,227,63,107,64,7,126,50,91,182,6,15,115,232,114,43,137,78,112,
+226,18,79,76,71,118,49,215,167,238,143,63,83,144,121,30,148,198,120,179,243,67,17,28,227,16,220,19,199,184,43,223,174,113,211,181,0,89,204,253,77,188,131,39,24,55,16,182,79,99,141,141,215,56,193,83,237,
+223,9,190,232,99,101,171,145,238,240,30,253,126,107,109,199,29,206,79,189,86,47,8,235,108,156,231,164,23,158,227,140,100,246,252,61,79,120,217,173,191,138,213,91,216,199,122,50,64,207,64,126,189,125,7,
+99,64,23,12,151,95,243,193,212,228,127,207,185,108,231,57,36,219,113,235,212,12,243,156,156,84,126,117,208,32,8,228,207,83,242,91,227,177,207,203,7,67,142,73,235,140,251,213,109,214,189,69,164,123,189,
+2,222,134,29,59,243,199,215,223,216,209,254,140,71,205,102,63,224,45,116,188,127,223,7,223,61,250,119,201,160,11,30,125,235,127,203,38,233,193,48,219,156,116,255,0,167,51,233,193,207,175,78,41,173,45,
+224,198,81,113,144,114,35,183,29,59,143,244,30,123,18,51,223,211,25,170,99,179,39,34,209,241,143,239,220,142,9,232,115,0,31,92,30,220,102,147,101,145,235,110,227,60,224,73,114,123,12,255,0,203,34,70,122,
+116,30,188,28,208,5,131,113,112,14,12,100,156,231,143,179,32,60,240,112,214,56,206,79,175,83,235,80,189,196,153,249,163,3,129,156,205,108,71,126,223,98,3,39,57,25,227,167,160,195,85,108,151,238,67,55,
+39,159,222,77,199,96,9,49,115,215,166,61,241,210,156,198,219,31,44,115,115,219,204,147,183,112,54,131,193,231,245,226,128,32,105,28,156,128,131,35,32,153,45,9,28,113,214,204,144,122,125,120,168,142,252,
+125,228,63,239,125,143,158,221,126,198,59,227,3,185,3,57,197,89,43,106,220,52,114,131,211,135,35,212,245,97,207,110,248,28,112,115,73,178,204,159,153,101,29,122,203,31,64,48,63,132,247,246,238,72,3,154,
+0,172,90,108,96,52,75,211,36,201,104,8,245,56,251,48,231,167,177,244,168,93,95,169,154,220,117,4,153,237,126,156,255,0,162,40,25,206,48,9,29,185,206,106,248,91,81,211,118,0,56,196,168,72,244,24,10,48,
+125,137,250,129,158,27,155,66,49,153,88,250,121,152,235,207,100,233,211,57,56,61,115,156,26,0,207,49,59,252,190,117,182,63,139,19,218,244,192,231,139,112,51,199,60,244,31,90,97,183,81,247,174,33,3,61,
+239,45,135,61,57,30,64,24,35,212,241,156,140,26,186,198,192,99,46,249,227,25,148,119,236,75,16,14,59,243,199,211,32,167,153,96,160,100,176,39,167,239,16,127,237,85,36,14,57,199,83,64,25,237,12,56,32,222,
+64,56,207,205,115,104,195,142,64,198,20,146,120,224,96,243,211,129,136,90,211,118,118,221,90,1,147,200,154,208,12,117,207,223,31,204,228,231,29,171,69,141,153,39,14,163,60,12,191,7,159,250,232,121,7,211,
+3,215,210,162,49,91,231,129,15,226,88,245,206,127,139,61,253,254,152,200,160,10,31,98,112,217,55,214,217,232,15,218,45,184,233,140,230,101,43,235,199,7,215,138,67,107,40,198,111,45,152,114,1,23,16,19,
+142,59,9,198,1,233,242,158,220,100,213,163,109,110,199,131,14,15,7,14,195,25,57,62,164,243,248,122,240,113,77,107,88,151,148,158,37,61,127,227,231,103,92,240,127,118,199,57,24,24,200,227,39,160,160,10,
+191,103,147,60,221,197,159,105,227,24,245,235,113,156,126,25,232,104,107,125,192,22,188,135,167,66,232,220,103,190,46,6,125,123,30,132,230,166,48,22,224,92,199,144,114,127,211,72,7,241,251,49,192,245,
+249,130,241,131,215,21,27,216,158,119,206,158,153,251,98,176,207,110,90,1,199,94,6,121,237,129,64,21,140,49,175,6,104,8,246,72,201,253,110,121,245,231,35,129,200,52,214,138,19,255,0,45,48,123,20,69,35,
+30,131,109,199,78,253,79,61,249,53,47,216,73,7,19,71,199,39,253,50,31,167,123,112,71,56,238,57,250,212,102,206,99,192,158,17,206,6,46,96,60,131,198,118,66,79,211,146,125,134,112,0,24,34,132,241,246,153,
+48,9,198,34,67,130,56,60,27,142,49,158,127,35,77,104,148,253,217,230,35,218,37,3,60,142,166,99,233,140,131,138,26,210,76,99,237,22,228,143,239,78,15,232,96,199,63,76,84,95,100,117,251,211,91,19,223,19,
+64,71,168,7,116,68,247,246,247,226,128,20,196,152,59,174,110,20,113,140,224,231,29,62,80,222,157,143,7,182,106,63,33,14,113,59,176,198,0,41,146,57,193,39,105,200,200,227,223,215,213,26,221,215,31,52,3,
+254,218,217,231,61,185,49,175,36,228,117,199,29,186,84,77,25,94,75,199,206,50,126,209,101,201,0,244,218,192,145,199,126,254,244,0,230,183,67,140,200,220,122,68,248,235,234,79,110,231,184,252,48,195,103,
+25,228,75,156,243,146,19,249,49,220,49,233,245,198,59,194,84,227,128,15,24,31,189,183,60,99,212,63,65,207,79,196,211,74,182,9,242,212,142,120,15,17,36,1,207,75,133,24,201,192,228,99,159,192,1,90,204,117,
+18,140,99,146,21,7,215,39,120,29,127,207,21,15,216,201,24,251,76,189,186,73,2,140,159,247,88,159,94,57,25,235,77,103,117,224,68,157,184,218,172,79,226,47,79,184,228,119,35,154,141,165,147,28,194,128,14,
+14,97,82,56,231,189,207,28,115,143,255,0,93,0,43,88,73,156,253,162,82,9,254,41,1,224,116,238,171,235,140,3,223,241,174,246,19,16,64,218,223,239,18,114,79,169,87,35,35,166,112,15,29,8,230,135,114,220,132,
+137,135,92,8,211,31,67,254,148,184,192,29,201,206,121,227,147,14,230,32,143,33,0,244,88,226,199,61,7,55,135,56,227,158,63,192,2,54,211,238,20,240,19,242,44,7,114,115,201,253,9,237,211,164,77,103,117,142,
+35,12,15,76,32,245,198,126,108,100,140,116,193,237,192,38,165,63,104,39,11,185,65,61,2,33,0,99,177,89,207,24,207,86,198,77,68,201,49,35,116,147,1,254,194,19,198,123,237,186,199,211,63,149,0,68,109,47,
+1,193,140,15,64,81,27,24,29,135,67,143,97,249,212,102,222,244,116,76,231,28,139,104,184,39,166,115,1,29,57,62,188,224,158,181,41,134,76,229,124,238,123,181,187,146,125,191,227,227,190,51,215,142,106,39,
+134,113,146,18,67,220,126,233,151,63,95,223,55,62,195,242,29,40,2,38,181,212,6,14,214,3,212,218,231,174,14,50,144,28,246,232,49,156,245,237,17,181,212,121,33,79,30,177,62,48,49,201,205,143,29,123,147,
+254,14,49,74,121,104,167,198,51,196,72,71,94,167,116,157,127,207,214,48,140,120,217,112,123,133,88,65,233,255,0,125,250,115,216,228,246,52,0,134,215,84,228,8,212,142,49,251,139,147,198,79,165,142,51,199,
+57,199,181,33,181,212,65,195,196,131,191,252,123,203,249,140,218,46,0,231,248,126,153,2,149,161,115,130,34,187,60,99,1,25,122,242,65,192,65,199,161,227,169,61,169,162,25,184,2,219,80,236,120,221,143,76,
+253,230,233,235,219,166,7,52,0,191,102,187,25,102,59,64,224,5,183,151,242,221,246,80,7,7,28,17,210,155,229,206,78,51,39,57,31,50,74,189,240,63,229,216,15,207,223,32,156,154,147,201,124,18,98,212,65,234,
+112,228,96,247,7,228,201,28,115,247,123,28,158,77,57,98,95,226,182,212,91,129,247,164,36,114,120,28,170,131,207,76,19,156,240,77,0,68,97,148,131,146,223,148,231,242,2,6,25,253,79,167,170,44,50,242,66,
+202,216,238,177,207,140,240,120,221,110,58,123,115,238,106,114,176,140,143,177,221,48,236,94,80,15,95,114,7,167,248,82,124,131,238,218,74,128,142,191,104,137,72,231,158,167,128,63,78,162,128,35,242,167,
+255,0,158,87,64,103,25,85,184,199,225,251,181,228,245,228,113,158,148,109,117,224,173,217,35,60,4,184,63,211,167,97,207,191,4,212,195,202,4,254,234,97,199,123,203,99,211,174,119,15,151,219,145,245,230,
+156,4,60,227,57,207,87,186,182,95,99,156,57,39,24,227,63,145,7,144,8,67,30,127,117,119,220,18,98,185,201,62,132,171,168,201,3,7,129,129,156,83,25,192,227,203,187,24,29,124,187,158,79,124,49,144,103,177,
+231,191,176,171,97,71,37,68,100,103,24,55,86,167,233,247,228,92,156,227,28,143,78,58,131,96,60,145,24,0,14,151,118,7,211,0,131,114,221,122,30,40,2,129,144,19,242,137,201,227,170,92,28,2,120,201,243,152,
+103,174,123,14,252,98,130,242,227,33,39,57,234,60,185,136,30,231,50,140,14,156,129,193,247,171,226,52,63,197,8,13,216,220,216,28,250,1,135,56,233,207,168,61,42,65,4,124,133,54,231,61,140,182,100,103,0,
+156,254,244,127,158,113,210,128,51,212,76,71,250,147,142,49,152,24,158,122,159,245,202,125,59,250,227,184,166,177,124,243,11,30,188,155,121,137,233,212,226,228,17,211,3,167,110,189,107,79,201,0,15,248,
+243,0,245,34,107,34,195,24,255,0,166,164,250,147,142,220,119,205,33,5,78,49,110,71,167,159,104,14,70,122,126,243,60,113,208,15,122,0,207,5,192,192,143,29,249,182,187,57,29,179,182,244,28,254,35,61,113,
+65,82,196,229,34,7,253,171,75,243,207,67,199,219,120,62,185,199,233,129,166,178,28,116,131,145,142,46,45,113,223,182,227,158,191,222,224,0,62,137,158,112,34,182,108,119,51,90,184,206,9,235,184,144,63,
+253,89,160,12,239,37,192,249,97,179,111,115,111,124,0,231,191,250,94,58,30,121,244,226,153,228,78,115,251,155,30,153,31,232,247,196,250,247,185,32,3,142,152,250,115,138,216,81,33,25,242,109,79,28,130,
+208,228,126,68,14,125,79,183,189,40,243,49,255,0,30,176,16,7,172,60,250,156,238,192,244,228,143,78,70,48,1,140,32,124,252,240,219,19,146,72,91,123,156,145,219,25,156,145,244,32,241,199,56,21,42,218,177,
+193,251,52,125,142,69,181,200,207,211,47,143,108,231,29,235,80,179,169,202,219,219,244,238,241,129,248,140,224,224,158,189,187,30,105,68,243,12,31,178,91,16,120,7,124,67,215,169,15,223,240,7,35,142,69,
+0,80,91,67,199,250,48,236,127,227,222,232,15,97,149,221,207,184,200,3,210,159,246,119,29,45,24,14,14,224,154,130,254,129,112,115,199,160,246,233,87,13,220,195,143,177,70,6,57,10,99,32,158,48,73,50,158,
+158,195,219,142,104,91,131,147,155,39,57,7,56,48,55,233,184,246,29,123,119,227,168,5,85,130,94,158,68,195,233,21,217,57,224,224,150,140,227,232,56,254,178,8,102,24,249,37,231,254,153,92,129,201,199,57,
+136,147,143,124,117,224,30,247,86,118,110,5,132,131,166,8,16,100,126,69,179,211,140,247,199,165,59,204,184,63,118,11,145,158,152,91,60,224,227,36,231,145,201,224,18,122,30,7,74,0,169,229,206,172,73,12,
+163,167,6,228,31,199,16,48,232,56,206,122,231,0,212,158,105,78,11,202,156,116,221,113,130,15,115,254,141,158,122,117,61,63,57,132,147,140,134,183,186,24,57,31,36,7,223,177,192,233,156,14,56,227,189,41,
+154,78,51,5,219,31,247,45,199,29,186,147,219,167,166,120,239,64,13,73,147,157,215,19,156,241,133,243,28,245,233,151,128,99,4,250,122,116,169,86,120,241,196,215,89,200,56,43,187,184,198,15,149,129,159,
+76,30,253,57,166,137,29,134,68,23,128,100,140,102,213,78,51,254,210,131,142,255,0,152,21,32,145,192,31,37,246,127,222,180,199,254,60,6,59,123,117,233,64,14,23,81,143,189,117,50,251,121,96,145,143,98,163,
+57,245,199,30,135,20,166,230,50,115,246,169,135,79,189,4,92,147,147,206,113,145,211,242,193,233,138,80,206,112,11,106,9,248,218,243,199,178,253,57,62,189,49,209,217,96,48,39,212,0,238,11,90,142,115,206,
+120,199,60,142,131,169,52,1,15,218,162,255,0,159,215,92,2,48,214,214,239,147,239,243,122,250,142,163,160,169,5,220,36,147,246,224,120,232,214,150,227,25,233,146,139,144,51,232,106,81,44,139,247,110,47,
+64,228,224,155,115,199,126,120,200,62,199,140,243,236,134,105,143,91,155,195,215,163,64,1,235,130,15,152,188,158,120,227,29,49,154,0,79,181,194,115,254,147,25,30,190,66,17,244,43,229,156,250,227,243,193,
+163,237,54,219,177,246,136,207,113,155,56,206,115,207,56,139,185,244,35,233,208,83,148,177,251,198,244,158,48,119,33,207,224,183,42,59,231,208,241,197,75,216,241,121,199,96,128,255,0,227,205,117,216,158,
+112,122,113,214,128,35,243,109,219,140,163,142,132,11,37,0,131,235,130,48,15,166,210,79,29,241,147,117,177,7,247,81,224,231,147,106,23,25,224,28,130,113,142,131,168,227,56,171,0,203,193,31,108,219,254,
+226,12,247,57,38,240,19,128,113,215,232,79,66,121,133,114,55,222,175,240,128,99,83,158,189,191,180,16,28,119,251,221,243,235,64,20,217,237,215,32,199,30,15,28,219,56,28,240,59,158,252,30,59,99,218,151,
+125,177,200,17,166,114,48,22,222,229,135,24,206,2,169,250,242,7,231,210,232,96,220,25,110,207,60,31,37,72,193,199,101,212,242,127,46,123,14,212,224,33,24,12,47,27,145,144,45,228,7,7,191,26,152,207,184,
+3,175,183,20,1,67,54,96,100,196,57,236,109,239,115,201,237,136,136,250,17,244,199,90,95,244,102,224,68,164,31,72,175,151,0,241,143,245,88,237,219,25,207,56,173,31,244,97,159,221,222,242,127,231,148,167,
+242,206,164,216,246,244,61,143,20,224,109,134,63,119,119,129,255,0,76,166,7,167,111,244,211,143,215,235,154,0,160,22,216,0,66,30,122,129,246,245,247,224,4,24,7,131,158,254,131,38,148,27,96,62,235,14,58,
+159,181,182,78,72,39,38,61,217,233,223,128,113,211,53,116,155,99,144,22,245,65,231,230,130,124,126,7,237,153,61,15,183,78,120,169,20,66,6,68,151,0,243,144,96,144,159,175,205,120,65,199,99,249,208,6,118,
+109,207,5,228,3,168,59,174,148,14,253,227,43,129,199,24,237,207,74,118,219,96,70,37,153,123,103,207,148,47,228,109,155,3,232,1,31,202,227,53,176,206,90,115,193,201,48,16,58,12,115,246,163,211,159,229,
+200,164,18,91,183,83,39,225,19,1,207,3,165,200,250,147,131,219,235,64,21,115,111,143,150,105,88,244,1,102,147,169,206,64,31,101,228,140,117,200,29,120,245,42,216,48,28,97,201,224,112,234,253,59,255,0,
+203,98,62,131,36,115,237,69,0,114,105,105,51,114,98,188,0,113,141,147,47,83,215,253,94,115,147,211,7,233,138,178,150,151,3,56,91,165,61,139,51,0,6,125,60,176,125,51,128,15,35,235,89,75,127,110,121,221,
+23,168,57,39,29,50,0,108,240,123,140,30,184,232,113,86,86,238,212,127,28,71,161,206,213,35,169,224,115,199,81,206,14,120,233,220,3,69,109,102,57,201,184,246,199,152,122,247,63,47,62,152,198,71,108,146,
+48,162,209,199,123,145,211,172,115,242,125,64,17,142,195,191,167,90,174,183,144,112,21,226,3,182,127,30,161,100,95,92,240,9,247,235,82,11,148,36,16,98,35,142,145,72,71,60,244,89,185,35,7,167,126,125,40,
+2,220,86,174,49,242,220,30,58,136,239,7,110,78,2,129,215,156,125,61,205,93,72,93,78,4,119,44,49,147,149,186,228,241,219,7,0,245,235,130,15,64,107,56,73,156,115,7,95,249,231,34,159,108,255,0,164,2,56,198,
+51,146,125,58,102,194,8,207,204,124,134,60,224,3,56,250,142,46,115,223,39,183,127,114,1,162,182,210,55,252,176,148,3,232,46,185,231,166,22,60,28,96,140,30,71,124,102,174,37,172,251,72,30,122,142,167,43,
+116,123,103,31,234,24,12,115,156,250,240,51,89,106,177,156,96,38,71,77,178,220,140,246,228,27,131,145,142,57,7,216,246,171,10,24,14,16,231,167,250,249,65,207,166,13,193,244,199,221,235,239,64,23,197,180,
+255,0,243,222,117,3,60,180,51,227,62,153,54,135,62,195,61,113,206,14,13,148,134,97,207,218,164,192,206,6,217,49,199,177,183,246,233,142,166,179,21,100,3,253,83,183,79,249,121,110,157,123,207,215,177,234,
+127,50,42,96,174,79,48,191,61,63,122,206,115,235,159,52,245,252,58,254,20,1,174,130,78,1,184,147,60,99,17,246,35,60,131,108,59,254,67,30,153,171,40,93,71,50,76,121,237,16,193,61,250,219,15,97,232,79,65,
+88,155,39,200,219,4,199,158,8,150,95,195,27,88,243,199,7,244,21,97,69,217,198,232,102,3,29,60,201,24,240,122,225,161,60,224,1,208,255,0,42,0,220,73,37,3,239,76,64,231,230,134,46,71,227,14,70,57,3,177,
+231,25,3,137,196,141,129,128,123,142,99,139,156,113,211,201,199,249,62,156,99,40,184,24,6,25,122,228,150,115,144,122,227,152,115,207,78,199,35,130,8,56,153,101,156,28,8,28,246,32,59,183,227,242,192,71,
+215,169,233,64,27,42,91,187,170,228,140,254,225,9,231,167,31,103,252,240,121,254,115,169,10,56,159,105,193,235,108,132,125,57,132,14,126,132,243,206,49,89,73,44,249,207,144,126,167,204,39,156,242,115,
+104,57,233,128,126,156,213,129,44,152,225,20,100,131,147,25,3,159,251,117,60,250,131,239,158,69,0,94,222,164,97,164,71,207,253,58,194,9,207,108,237,24,247,31,145,60,26,177,25,132,96,136,161,98,120,201,
+134,33,142,191,119,234,0,60,254,61,69,103,36,220,225,140,99,60,224,195,35,1,130,71,252,241,193,233,215,29,253,205,88,89,99,39,147,0,255,0,122,200,176,231,60,231,201,31,94,252,30,153,197,0,94,18,197,208,
+67,15,36,245,137,49,235,198,215,3,215,128,127,50,41,224,219,183,38,222,2,72,199,40,23,216,18,5,208,25,252,126,181,85,100,143,128,102,179,3,183,252,75,137,238,127,216,95,200,156,116,224,244,18,172,246,
+224,141,210,217,158,228,182,152,253,56,239,128,7,3,142,122,17,199,2,128,39,221,103,141,173,109,110,49,219,105,234,71,65,155,238,70,65,206,50,59,16,106,84,91,19,203,67,110,59,142,10,145,142,58,125,176,
+231,156,117,35,28,156,156,10,136,93,90,158,178,216,177,60,109,93,60,228,241,211,253,96,199,98,6,125,61,169,62,215,106,204,6,235,96,6,121,22,103,183,214,118,108,231,57,4,125,125,128,46,134,177,31,242,198,
+60,12,242,37,235,158,122,253,177,78,6,62,159,213,193,236,48,114,177,116,201,30,115,224,156,251,94,142,125,14,120,227,3,168,168,22,234,217,185,18,91,143,165,176,13,245,220,78,3,112,15,83,235,211,21,47,
+218,109,192,255,0,90,131,36,116,138,22,207,215,44,79,78,220,1,208,99,154,0,110,235,30,214,208,253,76,128,100,251,238,212,14,120,31,227,197,74,178,217,227,254,61,147,156,114,38,39,223,140,94,156,28,128,
+123,115,142,152,205,52,79,16,231,206,94,135,159,42,221,177,156,100,1,159,175,76,143,97,83,137,161,192,33,203,127,187,111,0,235,158,216,99,211,232,71,78,153,20,0,11,155,65,129,229,38,220,0,71,152,88,131,
+206,121,55,163,156,227,177,62,249,205,60,77,102,56,88,87,232,164,18,15,212,221,48,62,220,31,229,134,44,184,36,2,227,30,182,214,227,57,244,62,79,232,73,233,215,29,101,19,177,24,99,43,115,192,9,10,254,60,
+67,142,7,166,79,78,120,160,5,51,219,40,220,177,34,243,142,132,251,118,155,28,19,142,163,233,147,79,23,8,196,97,50,59,124,132,116,238,63,120,223,128,206,69,34,207,33,7,17,202,49,239,22,79,227,246,81,130,
+7,190,62,188,230,69,154,78,165,102,199,183,150,192,3,211,56,182,56,227,169,206,7,57,52,0,241,113,32,28,66,6,59,236,111,94,15,223,56,252,48,125,105,86,228,156,101,23,158,7,250,60,174,78,59,110,45,223,56,
+198,59,99,234,229,153,248,0,92,55,110,35,56,206,59,17,108,114,57,239,237,142,212,166,121,243,196,119,131,7,180,110,127,28,249,8,7,78,63,150,115,144,7,25,79,93,157,177,197,160,3,61,177,146,71,174,120,35,
+215,158,174,89,223,35,137,151,185,11,102,59,250,101,125,58,96,251,115,77,89,174,63,231,149,206,61,224,144,250,122,40,254,121,254,117,39,218,110,7,203,228,220,103,168,253,204,196,145,219,248,176,49,233,
+198,49,232,40,1,193,203,127,29,218,158,70,86,209,8,227,183,205,131,193,244,35,250,211,183,17,201,146,244,246,226,218,17,211,29,0,147,219,61,9,239,210,154,46,110,178,0,130,99,158,133,163,156,0,79,184,113,
+253,1,227,140,14,28,110,46,121,12,172,185,29,49,113,207,254,70,30,189,14,125,232,1,68,156,224,205,168,227,29,173,192,227,35,166,100,199,4,3,199,183,94,148,224,88,144,22,93,71,168,28,91,196,79,95,95,56,
+158,126,135,158,158,209,25,102,198,76,32,246,230,39,35,28,246,50,246,245,39,35,28,98,158,38,151,140,195,26,145,255,0,76,159,61,61,174,87,174,125,143,3,232,64,38,40,57,37,181,48,113,201,251,60,0,113,245,
+207,80,49,215,159,90,140,172,68,252,211,106,99,183,252,123,219,128,0,24,239,142,221,249,207,62,194,131,43,227,253,84,100,115,129,229,184,193,31,246,248,7,183,115,250,229,134,105,142,7,217,237,135,169,
+101,82,70,14,72,249,175,79,110,59,122,224,26,0,82,99,3,34,93,68,129,145,150,138,209,51,215,28,224,147,206,125,125,186,211,60,213,4,144,215,157,7,37,45,216,12,159,64,152,231,169,61,78,59,244,50,137,36,
+94,68,54,32,99,145,229,143,233,123,254,62,212,27,166,25,59,116,229,57,3,253,74,113,219,0,155,179,207,211,32,250,116,200,3,69,192,244,184,108,115,202,91,40,35,62,234,49,131,199,225,144,77,40,186,199,30,
+89,57,231,12,246,160,158,253,10,31,175,76,243,245,20,159,106,13,146,30,199,57,28,136,225,237,211,173,201,35,160,62,135,145,199,90,97,156,30,11,88,245,199,11,8,29,243,214,227,4,253,57,250,227,20,0,243,
+116,15,252,179,133,64,36,242,214,231,156,228,224,27,118,207,191,190,64,238,41,62,212,9,225,45,1,239,185,237,129,57,199,65,246,97,130,112,56,227,211,167,84,18,166,64,255,0,69,39,190,22,19,159,64,49,112,
+15,95,76,126,61,105,198,68,35,119,250,56,193,29,227,95,110,215,67,30,189,178,104,0,19,146,70,229,180,81,211,253,100,35,28,227,31,45,185,235,159,79,92,230,144,220,199,209,69,137,61,72,99,23,191,36,136,
+57,252,189,59,26,82,200,113,251,200,65,198,122,198,192,17,212,115,112,223,129,199,243,192,77,201,253,251,98,15,114,19,156,99,176,151,28,113,245,160,4,243,3,243,182,195,39,213,129,234,58,129,228,99,223,
+250,116,166,147,147,141,182,25,224,112,171,158,253,49,109,207,83,145,223,29,14,5,60,8,152,255,0,172,183,31,68,78,63,1,38,120,233,207,255,0,173,127,118,15,250,216,113,208,124,160,14,188,117,115,233,249,
+117,227,168,4,91,73,57,9,100,51,158,4,81,145,237,140,219,255,0,46,185,226,151,203,126,194,208,115,218,31,79,64,32,25,62,191,151,60,211,196,113,183,34,88,24,231,251,202,15,7,142,141,237,206,113,249,116,
+83,8,235,254,142,114,7,71,147,39,158,114,71,29,125,51,140,245,236,64,34,49,200,120,221,9,228,140,11,105,51,235,140,139,114,120,233,158,125,113,140,154,66,146,47,25,3,211,22,179,1,192,237,152,20,103,167,
+112,112,121,207,53,39,148,6,9,91,124,122,54,242,9,237,156,176,207,28,115,207,183,160,99,4,253,235,96,113,200,219,32,233,158,222,105,231,182,48,58,114,121,20,1,25,73,201,7,14,7,82,5,179,123,244,204,125,
+121,232,79,78,1,57,164,219,32,201,59,243,215,13,106,217,227,166,15,149,212,114,61,8,238,123,153,3,36,11,86,237,201,124,115,159,73,243,223,140,227,216,250,184,185,238,182,160,31,67,32,35,184,235,55,57,
+250,142,221,178,104,1,129,228,224,4,114,56,7,22,216,250,245,66,49,147,220,14,158,185,164,50,56,60,71,47,81,147,228,168,199,127,151,49,158,252,12,15,67,78,47,158,3,71,216,124,173,49,231,30,162,98,122,251,
+115,208,250,210,110,113,156,74,56,237,186,228,99,31,240,63,94,63,144,205,0,55,237,82,12,29,178,131,207,37,8,198,121,35,43,31,94,188,19,143,79,121,4,238,123,204,61,128,147,249,1,248,227,28,125,122,215,
+47,35,100,111,4,103,143,222,220,99,184,245,36,1,142,61,126,180,135,127,247,209,125,48,103,111,207,131,250,122,251,80,4,173,33,111,226,185,57,60,224,186,251,244,32,28,118,234,51,212,228,113,80,121,132,
+103,230,159,29,65,103,108,142,156,2,16,156,116,7,166,123,251,180,171,103,62,118,9,227,229,251,71,228,114,113,206,79,27,115,142,148,44,108,63,229,232,245,198,55,76,14,115,236,254,220,250,228,80,3,188,215,
+36,109,121,91,28,128,51,198,123,96,160,206,61,64,201,201,198,122,80,90,86,193,45,34,119,229,78,78,115,198,76,100,30,58,100,145,244,238,211,28,159,243,245,49,198,122,73,55,30,164,12,147,248,113,143,106,
+67,17,56,13,121,56,56,35,35,206,39,29,51,144,24,142,15,66,51,156,30,244,0,49,155,156,74,253,127,136,0,113,239,251,177,207,79,198,162,63,105,99,254,181,250,250,145,245,206,216,248,237,146,78,79,110,77,
+59,236,224,227,58,133,200,201,227,230,155,167,56,255,0,150,99,3,242,31,129,197,42,192,185,255,0,143,201,253,203,52,158,167,31,122,50,7,92,127,81,154,0,139,109,240,63,45,193,10,72,225,137,62,222,128,244,
+244,0,140,14,148,255,0,46,253,177,254,144,15,224,221,56,36,156,227,166,48,64,235,207,160,169,182,40,24,251,84,132,247,249,241,143,197,182,158,14,59,243,211,189,48,66,164,127,199,229,192,245,253,235,144,
+122,245,196,163,142,160,250,122,208,4,77,111,124,8,196,229,114,120,200,94,252,224,18,199,158,220,115,234,58,225,134,13,67,63,241,240,57,60,159,49,70,63,224,32,143,94,64,199,78,181,49,134,51,156,222,92,
+18,57,249,110,138,227,156,14,76,248,250,12,241,244,228,24,81,145,246,139,142,249,63,106,82,14,120,193,13,112,220,250,228,112,126,153,32,17,139,91,230,206,110,16,228,143,227,228,99,190,124,192,72,62,155,
+189,197,53,180,251,204,140,206,131,161,254,18,6,122,14,46,3,31,124,243,232,123,212,204,177,127,207,197,192,200,237,120,185,7,223,50,245,235,198,122,15,122,173,178,30,215,179,250,12,222,196,14,125,62,255,
+0,31,175,248,128,41,178,185,7,45,60,71,129,198,10,30,135,254,158,183,117,192,228,227,60,227,57,202,173,180,221,65,136,244,24,25,201,193,244,251,86,9,238,15,7,62,192,210,230,49,156,92,72,79,163,106,81,
+0,121,199,67,33,39,167,66,50,71,160,166,183,124,78,15,7,159,183,196,125,243,247,198,122,123,247,245,160,9,133,172,185,203,55,205,211,1,1,233,207,83,114,71,191,39,158,160,118,164,107,96,120,118,124,119,
+33,80,30,188,244,185,224,122,228,117,32,1,129,197,70,231,254,94,71,208,222,198,71,110,51,231,116,61,251,130,56,199,90,129,163,14,72,55,8,59,228,223,71,142,135,60,45,207,0,251,140,243,211,212,2,241,183,
+183,25,203,92,18,58,114,62,188,3,112,71,31,76,243,199,173,53,99,183,4,226,75,143,111,153,71,166,71,250,227,198,58,147,158,249,227,0,103,121,8,115,153,226,252,46,145,176,63,239,225,245,224,246,235,72,33,
+10,9,73,226,250,137,148,254,28,72,15,96,70,78,120,199,20,1,169,229,219,131,214,227,56,206,75,39,0,116,56,50,17,198,0,250,228,123,83,95,201,81,192,159,35,176,16,28,143,94,84,251,231,191,21,150,80,247,185,
+137,121,3,137,37,231,159,246,100,236,122,99,183,83,198,104,27,64,200,185,66,115,211,117,209,3,30,152,148,241,255,0,1,231,181,0,94,51,91,3,140,203,147,158,140,23,56,63,236,68,113,249,126,56,57,167,52,150,
+216,0,25,115,206,54,79,130,113,254,200,183,110,61,115,84,3,240,1,150,35,215,144,111,51,200,244,243,135,95,110,120,246,2,152,121,254,46,79,24,11,118,192,227,167,89,241,244,200,24,231,183,64,11,76,201,193,
+18,92,0,115,183,18,62,58,255,0,179,106,50,127,1,140,19,158,57,132,200,70,0,146,76,250,180,215,43,215,143,249,245,239,249,117,206,56,170,229,79,221,243,95,7,178,165,215,168,224,134,156,14,152,39,158,113,
+244,5,6,71,62,100,192,103,178,204,51,211,168,55,56,239,250,159,106,0,152,249,133,190,89,6,72,39,151,185,99,159,94,45,185,244,201,28,143,78,77,5,110,200,194,152,72,237,147,57,200,199,113,246,82,62,184,
+227,174,58,230,153,184,142,179,76,7,166,199,35,160,192,230,86,252,71,35,168,250,189,103,0,159,244,153,215,183,48,200,62,191,113,189,189,135,111,74,0,140,165,235,240,124,134,198,71,47,57,231,0,243,139,
+66,71,175,35,167,191,88,76,87,42,114,99,183,114,79,56,91,131,223,159,249,115,64,120,25,192,227,216,213,163,116,7,91,169,112,113,252,19,116,39,30,167,131,244,28,115,71,159,9,235,41,110,71,7,206,28,127,
+223,150,24,237,244,228,122,80,5,77,151,36,131,246,104,9,60,16,82,225,15,80,57,196,43,207,29,127,78,105,90,43,163,143,244,75,124,159,107,145,143,64,75,71,201,252,59,243,86,26,104,7,1,199,65,206,231,227,
+57,231,155,76,231,175,112,56,28,211,11,219,184,229,201,62,155,142,61,112,113,7,92,142,217,7,249,0,87,49,93,15,249,117,136,12,127,114,118,92,159,127,47,142,156,103,29,186,145,72,82,224,96,52,22,228,103,
+28,137,64,227,143,249,230,220,14,9,200,39,220,103,21,100,61,162,140,121,168,164,131,128,93,249,239,147,251,129,211,29,185,252,105,4,182,92,134,154,6,199,61,103,227,166,70,68,64,103,223,145,158,152,60,
+80,5,111,42,76,243,5,184,239,193,108,123,99,49,14,125,189,122,10,141,162,96,121,182,132,142,195,112,66,123,227,62,73,206,58,117,3,191,184,190,38,176,35,239,219,227,156,128,102,110,126,130,3,207,39,131,
+239,193,160,62,158,113,202,14,59,27,144,57,60,127,203,37,3,62,164,103,240,160,12,211,110,28,243,108,163,220,74,72,207,254,3,227,220,145,146,7,32,98,158,45,80,96,139,97,156,143,249,110,217,198,71,31,241,
+237,219,215,159,199,28,223,102,180,206,21,16,253,94,232,117,207,251,96,96,244,28,1,215,57,193,196,123,109,207,240,70,167,131,157,242,55,226,51,32,57,30,135,62,249,160,10,94,67,171,101,109,144,158,1,63,
+107,110,0,60,228,8,127,152,227,241,225,222,75,240,90,24,199,99,254,154,70,0,29,127,227,223,182,58,28,30,51,86,79,144,78,1,80,113,192,85,45,207,92,157,211,140,250,246,7,28,10,140,121,64,144,30,67,140,244,
+140,156,122,244,188,24,245,63,79,198,128,34,49,40,35,136,193,231,25,191,140,16,122,224,177,131,60,103,250,113,74,99,64,79,49,143,99,169,70,132,14,188,15,179,3,130,123,103,233,233,82,252,132,253,233,51,
+223,247,108,73,247,255,0,143,179,199,245,61,232,43,159,186,211,31,251,98,224,122,30,126,211,143,200,18,113,214,128,32,217,9,39,127,148,79,61,117,104,65,193,198,58,91,99,167,7,60,227,175,178,236,183,29,
+18,19,193,31,242,24,181,239,245,181,62,253,199,126,106,93,185,24,38,224,55,35,229,140,129,250,220,100,245,235,207,99,142,148,211,25,239,37,214,61,2,49,60,99,176,159,29,187,158,159,136,160,8,252,184,115,
+147,29,177,235,255,0,49,171,94,51,215,0,90,15,203,61,177,235,73,178,217,79,250,187,108,14,119,54,175,111,158,217,200,251,54,59,255,0,123,167,24,61,104,104,88,156,9,110,7,60,110,89,1,206,51,156,11,143,
+175,174,7,126,9,166,121,13,208,75,112,79,57,194,74,122,103,145,137,24,123,231,252,128,5,45,17,7,100,118,196,114,11,29,94,35,143,95,187,23,82,61,142,61,15,21,14,97,4,229,45,50,70,127,228,41,25,200,199,
+25,253,203,114,71,61,122,117,52,227,24,31,242,222,224,17,215,253,30,94,113,207,4,54,9,206,49,207,212,228,12,166,206,1,18,93,3,219,17,92,1,233,200,86,36,15,76,118,206,115,64,16,187,219,130,63,119,111,235,
+242,234,113,113,199,168,180,32,103,184,237,142,217,170,198,88,193,249,98,136,142,122,234,89,61,243,247,109,112,125,198,59,116,199,21,116,171,19,254,182,231,56,7,253,92,234,15,95,86,25,250,231,142,123,
+82,52,79,140,238,152,250,124,178,182,61,121,18,241,193,57,28,156,12,241,206,64,51,218,85,231,253,30,12,12,231,253,53,216,254,35,200,83,220,231,61,198,59,84,101,242,78,45,97,25,231,34,121,1,207,212,70,
+15,126,120,199,62,248,171,167,204,4,225,229,244,24,142,94,15,215,237,3,36,231,63,78,220,18,88,210,79,206,37,185,56,234,12,18,227,56,201,199,250,64,207,76,129,216,116,25,160,12,230,243,48,64,141,1,246,
+158,227,28,250,136,212,17,245,200,232,113,142,41,132,62,2,149,83,199,24,146,252,156,241,200,59,78,49,216,147,199,94,188,214,139,77,113,221,167,62,159,232,172,79,35,174,13,216,63,168,207,124,84,59,231,
+39,131,55,39,31,241,233,33,31,165,231,29,251,117,252,50,1,64,164,128,158,88,100,240,3,222,231,161,56,230,53,36,125,91,211,61,57,140,134,10,75,49,35,175,50,221,243,143,83,130,189,143,95,124,122,86,143,
+218,46,9,192,105,125,63,227,194,78,114,125,239,134,126,184,254,149,31,157,117,145,134,151,140,142,109,102,94,254,131,80,65,235,235,252,141,0,103,135,199,24,110,58,159,180,94,100,143,195,110,127,167,233,
+72,206,141,149,111,52,123,11,139,172,112,123,126,243,31,158,122,117,237,90,5,231,193,220,102,61,14,126,205,55,62,153,198,169,207,60,145,158,190,157,4,5,220,18,55,48,56,63,242,194,81,245,25,254,210,111,
+113,140,123,103,52,1,69,140,94,174,7,57,2,91,178,113,216,146,100,32,116,234,48,59,14,149,17,104,7,252,180,148,122,98,226,80,115,216,29,193,178,126,184,228,3,142,245,164,211,40,224,188,152,228,28,219,92,
+28,231,220,94,55,229,192,39,233,77,243,226,110,12,164,244,251,209,78,163,30,184,251,75,31,111,94,166,128,51,11,70,57,18,204,125,190,210,217,199,124,254,228,131,147,215,250,231,34,35,42,128,65,89,220,228,
+158,110,67,100,12,103,57,183,35,160,224,241,143,67,138,213,101,129,142,124,228,193,28,147,28,253,123,224,100,251,19,201,235,205,66,240,219,227,139,148,255,0,191,19,140,118,231,106,177,35,185,0,140,117,
+199,56,160,12,247,185,64,63,212,220,103,212,79,30,51,219,230,251,46,15,56,235,211,143,83,85,218,243,177,183,152,240,120,55,74,8,199,168,251,57,207,183,36,14,122,99,53,167,229,192,50,77,226,171,115,156,
+65,112,115,245,62,73,244,228,224,246,231,209,141,21,187,100,253,165,27,212,249,114,245,245,63,232,224,159,92,245,238,113,197,0,100,53,212,103,147,111,41,36,243,139,244,24,246,193,180,42,121,227,182,125,
+61,107,188,209,131,147,4,171,158,65,251,76,71,61,120,200,178,57,250,103,184,39,140,145,174,99,182,25,204,208,147,238,147,2,6,58,229,162,3,244,192,25,207,38,171,186,192,50,21,224,193,235,149,124,158,49,
+140,24,72,199,28,140,142,224,250,0,12,118,154,44,159,220,72,79,171,60,7,7,158,152,179,94,125,123,241,244,164,89,215,160,142,80,51,208,60,75,211,61,205,190,48,59,113,219,173,106,226,6,24,18,64,71,108,43,
+145,255,0,164,196,127,158,213,93,162,137,190,236,214,224,1,156,24,198,114,112,113,147,110,189,122,250,116,250,208,5,38,145,72,225,27,142,114,124,183,35,241,22,163,35,175,29,123,99,166,107,153,64,96,76,
+109,158,121,13,180,142,152,227,236,192,113,156,245,25,206,123,115,116,218,169,35,108,214,184,247,129,191,64,177,0,72,29,121,201,31,123,57,21,11,219,162,28,153,237,113,255,0,92,24,253,48,191,40,235,208,
+245,30,216,160,10,230,69,57,56,117,227,140,59,28,114,113,144,32,25,252,58,123,211,75,231,172,152,0,14,49,33,198,49,140,147,16,228,246,28,253,1,169,74,42,147,137,173,143,175,238,156,99,223,1,177,199,25,
+231,161,231,142,170,118,21,59,76,25,237,181,27,175,126,90,85,31,134,15,7,143,90,0,128,202,87,164,132,227,161,11,39,166,120,200,227,131,158,160,113,234,51,76,19,204,62,236,132,227,3,253,68,146,12,142,195,
+8,114,63,32,7,114,48,106,66,174,57,223,16,3,208,241,215,3,33,102,56,30,157,186,227,52,166,89,113,143,53,72,199,103,32,0,56,238,73,228,99,191,39,214,128,34,91,187,133,254,37,246,197,156,195,240,236,49,
+248,31,198,156,47,103,39,59,212,114,79,252,123,202,185,237,200,218,121,28,147,233,129,154,11,205,211,122,224,140,31,245,196,251,116,56,63,227,74,194,98,6,25,15,110,68,227,143,169,228,31,76,245,228,224,
+246,0,112,189,155,159,157,72,7,161,73,65,232,56,193,136,158,184,235,233,233,140,35,94,30,172,208,169,227,4,249,227,167,3,36,128,63,28,103,173,40,107,128,48,88,176,246,107,142,253,129,14,15,82,49,128,64,
+207,4,117,164,47,48,232,36,57,199,11,53,210,159,94,237,142,120,238,71,25,160,5,251,80,56,199,145,211,239,17,35,126,171,42,158,163,61,1,231,222,131,114,131,188,28,158,130,27,134,199,167,73,249,239,145,
+211,160,206,115,75,231,92,128,64,138,228,129,145,196,247,135,240,35,126,79,30,156,115,208,244,167,137,238,115,254,166,114,72,255,0,158,183,189,71,65,128,127,145,239,248,208,4,98,230,47,250,103,207,117,
+183,159,230,233,201,255,0,74,200,193,200,233,239,223,20,198,186,135,174,229,31,75,89,216,254,151,39,191,225,250,212,230,91,195,214,27,128,185,239,113,123,192,236,57,39,142,196,1,233,207,52,240,242,96,
+111,130,224,251,11,155,175,199,130,160,242,0,60,14,131,63,64,10,203,117,7,0,150,4,30,191,98,184,239,223,253,120,199,226,122,96,14,5,31,106,182,28,153,101,224,246,180,117,35,159,250,236,223,135,126,121,
+233,204,236,75,255,0,203,11,158,113,130,110,174,71,227,204,71,219,145,158,61,205,30,94,57,242,238,64,57,56,89,229,32,156,243,146,109,78,115,201,25,201,228,143,168,4,43,115,104,127,229,188,156,119,22,179,
+243,156,103,254,90,99,142,221,15,177,228,80,46,109,115,197,196,227,142,15,217,103,227,158,70,3,28,251,131,199,7,158,149,96,67,191,4,173,222,48,9,2,121,129,252,197,159,111,92,99,165,74,34,24,0,125,164,
+109,227,47,117,113,215,223,109,143,61,134,0,63,210,128,41,139,139,114,115,246,233,185,29,62,197,112,7,167,57,124,247,233,198,49,212,84,162,104,142,51,117,55,78,15,217,174,70,123,140,100,149,61,251,96,
+243,206,106,198,198,83,242,180,216,227,172,243,19,207,80,75,217,174,125,121,35,3,31,130,178,255,0,122,71,4,14,127,126,255,0,161,22,100,227,142,163,208,230,128,43,249,176,31,149,174,165,206,65,32,219,200,
+1,31,137,234,56,235,142,61,185,163,204,179,32,127,164,54,115,207,200,84,99,254,248,45,233,193,39,191,173,89,81,25,235,44,253,0,32,93,72,49,207,181,144,30,158,252,103,214,129,29,184,36,180,179,6,255,0,
+175,201,143,80,63,187,100,71,35,209,178,59,208,4,33,236,201,0,79,237,203,50,241,201,25,13,25,7,215,140,96,242,115,83,170,217,17,133,186,68,231,60,188,96,156,244,228,199,158,49,207,32,123,119,45,99,18,
+241,246,139,128,51,208,94,93,17,193,236,86,220,2,62,163,223,232,171,36,35,254,94,174,56,61,5,205,219,116,192,193,196,107,147,248,18,71,225,144,7,136,237,243,197,236,67,223,237,32,28,142,131,229,140,103,
+25,207,31,165,47,148,163,133,188,129,135,81,254,150,131,244,43,147,248,143,196,210,121,240,144,49,113,48,35,140,27,171,232,199,166,73,221,215,60,115,236,78,70,105,254,100,123,126,107,137,207,60,227,81,
+189,3,167,99,188,2,65,24,238,0,228,14,8,32,7,217,153,241,251,251,54,24,254,43,133,110,163,146,113,143,196,123,80,45,24,12,169,176,124,250,206,0,32,156,244,42,216,228,113,243,96,116,246,166,137,163,7,151,
+156,251,139,251,230,198,71,174,245,7,175,4,14,135,173,56,73,27,244,107,188,103,140,95,93,228,114,6,114,102,28,116,29,136,206,69,0,39,217,164,207,63,97,81,147,210,100,61,125,222,35,254,125,70,105,235,108,
+228,243,253,158,112,63,138,226,14,48,65,255,0,158,28,30,120,237,232,7,20,208,170,78,21,175,135,66,71,218,239,126,163,4,77,180,253,114,64,235,154,119,150,196,97,69,247,3,248,174,110,14,63,242,104,12,103,
+25,232,79,231,64,15,251,53,206,1,139,251,52,1,142,126,211,17,56,206,115,159,44,122,123,14,152,227,154,95,38,244,240,63,179,207,210,104,142,113,233,132,250,243,156,228,113,211,52,139,28,195,161,185,25,
+232,4,242,123,224,243,114,71,3,0,140,241,215,111,76,42,164,196,224,165,199,111,189,52,172,14,120,60,249,140,50,121,193,234,58,228,247,0,83,29,247,32,67,98,192,140,0,110,0,253,60,179,233,199,76,103,7,52,
+169,21,238,70,235,107,62,184,226,224,19,142,57,255,0,84,217,39,211,175,126,113,201,228,203,207,250,60,164,0,48,124,217,135,111,64,79,28,140,240,57,247,56,160,91,190,50,214,243,142,156,121,243,55,61,125,
+65,61,65,228,15,160,234,64,39,17,220,96,134,179,183,61,121,18,142,70,125,225,0,247,237,255,0,214,70,138,64,195,253,30,219,32,240,124,212,60,158,58,20,198,78,58,224,115,80,152,144,103,247,19,19,238,210,
+147,245,192,153,122,119,3,175,126,244,208,171,143,245,19,2,15,96,231,158,122,131,112,123,241,143,167,166,104,2,125,146,156,230,40,135,36,99,116,44,15,176,249,1,236,61,207,67,154,118,220,115,181,71,174,
+60,160,61,48,79,203,207,60,118,30,189,170,184,3,31,241,239,57,199,63,117,184,25,224,130,38,39,159,64,71,36,103,0,242,245,49,115,186,6,24,7,59,132,131,219,57,103,35,62,196,159,240,0,159,29,132,97,143,178,
+198,79,62,164,204,189,49,198,7,63,157,32,200,235,20,202,14,50,66,130,91,142,79,55,7,167,29,189,56,168,193,132,255,0,203,185,198,79,252,244,4,127,223,44,192,159,235,223,6,148,53,183,70,182,114,51,217,229,
+83,159,167,152,0,199,251,88,61,122,144,0,0,148,148,111,151,203,151,30,241,47,160,245,46,61,113,243,103,39,29,113,77,8,132,147,229,202,222,254,90,131,211,253,151,82,48,120,233,199,78,180,171,37,160,255,
+0,151,91,131,130,114,119,49,31,142,235,140,241,232,58,14,126,146,137,44,207,2,214,227,145,215,4,245,193,235,246,130,125,189,58,138,0,139,17,175,13,111,41,29,6,80,129,248,98,224,116,227,183,57,226,147,
+8,79,17,50,144,115,146,188,146,51,212,11,156,224,99,166,5,90,18,90,142,144,74,73,228,100,176,35,211,254,91,147,233,142,70,122,140,138,148,52,124,109,182,144,228,131,201,36,227,254,254,182,1,200,201,32,
+227,28,119,160,10,136,19,251,188,250,236,36,100,115,200,55,36,99,39,61,51,147,214,166,1,125,48,115,216,17,158,167,159,244,159,126,164,231,60,122,129,97,72,255,0,159,54,99,254,251,14,51,142,129,129,236,
+122,28,250,245,193,147,36,96,139,40,254,134,82,15,215,230,97,142,221,143,126,104,2,161,0,143,185,145,158,234,205,208,227,147,246,160,49,220,158,9,228,230,154,35,61,68,7,158,114,34,60,123,228,220,55,24,
+250,255,0,58,209,46,74,130,44,162,244,193,148,19,156,103,212,147,199,78,57,201,230,163,27,176,127,208,144,30,14,124,195,142,51,216,238,28,242,58,130,121,160,10,69,71,252,242,4,244,193,183,7,39,166,51,
+231,12,245,25,207,61,206,51,138,42,238,247,201,255,0,66,64,59,124,217,30,135,143,44,246,239,158,158,253,10,0,243,229,152,224,157,240,15,251,101,14,48,57,254,233,57,252,8,62,217,167,249,228,142,101,76,
+12,96,44,80,16,123,99,144,56,30,163,30,252,131,85,126,208,160,156,92,56,227,28,249,224,28,227,167,238,24,247,193,25,36,227,214,172,37,201,227,19,134,231,128,90,243,167,60,113,102,115,219,182,49,208,158,
+180,0,241,42,182,11,204,171,232,68,43,236,7,43,50,140,231,131,128,58,242,71,74,176,146,91,131,150,186,133,79,61,99,81,159,98,26,227,146,71,78,15,94,6,113,76,23,91,126,244,129,191,221,150,240,18,125,127,
+228,28,125,123,231,249,212,137,124,217,0,25,64,7,63,44,247,64,250,247,211,134,79,124,100,245,252,40,2,220,115,90,156,98,238,33,140,140,3,176,250,96,136,230,200,235,147,211,211,181,77,190,221,71,23,72,
+120,7,253,116,171,156,127,188,228,31,196,254,117,89,47,25,186,60,196,158,114,210,220,146,73,201,235,246,0,58,156,112,15,166,122,85,133,186,96,70,85,201,31,244,210,227,142,79,56,251,33,39,208,17,140,12,
+245,28,128,9,214,88,184,43,114,184,228,144,39,199,31,131,143,110,160,115,249,85,148,120,91,31,233,42,58,3,254,146,70,115,146,57,222,122,15,195,235,205,68,183,178,142,140,113,207,14,247,164,244,227,24,
+183,94,56,233,205,76,183,146,243,202,110,231,248,111,220,176,233,192,49,41,29,59,228,103,61,178,40,2,80,136,70,5,194,176,35,143,244,166,25,57,231,156,16,1,233,223,61,179,83,44,113,116,44,184,245,251,115,
+140,227,182,6,113,215,208,15,81,145,138,129,46,103,244,83,145,199,201,122,164,115,254,212,124,115,211,156,103,57,2,173,36,211,177,230,56,122,116,99,168,140,30,189,35,76,159,204,253,113,193,0,149,34,182,
+56,198,206,132,15,244,201,137,227,223,203,108,158,185,192,3,31,83,86,82,27,124,244,29,50,54,222,73,130,65,233,150,128,247,3,142,73,232,65,224,213,127,50,112,50,176,194,123,130,23,81,192,245,201,109,163,
+244,56,56,231,173,72,147,76,72,2,222,6,39,212,94,31,111,239,1,215,208,241,223,216,2,242,36,0,42,249,56,200,200,205,219,242,57,236,45,215,29,187,231,219,130,42,66,176,177,192,69,32,115,131,121,116,49,207,
+60,4,199,7,29,186,156,14,1,53,84,73,40,3,54,246,75,211,27,150,245,121,231,239,19,193,61,187,228,115,140,226,164,89,31,57,242,116,252,241,212,222,115,207,166,8,63,64,189,207,126,160,22,82,11,114,64,49,
+197,140,228,147,125,57,35,36,116,221,131,206,57,224,26,176,44,173,27,4,71,6,14,57,251,85,193,237,215,33,128,255,0,61,121,21,85,36,151,32,253,146,199,35,186,139,192,114,123,255,0,169,108,224,125,50,122,
+30,42,77,211,19,147,105,102,70,49,145,246,156,129,212,117,181,56,56,199,126,156,1,210,128,45,173,133,168,193,9,1,239,133,186,147,144,125,114,228,241,199,94,163,245,147,236,54,103,172,81,231,222,225,177,
+249,151,227,29,240,8,199,124,138,174,175,113,255,0,62,182,195,176,201,185,245,239,139,80,71,3,191,127,90,120,105,155,131,107,104,24,158,155,231,56,234,58,139,101,239,201,234,71,233,64,22,22,210,215,248,
+86,4,237,159,180,224,114,113,142,101,36,118,57,227,128,78,106,194,218,69,140,134,131,60,3,254,155,129,140,227,160,151,245,7,131,214,168,230,101,231,236,246,184,245,87,155,60,116,251,208,142,113,208,28,
+254,7,24,22,75,140,227,201,135,142,127,214,62,1,232,72,253,193,235,193,7,159,210,128,52,214,206,35,143,222,219,3,201,195,94,200,78,73,200,231,205,98,125,137,7,219,168,195,190,202,156,143,58,208,14,196,
+222,75,248,244,144,119,24,228,117,3,174,5,85,70,155,25,242,227,30,165,76,228,145,237,139,126,125,186,126,60,98,79,50,78,123,1,129,194,220,19,244,255,0,82,61,58,99,175,30,132,128,89,91,65,145,155,136,8,
+29,64,188,144,129,248,19,253,121,227,57,171,43,107,24,206,110,163,24,233,135,146,79,78,62,255,0,110,160,129,207,160,170,42,242,19,214,92,250,136,223,3,191,83,111,158,122,99,140,114,56,226,167,87,96,113,
+231,220,47,79,225,151,3,167,35,48,99,215,216,1,219,184,5,160,138,191,118,240,16,127,217,155,31,250,31,182,62,159,149,74,164,103,31,107,25,29,49,246,176,61,15,70,252,122,158,122,113,197,64,143,158,90,234,
+232,140,118,73,59,253,96,227,245,206,72,57,6,164,18,161,192,251,69,193,192,238,188,228,245,200,107,115,142,123,144,49,198,59,138,0,178,172,122,139,228,246,200,191,227,183,240,201,233,208,140,246,32,118,
+171,81,188,163,7,251,73,0,29,132,90,129,200,62,153,44,78,56,207,191,215,38,154,72,128,241,53,208,61,126,94,70,79,78,5,190,209,236,15,25,245,226,167,19,100,140,220,95,130,15,111,51,183,79,187,110,114,120,
+207,57,232,126,180,1,103,207,144,96,127,104,175,225,111,168,122,243,252,32,17,239,159,74,95,180,58,231,23,254,184,196,23,99,129,147,220,228,241,245,244,56,234,99,73,211,248,174,111,129,60,231,19,114,58,
+3,197,168,239,249,158,57,169,76,241,146,51,123,126,63,9,71,167,60,218,227,35,62,190,188,241,192,3,133,195,156,147,124,167,60,127,199,189,206,65,250,5,63,78,73,239,215,138,148,72,72,25,187,82,78,115,155,
+75,163,199,94,209,40,29,15,205,131,248,212,43,34,147,129,125,120,192,14,140,88,3,233,255,0,44,79,175,167,24,245,169,84,130,114,47,46,243,219,38,92,116,238,18,223,28,142,112,122,227,52,0,239,49,142,113,
+58,183,96,12,23,72,127,33,11,99,175,82,8,250,244,165,14,199,248,163,63,240,9,250,247,206,232,6,113,207,175,168,244,163,130,121,186,185,32,118,242,228,57,57,63,222,139,35,174,115,232,71,6,154,66,158,147,
+79,158,159,50,74,122,244,228,32,254,84,1,58,172,152,255,0,88,188,0,115,178,76,119,192,193,136,228,14,156,99,175,126,41,118,51,30,93,9,246,133,199,61,250,196,79,231,248,119,2,178,166,236,102,103,192,57,
+7,100,132,158,189,113,25,252,120,227,240,230,97,6,79,203,52,167,223,108,195,182,122,249,68,116,62,190,180,1,47,144,0,25,36,255,0,187,17,199,82,0,199,146,61,56,24,250,84,126,84,125,25,136,61,79,238,206,
+1,232,50,26,47,195,159,79,165,56,91,146,126,105,78,59,238,121,64,199,76,100,192,125,120,231,175,38,158,182,200,62,236,138,91,175,50,55,0,250,127,163,251,99,160,199,52,0,193,10,144,0,149,64,207,25,72,128,
+238,113,159,39,32,231,30,166,151,236,192,100,140,19,216,1,24,227,223,17,168,255,0,235,138,95,179,100,147,148,108,116,63,104,117,3,158,227,236,203,248,12,241,158,148,245,131,221,15,253,188,73,140,31,165,
+187,99,223,7,219,214,128,25,246,119,234,55,30,122,121,144,142,62,132,140,254,35,60,245,226,158,33,97,143,144,145,142,166,104,15,224,49,159,110,121,61,251,226,156,98,85,207,220,99,232,103,147,249,152,1,
+244,60,159,74,110,49,252,8,48,115,147,116,224,15,166,32,207,94,254,248,201,230,128,30,18,94,131,119,211,204,139,167,215,35,32,99,142,59,12,250,210,121,115,128,121,28,227,171,199,156,17,232,67,103,250,
+143,74,79,152,224,143,47,220,11,185,135,174,127,229,220,231,168,234,6,115,206,105,9,0,243,16,60,255,0,13,228,160,147,142,49,155,124,113,207,110,153,30,148,0,237,183,0,231,42,51,140,19,44,35,244,3,60,131,
+158,123,158,157,105,119,79,252,69,79,76,126,254,46,222,131,215,25,199,39,223,185,168,76,142,9,27,10,117,255,0,151,217,251,246,192,131,223,166,48,59,114,42,51,44,153,56,36,143,81,113,57,252,179,16,7,29,
+250,114,40,2,234,137,27,164,91,143,253,124,64,188,113,142,57,36,242,120,56,207,94,8,192,82,164,31,158,221,241,158,74,220,38,51,211,56,12,49,147,206,123,123,142,42,154,203,116,126,228,133,125,9,103,231,
+220,124,131,233,206,13,27,239,59,206,27,142,157,121,207,82,74,245,235,233,223,29,40,3,68,48,29,34,153,123,231,207,64,113,235,140,158,231,184,39,176,0,210,153,99,25,202,204,78,7,89,17,241,233,141,177,147,
+199,190,51,206,78,71,25,165,239,0,3,205,39,211,132,232,71,3,144,56,7,223,29,123,114,3,37,239,252,245,144,123,134,135,29,50,120,32,156,117,0,247,160,11,254,116,39,128,210,175,3,178,254,120,49,123,96,3,
+142,125,123,27,226,39,37,238,8,61,213,97,207,80,120,37,15,127,94,255,0,173,12,222,48,192,185,145,73,231,147,8,255,0,208,151,160,62,158,223,74,64,151,231,254,95,91,166,57,242,79,183,79,44,250,227,32,117,
+61,104,3,64,60,57,198,235,209,158,132,52,43,145,244,84,3,30,128,158,252,116,197,41,48,238,56,146,231,39,0,102,65,187,146,8,224,31,195,3,142,245,72,127,105,46,113,126,23,31,236,219,228,143,79,245,57,63,
+167,181,57,95,83,234,117,36,32,117,24,135,57,247,13,110,70,58,245,31,134,40,2,119,141,7,33,174,255,0,25,88,2,123,128,2,145,192,236,73,254,89,137,162,98,15,250,224,59,239,149,15,126,63,229,151,63,94,121,
+228,210,137,175,142,67,106,11,245,255,0,67,193,4,117,193,179,111,113,207,7,191,25,167,25,47,58,61,249,35,61,84,218,128,115,212,97,109,57,247,228,253,71,52,1,92,196,227,163,201,159,250,233,25,232,61,60,
+146,63,32,57,252,42,7,130,114,71,239,28,2,49,141,240,158,191,91,85,233,238,217,207,90,186,12,167,147,60,132,228,231,136,72,246,224,89,159,195,233,214,151,18,158,179,201,235,242,249,67,219,129,246,64,127,
+44,245,231,20,1,146,246,119,7,163,18,79,127,220,146,51,158,50,32,198,56,198,127,10,65,97,116,70,48,9,199,25,49,224,243,223,108,71,241,61,250,96,98,181,129,148,116,154,126,223,192,173,223,60,226,207,235,
+208,246,28,244,165,15,112,78,22,73,207,63,243,201,48,65,62,246,196,146,79,166,51,159,161,160,12,81,167,79,158,99,143,147,147,157,128,99,56,56,253,206,115,237,159,124,130,105,166,202,80,0,49,64,64,4,156,
+145,219,219,203,24,233,147,199,127,166,119,115,47,87,105,219,216,42,231,182,50,26,5,7,175,167,106,140,151,39,254,94,7,177,10,121,39,218,62,153,246,235,199,78,128,24,98,220,41,63,232,208,54,79,104,148,
+224,251,102,3,143,160,39,156,244,198,10,121,74,14,90,218,49,206,115,246,100,110,49,255,0,92,54,142,126,163,211,168,21,187,134,193,37,174,64,35,39,108,36,231,211,162,129,158,125,177,193,235,81,178,200,
+1,32,222,99,211,236,142,115,143,125,254,249,56,199,229,64,24,230,53,61,33,69,227,28,216,177,193,250,44,3,159,97,199,7,28,211,194,33,56,242,212,231,177,211,229,60,30,135,253,71,24,227,31,135,189,104,54,
+225,222,227,142,126,107,89,64,246,232,216,236,115,239,207,29,152,90,85,7,111,218,49,220,136,37,198,48,122,2,192,142,227,174,123,131,64,21,133,186,244,242,99,193,56,255,0,143,9,215,140,28,127,203,49,248,
+147,211,211,56,165,48,70,188,24,34,231,24,39,79,187,35,211,168,139,24,227,215,138,151,207,159,168,121,185,207,252,177,151,158,223,197,46,127,33,142,0,231,178,25,46,8,230,76,118,203,69,58,244,56,254,249,
+31,92,103,28,15,76,0,68,82,46,155,45,129,247,178,187,28,243,140,230,18,7,79,94,41,2,199,131,131,106,9,227,155,107,149,227,39,183,148,185,198,79,36,118,224,231,56,113,123,131,156,202,159,128,153,123,117,
+224,250,103,140,241,192,60,245,97,121,135,1,227,57,35,31,52,217,231,219,99,96,115,144,123,156,208,3,26,61,221,62,198,125,197,173,235,0,112,71,33,87,140,253,56,207,28,28,82,136,219,31,242,232,221,198,44,
+239,120,199,0,240,65,24,36,123,224,144,7,83,74,13,208,39,19,1,147,208,52,188,99,156,228,192,122,240,112,65,63,144,164,50,93,12,124,242,31,115,114,233,156,125,109,177,143,207,235,218,128,27,228,231,146,
+182,132,118,205,157,234,250,158,142,227,244,231,214,144,194,131,239,37,168,28,244,142,245,1,234,51,196,224,2,125,64,231,177,207,68,47,116,50,119,158,252,11,237,188,122,156,88,177,60,123,158,51,70,251,
+174,162,78,158,151,192,144,51,239,97,131,199,82,71,183,122,0,60,152,136,226,222,19,158,50,166,248,231,240,251,80,63,151,183,36,211,25,99,82,115,18,142,248,221,122,123,117,193,188,207,78,56,28,250,98,149,
+154,239,24,105,14,61,13,228,94,188,224,181,129,199,169,254,84,210,179,158,70,63,240,50,35,147,248,88,12,18,115,250,103,181,0,40,72,65,25,135,56,234,115,116,163,223,147,113,223,235,220,119,6,164,13,108,
+189,98,148,159,246,76,205,130,59,229,174,71,168,239,216,227,189,71,229,56,32,157,224,251,95,71,128,59,224,27,18,191,134,63,198,151,203,28,22,50,231,218,254,33,215,216,88,142,191,135,110,156,80,3,140,176,
+14,66,92,142,220,23,199,94,48,13,222,73,62,254,189,7,120,196,144,100,140,95,12,242,49,184,1,145,158,243,176,200,233,223,32,227,215,18,108,24,206,247,31,75,220,159,174,22,205,122,118,201,255,0,235,187,
+106,41,39,116,237,145,142,110,9,31,153,129,64,201,207,4,158,220,250,128,64,90,35,247,95,80,244,249,157,71,212,143,156,250,251,119,199,124,56,170,12,31,54,247,28,227,247,137,198,121,238,11,17,142,58,103,
+181,59,106,49,32,134,193,199,13,48,108,251,99,103,0,158,62,83,216,210,172,105,147,136,212,118,249,176,65,244,56,192,28,103,215,177,207,29,0,32,96,11,113,53,208,198,121,251,216,250,230,54,7,169,61,250,
+80,86,92,127,199,204,169,207,120,97,39,147,130,71,238,1,239,158,152,231,57,238,44,24,148,227,229,140,28,127,8,69,35,244,60,245,62,253,49,232,27,100,206,79,151,140,119,101,234,49,212,151,92,250,117,231,
+211,38,128,43,132,155,39,253,46,78,79,31,36,56,28,115,156,65,158,58,131,232,72,237,154,70,55,3,165,225,3,184,49,161,200,231,176,64,73,255,0,245,246,193,180,99,3,172,145,142,114,0,112,56,247,34,113,236,
+48,63,26,97,201,225,94,35,158,197,85,253,64,206,110,189,51,156,117,235,215,52,1,83,253,55,57,251,80,101,60,143,149,83,142,199,132,207,191,94,252,244,165,198,164,8,2,82,120,36,252,195,3,215,144,160,227,
+166,120,56,236,13,72,98,98,50,194,2,115,222,36,199,35,184,23,188,15,161,56,227,184,197,87,104,67,117,251,47,184,251,60,100,103,39,185,190,239,201,193,7,35,28,247,32,19,1,169,178,224,176,25,207,87,7,142,
+58,130,189,79,65,211,158,70,40,11,170,116,50,69,158,191,44,167,39,61,248,207,183,60,117,28,242,13,87,16,162,156,31,177,114,79,252,186,194,113,130,51,146,46,155,31,211,0,251,152,158,36,94,127,208,176,113,
+200,182,140,99,240,51,28,254,29,179,233,64,22,216,234,73,210,82,49,159,249,120,97,158,153,199,204,191,203,31,78,106,22,151,81,28,153,223,7,3,34,237,129,199,127,249,106,114,70,115,212,96,246,207,90,39,
+96,231,54,71,168,199,149,0,252,190,115,129,245,57,206,51,72,95,143,149,45,187,253,216,147,190,79,59,100,227,143,110,248,231,176,5,199,154,248,140,153,38,99,254,205,243,12,250,113,230,28,12,254,92,30,245,
+25,184,189,0,243,57,28,142,111,156,0,120,193,234,120,253,51,192,24,230,169,25,217,113,152,161,192,192,25,131,119,215,177,60,116,4,122,119,21,27,78,27,131,28,39,208,125,145,187,28,245,17,17,223,156,114,
+114,122,12,208,5,182,188,187,25,194,78,70,72,33,111,100,62,157,72,235,245,192,245,199,162,253,182,233,114,10,94,168,192,56,23,146,176,233,131,252,4,14,125,127,94,13,81,243,208,127,203,43,65,215,173,150,
+0,227,222,212,147,199,94,112,73,231,184,41,246,216,212,28,69,103,145,233,104,216,25,199,165,153,29,251,28,253,58,144,11,127,109,156,159,156,106,68,122,44,211,18,57,199,252,251,224,255,0,78,135,161,52,
+141,119,142,167,82,78,152,203,207,249,157,182,224,142,157,241,207,92,245,170,195,80,244,138,201,143,98,109,194,12,116,227,54,7,235,158,49,144,115,216,169,212,229,25,2,43,53,29,65,8,131,158,135,31,232,
+32,2,62,128,158,254,224,18,53,240,25,203,234,103,39,251,247,93,135,32,255,0,163,125,113,201,227,52,207,181,198,221,175,56,61,91,237,37,136,207,76,253,159,215,234,15,28,245,20,197,212,174,15,81,96,58,125,
+225,17,199,29,135,216,79,61,127,166,0,53,50,223,79,217,172,57,231,34,53,207,175,252,248,0,56,244,199,231,208,1,22,113,156,136,238,113,219,43,41,233,212,243,0,24,207,65,206,112,121,166,153,249,193,91,129,
+129,253,217,59,231,176,137,122,125,113,131,211,185,144,220,220,30,179,217,12,146,121,77,163,175,170,216,191,12,123,131,198,49,156,82,249,179,183,30,118,155,220,2,88,242,125,50,108,211,31,94,189,254,160,
+17,249,221,50,211,129,255,0,109,134,59,30,9,3,211,145,211,174,77,5,248,226,75,128,59,144,38,3,215,184,96,7,126,189,168,111,180,55,87,211,200,63,244,216,237,207,67,214,215,235,244,193,246,166,152,238,152,
+124,179,216,131,232,183,91,112,78,123,139,113,207,96,50,78,115,200,25,52,0,224,195,24,18,206,120,32,124,210,156,31,160,96,127,30,59,112,64,225,165,159,28,75,48,200,61,76,224,113,156,103,247,131,60,116,
+29,73,228,250,84,109,111,122,115,139,168,56,36,231,237,187,6,1,25,63,234,8,193,247,228,140,224,102,163,48,106,32,12,79,15,190,219,224,220,254,54,174,123,143,78,191,152,4,133,165,199,250,231,0,244,249,
+230,7,191,172,160,142,156,19,215,159,67,76,223,48,29,100,57,29,220,147,249,111,206,61,69,70,209,95,28,134,186,81,212,145,246,204,30,255,0,244,234,61,186,116,250,103,17,155,107,131,247,166,82,79,31,45,
+244,160,255,0,233,48,80,123,99,183,29,168,2,99,52,195,248,165,224,246,56,63,250,52,254,28,122,228,122,176,203,49,206,94,94,220,7,0,3,219,163,158,220,159,92,100,158,51,80,253,158,227,28,185,35,57,230,252,
+242,7,80,63,114,51,249,113,250,84,38,7,4,228,158,252,155,233,27,167,178,196,160,31,199,24,227,3,24,160,11,27,238,51,242,187,253,76,153,207,24,193,195,17,140,113,192,227,175,25,164,50,220,16,115,35,28,
+250,25,72,231,167,80,1,206,122,14,59,85,7,141,201,228,72,163,218,228,182,125,51,186,60,158,152,236,59,114,49,81,16,192,224,60,157,198,26,232,41,246,203,109,94,217,235,208,228,250,26,0,182,210,220,140,
+141,199,161,198,69,192,199,83,146,64,81,223,252,42,38,107,146,48,56,24,228,254,252,115,233,157,140,121,206,73,0,224,129,145,85,137,187,36,236,220,234,59,125,178,54,3,175,114,14,56,236,71,183,92,210,111,
+184,63,122,48,122,117,189,136,103,156,99,229,143,191,242,235,64,10,233,57,228,34,244,198,76,204,73,198,114,73,48,113,216,129,198,65,56,25,233,17,142,78,21,162,132,250,22,185,219,156,100,112,62,206,73,
+3,31,151,210,164,223,57,24,49,196,6,71,222,188,92,12,231,166,8,60,12,117,62,184,164,221,63,247,109,88,129,211,237,163,167,78,134,67,142,216,61,15,60,230,128,34,49,144,15,238,161,62,194,233,179,140,140,
+227,253,21,65,28,246,39,167,83,210,154,208,57,206,33,143,158,6,47,27,29,122,96,199,223,158,1,235,78,119,159,4,121,112,103,129,197,226,30,156,140,229,192,253,113,236,15,34,50,247,88,235,16,28,114,47,16,
+30,51,145,145,46,9,235,198,56,244,160,6,73,104,227,39,202,143,166,72,251,107,231,129,254,233,193,24,207,124,241,80,53,184,61,98,62,191,45,219,156,31,65,242,99,183,126,65,39,53,54,110,143,34,72,148,158,
+187,175,208,251,99,253,105,4,31,78,15,167,180,71,251,67,39,19,91,231,36,243,168,219,146,0,238,1,147,158,49,156,96,140,99,138,0,129,173,226,201,204,18,115,128,15,219,130,244,28,140,180,103,29,123,1,215,
+39,56,20,207,179,91,244,49,77,255,0,1,212,134,113,237,186,220,129,220,246,25,247,53,116,54,164,78,124,203,114,7,166,165,110,8,207,168,5,187,250,142,57,234,77,56,45,215,37,164,131,220,155,219,108,119,35,
+144,7,167,57,253,104,2,129,180,183,111,249,103,119,237,141,70,60,112,120,251,182,195,184,3,56,227,24,60,116,103,216,161,24,11,29,210,227,210,249,155,215,186,160,39,175,64,51,158,43,72,253,168,227,109,
+205,168,35,160,55,176,100,126,92,96,246,254,89,168,93,110,49,134,185,182,36,243,197,204,29,49,156,125,209,211,244,234,58,230,128,42,155,56,128,249,69,208,61,127,227,230,114,123,122,163,103,167,29,7,174,
+71,72,154,215,35,132,189,198,115,129,116,192,103,215,6,18,127,0,78,49,248,213,179,20,191,243,221,9,231,164,214,239,143,79,225,35,175,99,131,142,121,60,83,12,18,103,137,200,61,114,37,139,29,199,31,187,
+63,161,3,183,173,0,81,107,87,24,196,87,188,242,73,186,145,70,51,158,113,106,196,0,58,19,156,243,223,4,174,36,94,60,139,166,235,147,246,153,88,159,92,159,176,115,159,215,176,199,75,222,68,220,143,61,142,
+120,201,150,49,206,61,161,57,198,51,140,119,244,232,195,12,171,214,121,49,253,209,32,207,30,135,236,220,115,200,25,24,233,64,20,179,47,24,138,101,201,29,110,164,24,250,159,177,12,246,207,3,128,122,118,
+65,231,177,192,89,198,7,4,75,35,247,60,130,108,200,250,228,158,125,249,171,123,0,63,52,147,142,185,203,142,199,175,250,149,199,108,140,254,117,25,16,103,153,220,30,56,47,184,244,61,182,15,126,14,51,206,
+123,224,2,6,75,147,145,137,184,32,99,3,142,189,218,201,78,120,247,235,222,163,197,202,147,148,56,28,130,234,78,0,62,214,203,206,15,25,25,56,238,51,83,50,192,63,229,230,85,36,147,156,169,231,215,5,91,130,
+49,199,99,193,247,136,249,89,25,150,225,143,98,161,15,61,115,145,3,114,121,235,237,128,112,50,1,42,153,127,139,167,35,2,37,234,58,28,152,123,246,224,123,128,51,77,98,231,56,192,29,57,242,215,191,112,85,
+78,123,126,62,149,14,232,201,194,155,178,61,70,192,125,73,195,90,243,249,118,234,73,224,56,4,109,107,192,64,234,86,50,122,142,135,236,120,235,235,156,116,247,160,9,74,19,232,65,200,193,143,204,7,140,129,
+193,28,126,39,129,140,10,111,146,115,146,96,0,246,54,195,56,231,4,124,199,182,59,158,158,230,162,50,48,32,9,110,242,71,113,25,30,217,255,0,69,4,126,3,31,151,1,144,147,204,183,28,140,17,181,57,3,25,231,
+236,231,142,248,61,121,7,168,160,1,173,67,228,230,16,120,203,125,149,120,201,233,254,179,211,60,129,215,167,36,225,22,217,151,128,202,195,166,22,216,99,211,63,120,228,99,216,159,99,158,25,231,54,112,5,
+227,142,7,17,198,73,233,235,2,224,140,122,156,142,244,241,43,18,187,163,212,59,140,121,104,160,113,237,31,79,204,156,114,58,80,3,188,150,206,66,198,49,215,253,25,83,191,171,122,96,126,126,199,40,90,69,
+206,197,137,142,64,206,213,199,30,160,190,113,211,160,4,114,56,28,211,129,36,255,0,171,212,78,123,42,145,192,232,112,23,3,60,158,49,212,145,222,148,50,169,230,29,68,127,188,100,62,216,200,0,228,114,127,
+151,124,0,48,61,207,116,139,24,198,68,105,129,215,57,36,143,161,32,114,41,140,247,99,35,203,143,158,127,213,196,14,15,110,84,130,58,14,131,175,115,83,22,136,156,148,212,6,78,14,36,148,96,227,61,55,128,
+61,253,61,185,167,110,128,12,17,168,250,228,200,237,200,29,121,184,7,235,192,199,67,198,40,2,147,61,215,252,242,143,142,78,33,182,39,216,31,221,49,246,63,203,145,128,75,116,57,242,199,168,34,11,80,78,
+9,61,68,25,207,126,160,231,25,7,160,184,36,183,201,200,212,15,97,251,201,70,7,212,220,227,25,247,254,184,105,22,109,255,0,44,111,250,127,21,196,131,61,121,255,0,143,177,215,142,195,142,71,28,80,4,31,105,
+185,31,192,248,28,224,44,10,6,59,241,110,0,56,236,120,254,116,162,230,231,188,114,224,241,147,246,108,227,62,240,100,140,159,167,83,216,210,152,109,15,30,77,239,29,254,212,195,175,185,187,57,232,48,49,
+199,86,245,167,136,45,63,231,141,239,28,224,221,156,100,251,181,209,28,224,231,30,255,0,74,0,65,61,217,227,103,0,116,97,102,7,174,121,128,158,120,235,201,237,140,210,131,112,115,194,246,224,45,166,57,
+206,121,49,14,51,142,118,250,231,154,119,145,109,218,9,206,79,70,189,95,212,121,196,15,175,63,208,163,91,195,209,109,103,108,224,127,199,212,68,126,175,250,231,249,112,0,162,39,61,99,11,207,222,88,236,
+177,219,169,216,27,158,122,118,247,224,191,236,201,140,20,57,207,80,150,160,122,244,18,40,32,113,216,227,60,30,160,48,90,160,233,105,48,206,63,229,230,223,140,30,255,0,57,198,115,215,145,216,142,184,79,
+178,159,249,241,148,250,110,188,128,158,220,227,99,1,244,252,199,74,0,144,90,64,1,4,185,207,162,219,129,147,255,0,3,24,235,140,140,103,3,4,14,41,69,157,184,32,166,225,220,156,195,232,115,255,0,45,135,
+80,65,235,249,244,168,26,213,135,91,3,200,198,126,213,25,28,123,121,89,56,29,64,231,169,245,166,8,36,95,249,114,65,219,63,107,192,235,198,113,22,61,179,198,62,134,128,47,125,146,22,206,85,15,185,49,19,
+199,111,248,249,30,188,18,70,122,125,31,246,24,27,147,18,123,157,176,30,222,247,57,7,61,189,207,181,84,88,155,24,107,68,62,223,110,114,9,232,127,229,137,24,206,7,3,61,61,170,104,211,111,63,97,64,79,115,
+122,63,28,230,32,199,166,113,223,208,10,0,178,186,125,191,35,108,96,99,60,197,9,193,231,184,156,12,224,145,235,233,199,20,245,211,109,207,86,76,143,238,197,6,113,234,71,218,65,207,185,233,245,168,73,61,
+62,193,110,1,199,223,189,206,71,25,224,199,215,220,159,173,52,160,57,255,0,66,181,4,147,200,189,108,158,59,227,131,215,174,58,243,214,128,38,58,108,25,198,65,207,35,49,196,58,113,208,221,228,19,211,131,
+211,56,246,105,211,226,94,1,140,14,188,196,164,103,39,143,150,252,30,125,0,192,236,15,120,118,224,241,107,105,180,103,25,188,99,183,182,51,192,28,244,224,147,237,138,92,231,165,181,151,28,18,110,231,29,
+250,252,163,145,239,215,241,24,160,9,126,194,189,0,128,118,201,137,58,126,55,141,248,231,147,142,244,163,79,3,24,22,184,255,0,174,48,159,110,3,93,2,121,227,3,223,140,3,81,0,196,18,32,180,81,237,119,115,
+129,158,114,8,3,147,208,30,190,244,229,18,12,97,32,231,36,127,166,92,49,24,236,55,17,140,242,112,78,63,28,146,1,96,105,164,228,176,183,193,25,59,108,225,97,147,200,228,221,126,29,115,206,79,161,120,211,
+33,236,235,145,215,109,164,3,145,244,185,227,175,208,119,193,6,163,88,231,108,1,26,12,228,113,116,191,134,67,185,199,112,65,60,99,140,82,155,107,145,210,56,87,24,36,153,162,32,142,248,195,224,250,244,
+56,231,216,80,3,134,154,188,0,232,188,142,12,106,185,25,4,143,150,233,125,120,253,71,38,151,251,61,129,229,162,199,63,194,163,158,189,77,230,49,245,28,99,218,155,229,221,100,2,150,199,0,117,32,158,253,
+10,185,252,49,129,140,241,205,70,96,156,159,245,54,196,30,152,56,201,252,243,223,158,127,46,192,19,125,152,40,254,30,59,101,185,233,207,203,120,49,207,28,159,165,34,198,71,76,100,158,168,164,131,248,54,
+160,216,233,159,207,165,48,91,204,51,136,163,239,192,86,253,50,72,227,61,250,96,246,167,8,39,7,34,24,198,6,57,70,207,25,227,57,43,142,63,78,196,154,0,152,35,231,25,32,127,185,23,78,70,14,235,167,245,246,
+206,122,142,239,17,158,9,36,19,216,139,124,122,244,243,115,252,248,239,222,161,17,206,121,48,174,6,15,49,171,103,158,193,151,190,125,121,198,1,165,10,253,90,8,198,58,230,24,49,193,255,0,107,229,61,64,
+232,50,112,51,234,1,59,43,40,206,243,215,140,24,125,61,22,114,127,48,50,56,237,77,51,50,255,0,203,86,7,177,243,10,247,227,63,189,39,215,167,166,125,170,47,148,140,53,188,39,184,205,180,4,142,217,4,76,
+184,224,156,118,239,200,167,4,140,41,204,49,103,211,236,227,35,61,78,22,67,131,248,245,7,191,64,7,27,185,71,43,46,64,207,91,140,147,233,129,231,17,239,211,158,220,102,157,246,235,144,114,38,199,124,121,
+177,144,122,142,132,158,152,244,0,96,84,97,160,3,12,168,167,128,66,197,42,231,212,241,112,49,215,56,219,131,236,105,79,217,219,163,75,244,88,221,78,79,60,31,59,35,3,167,225,140,100,224,2,95,237,27,147,
+140,220,57,237,128,214,96,96,127,189,25,235,235,156,143,106,67,127,114,220,9,223,61,199,153,99,223,145,214,35,215,208,30,221,58,83,64,76,2,36,157,64,231,130,227,60,100,231,50,117,193,198,9,60,31,122,111,
+155,183,165,196,234,14,122,159,98,7,252,182,7,233,158,58,247,197,0,59,237,51,48,249,167,152,100,113,137,108,136,231,60,159,244,102,224,158,78,59,113,233,69,51,206,35,4,93,203,201,57,249,192,57,207,171,
+76,73,245,35,145,245,57,162,128,60,208,50,156,103,96,25,231,107,92,14,253,112,110,72,199,211,29,120,169,82,84,25,218,203,234,14,38,252,254,105,192,246,28,247,235,235,154,45,231,207,205,193,29,51,117,115,
+200,35,39,27,162,32,254,94,131,218,172,164,23,7,4,4,62,159,233,76,63,60,219,231,183,25,239,245,32,128,104,44,199,144,48,217,224,145,158,135,174,65,144,143,92,12,16,79,108,213,148,144,140,229,73,36,103,
+28,228,131,237,180,131,219,161,234,49,245,204,17,92,12,19,28,76,70,115,155,177,235,199,223,135,142,112,51,131,206,123,212,193,101,31,122,11,124,231,189,196,71,140,142,135,201,4,30,185,29,50,48,125,104,
+3,77,102,101,228,161,92,115,196,110,113,140,241,247,112,121,61,120,200,233,219,50,253,168,19,150,216,70,63,142,25,120,193,246,36,241,158,228,140,146,7,78,115,145,118,147,186,59,92,30,222,108,39,28,14,
+9,16,158,153,56,231,168,237,222,216,17,245,255,0,68,30,131,206,132,156,131,208,145,18,142,57,227,56,254,64,2,215,219,20,115,149,7,167,202,215,40,51,142,114,21,128,244,233,205,57,110,212,96,146,7,115,153,
+38,24,199,60,121,141,255,0,214,250,14,145,34,219,244,102,179,234,7,13,23,233,251,134,207,111,94,122,26,178,18,215,187,89,96,129,247,140,93,184,39,136,134,79,29,113,207,29,104,2,69,186,92,240,201,192,25,
+253,249,0,231,61,1,4,122,246,247,197,76,183,108,56,89,15,35,130,179,147,142,7,24,88,241,143,204,128,9,35,29,4,130,213,185,221,107,142,6,21,137,199,96,73,242,192,193,29,62,149,102,56,108,212,240,176,150,
+246,97,156,143,196,244,207,160,30,180,0,137,120,255,0,243,241,32,56,237,116,234,15,25,207,250,162,122,103,160,236,115,198,42,210,93,72,79,23,50,241,208,253,166,83,143,66,127,112,59,227,142,115,215,142,
+149,34,165,160,193,37,87,156,112,172,113,233,209,177,223,184,25,32,30,57,169,130,91,28,16,209,14,224,152,147,235,193,57,4,99,215,250,102,128,17,110,103,228,11,167,7,7,59,174,37,57,246,193,69,233,223,56,
+192,245,169,22,226,232,224,125,168,0,122,98,73,73,31,248,240,245,237,143,198,151,203,183,60,153,211,183,2,37,3,156,140,128,135,142,48,73,29,114,120,205,74,177,219,227,2,114,115,128,54,35,47,57,247,117,
+207,126,114,63,158,64,26,36,185,60,155,150,233,212,59,142,120,227,248,179,193,193,228,131,201,199,122,176,159,106,99,205,201,61,254,102,4,99,56,3,149,57,245,232,7,182,72,203,150,56,72,199,156,204,61,54,
+49,199,183,250,210,121,61,14,79,174,51,79,88,96,61,93,206,122,12,46,67,12,255,0,8,98,122,246,198,125,9,160,9,227,75,225,141,183,33,122,246,244,207,162,0,115,223,142,189,48,79,22,81,111,243,205,219,112,
+123,35,30,58,114,54,14,190,191,136,28,241,72,195,111,209,203,12,15,246,87,32,251,6,207,61,57,25,7,158,1,38,165,88,237,16,1,251,207,98,221,251,255,0,17,193,246,237,215,29,77,0,105,42,94,113,254,151,33,
+246,16,176,237,244,3,252,77,78,130,239,254,123,57,60,224,249,17,19,142,156,150,193,252,243,236,122,86,64,107,48,72,221,156,99,35,48,142,78,121,63,33,7,182,70,64,206,56,167,121,150,153,24,76,242,57,87,
+139,142,79,92,68,71,24,228,156,122,122,228,3,117,126,214,57,243,88,227,4,255,0,163,192,63,169,0,15,82,123,115,128,121,120,123,158,1,119,108,142,209,219,12,254,114,30,221,113,215,175,173,98,9,173,144,140,
+163,18,57,226,101,35,39,253,216,241,211,29,49,223,208,98,117,185,183,56,204,51,156,244,109,236,120,28,116,242,136,199,79,195,29,59,128,110,70,210,145,201,159,7,140,3,100,132,227,56,251,204,79,67,130,71,
+66,115,211,154,176,178,74,62,238,225,143,239,79,98,59,140,100,101,115,158,199,118,115,158,79,124,49,52,24,39,236,243,16,87,143,189,140,241,207,16,238,39,4,254,57,244,34,164,18,71,144,22,218,124,241,208,
+200,57,56,60,127,163,103,160,231,4,243,193,246,0,221,243,110,48,54,133,232,57,107,171,49,198,79,111,52,227,240,192,231,140,243,151,137,110,79,44,51,201,206,46,109,63,172,189,126,156,16,5,99,9,148,100,
+8,110,64,30,161,223,212,255,0,207,1,192,245,227,182,114,122,188,78,221,160,189,39,28,15,42,71,7,174,120,242,113,142,188,159,76,96,231,128,13,193,45,199,27,16,30,199,116,246,141,211,233,118,189,58,227,
+0,117,231,165,72,26,243,56,2,60,113,255,0,45,173,128,3,177,0,93,147,215,56,35,174,77,97,139,137,49,131,105,120,115,255,0,78,210,28,245,237,229,3,199,60,131,199,0,243,197,74,147,185,5,86,198,248,241,200,
+22,183,0,117,24,206,213,80,64,25,207,78,73,60,243,64,27,195,237,7,3,48,103,208,203,23,126,231,109,200,24,198,48,70,125,251,225,118,207,220,91,103,161,38,83,237,216,79,146,65,227,131,142,248,200,172,120,
+229,184,201,63,101,190,3,35,27,173,39,0,116,232,78,1,254,67,158,115,210,200,185,112,112,109,111,179,234,45,38,252,113,147,129,211,212,126,6,128,52,21,39,29,36,181,94,163,239,72,120,247,196,196,231,3,36,
+246,167,132,144,114,211,90,17,140,97,124,242,71,94,159,188,3,63,253,115,212,138,205,251,67,28,6,130,245,121,224,180,50,100,116,234,55,122,19,144,120,252,177,82,125,162,47,226,142,224,227,60,121,64,31,
+67,215,60,231,28,113,154,0,182,219,207,75,136,72,3,24,88,229,56,233,220,200,9,201,29,193,56,24,227,25,46,86,35,173,200,235,213,96,147,129,234,6,9,7,158,112,115,85,86,238,219,35,11,55,64,79,238,162,199,
+28,242,24,103,3,252,125,42,65,123,106,114,56,237,193,183,135,57,3,212,14,123,244,201,61,58,154,0,183,190,44,100,92,103,35,167,147,38,8,29,185,7,158,185,200,252,65,206,64,241,255,0,20,196,99,214,22,232,
+121,255,0,158,13,144,79,39,215,28,114,5,68,183,118,103,239,108,0,116,6,40,71,126,56,40,72,207,64,63,28,246,19,45,205,143,247,163,7,221,45,207,7,182,60,177,142,228,28,245,234,15,52,0,129,224,83,159,180,
+183,3,188,12,71,36,127,211,145,4,14,123,114,58,250,23,153,237,71,31,106,3,215,17,237,39,158,192,216,243,198,50,120,25,227,7,165,76,179,218,112,60,216,199,78,49,107,156,113,208,24,115,219,24,193,199,226,
+106,101,123,54,206,94,30,160,2,99,181,24,192,192,31,234,6,123,123,156,19,146,104,2,184,184,128,116,188,62,255,0,41,35,63,133,142,123,241,207,31,74,148,79,1,28,221,49,233,252,44,61,250,253,144,19,207,79,
+111,165,72,26,209,184,89,34,29,50,54,90,245,198,63,231,145,36,147,158,195,128,15,181,59,22,221,4,144,28,255,0,211,11,71,206,71,115,228,18,58,251,115,140,156,117,0,139,237,16,12,15,180,130,113,199,223,
+231,25,36,127,199,175,78,199,140,242,114,51,78,75,133,98,0,152,17,156,131,185,135,124,118,179,39,142,184,32,156,115,211,20,243,28,60,99,202,227,210,24,23,223,60,68,1,207,168,227,245,194,8,227,39,59,148,
+2,57,62,84,92,122,143,245,92,19,145,206,65,32,245,237,64,18,249,225,128,253,226,15,99,52,131,32,245,36,125,143,215,156,146,14,122,1,140,131,207,113,202,188,99,185,204,140,121,239,207,216,255,0,159,227,
+211,152,140,17,182,112,65,30,170,138,57,232,48,68,44,58,158,157,191,74,105,129,70,48,231,255,0,29,252,184,131,3,220,224,126,153,32,19,125,163,104,5,165,128,231,141,172,242,113,215,31,118,203,145,215,24,
+32,12,250,102,148,93,40,28,249,13,223,137,164,31,167,144,189,179,216,96,241,198,106,15,34,67,146,37,80,61,216,242,70,70,0,242,177,199,231,147,205,48,193,32,198,93,24,227,176,4,254,169,158,221,50,79,29,
+248,160,11,95,106,7,238,172,99,185,253,252,188,147,199,247,63,192,142,79,20,211,114,249,229,109,206,125,103,126,123,127,112,103,240,57,253,42,175,147,40,229,101,24,237,133,92,251,117,95,229,206,123,19,
+154,105,142,110,50,217,227,159,221,231,182,15,240,158,15,167,31,143,74,0,180,110,14,9,2,221,125,79,218,49,201,255,0,182,125,122,247,60,247,245,104,157,216,253,232,7,96,124,232,207,168,7,6,63,228,122,251,
+243,85,130,184,227,114,131,211,6,38,192,255,0,190,87,250,144,59,246,161,140,192,1,190,34,7,64,99,113,159,79,225,231,241,200,30,192,228,0,89,50,177,235,44,32,117,255,0,88,132,241,158,132,1,245,60,119,3,
+214,154,103,3,172,145,19,158,114,224,241,237,134,206,113,206,72,3,233,192,170,204,210,12,159,244,110,156,230,22,224,231,168,195,41,199,127,188,0,199,182,106,63,50,67,144,126,202,217,225,112,142,48,125,
+193,152,103,240,63,67,140,80,5,243,60,39,130,98,35,191,221,199,30,135,120,63,129,207,76,113,192,160,79,16,25,92,17,211,31,187,192,247,226,76,231,29,62,152,24,228,213,31,49,193,218,69,185,35,166,216,88,
+242,121,237,114,70,126,152,245,230,141,239,143,185,9,255,0,182,12,61,250,249,196,250,119,198,59,117,200,5,211,112,71,65,23,67,201,116,28,115,223,115,15,204,231,29,115,221,166,71,60,147,111,130,9,199,157,
+24,245,235,132,36,119,239,223,39,29,69,63,58,67,140,68,128,140,140,136,229,29,127,221,148,227,211,0,127,245,129,37,192,31,234,211,7,39,136,230,233,206,7,37,207,63,212,144,6,104,2,209,145,7,12,109,201,
+35,156,75,23,169,207,57,82,115,239,219,138,97,149,122,131,14,223,250,235,16,7,240,14,185,247,235,158,252,117,132,61,198,120,142,33,215,180,217,227,140,242,158,254,217,231,212,154,66,46,155,254,89,197,
+248,25,137,3,212,124,188,18,73,200,36,113,156,227,154,0,155,204,201,255,0,85,3,129,158,89,243,219,185,19,12,159,78,189,61,122,175,153,23,123,91,76,31,226,105,152,17,129,239,47,79,207,25,235,218,160,219,
+115,208,196,9,24,232,207,130,57,246,60,228,30,164,140,96,103,209,119,93,169,31,186,3,142,71,154,70,61,136,3,61,62,148,0,242,214,253,173,236,23,175,38,228,112,62,141,47,184,25,199,81,156,115,72,76,103,
+238,199,105,131,208,173,210,140,143,78,36,31,215,176,207,20,161,238,128,230,5,56,239,231,51,12,117,234,33,232,7,191,126,163,165,2,75,172,227,236,202,199,29,164,108,231,232,85,127,83,158,223,80,8,203,39,
+82,214,234,57,192,107,178,7,166,6,217,125,51,193,227,177,227,146,221,214,248,230,226,204,28,116,251,90,231,63,83,56,31,161,254,149,99,117,223,83,104,0,199,252,245,193,227,25,3,44,6,65,227,223,215,20,129,
+230,110,77,178,12,145,195,52,100,243,254,243,145,239,235,198,15,36,80,5,125,214,171,201,187,181,11,207,34,120,219,156,122,153,9,246,60,227,175,61,77,52,75,107,156,45,205,177,234,114,38,128,122,227,163,
+100,119,224,131,197,90,102,0,18,214,177,54,7,115,0,36,247,28,74,59,113,215,220,251,69,231,198,7,54,145,143,64,30,3,250,155,158,62,152,63,214,128,32,47,110,115,153,109,136,233,243,75,111,156,99,29,114,
+63,12,140,228,142,9,166,98,213,143,50,90,143,251,107,103,199,110,50,135,39,35,211,130,79,190,103,23,41,207,250,44,125,176,124,200,186,142,255,0,241,243,131,249,96,251,245,165,55,0,146,69,188,96,28,244,
+146,18,122,103,159,244,131,207,110,156,12,116,236,1,92,173,175,240,220,65,232,118,53,139,30,185,237,15,61,190,159,133,11,20,108,56,149,48,57,36,37,139,3,199,83,254,140,123,243,206,115,142,181,96,75,27,
+16,76,39,175,103,132,250,103,10,179,31,167,28,122,142,41,25,163,60,8,100,25,207,63,187,207,94,167,50,169,192,245,36,142,157,115,200,5,73,34,94,62,116,192,61,124,157,63,145,220,228,218,14,221,48,49,200,
+206,122,212,94,76,71,4,11,115,199,86,77,52,28,31,79,244,28,30,159,65,245,57,23,200,136,14,81,128,199,67,176,231,211,238,74,65,245,238,123,243,218,61,177,103,133,246,193,4,125,71,92,14,123,231,167,126,
+244,1,83,201,76,225,97,136,145,233,6,153,140,115,198,126,196,65,57,231,166,63,83,72,208,144,70,32,39,24,39,108,58,112,29,73,56,255,0,66,4,224,250,117,233,140,26,181,229,65,156,136,144,158,188,9,1,60,99,
+36,169,36,251,241,248,241,77,101,60,108,133,0,7,171,25,123,140,247,94,120,61,198,71,106,0,174,32,148,130,22,22,92,158,214,218,121,207,94,64,251,63,82,59,144,113,248,210,121,55,11,200,141,148,3,215,200,
+211,193,231,145,210,216,30,79,127,199,156,115,96,163,156,97,33,3,211,116,217,253,34,244,255,0,62,145,155,118,198,90,11,114,196,227,143,60,130,59,117,67,215,158,131,7,249,0,32,142,237,70,239,223,114,79,
+252,177,177,83,235,158,45,14,65,233,212,122,142,6,105,140,110,250,1,48,3,131,152,237,23,167,251,182,164,12,118,60,30,188,113,72,97,228,255,0,162,193,199,82,166,97,199,185,216,6,49,211,129,211,62,134,163,
+48,175,123,75,66,73,198,88,206,220,115,255,0,77,7,63,151,79,126,0,28,126,211,159,153,165,28,118,123,64,8,207,175,144,58,117,60,31,229,128,77,112,196,225,165,35,61,166,179,254,144,251,250,115,223,28,83,
+86,18,184,255,0,69,176,234,6,10,207,147,245,204,220,125,125,248,226,130,174,48,5,181,130,129,158,211,115,142,252,185,3,211,184,232,57,238,1,63,153,117,215,124,227,28,103,206,182,244,234,63,116,9,245,235,
+192,227,24,167,7,187,36,98,123,145,140,255,0,203,196,43,200,228,224,121,103,158,152,252,176,48,51,158,204,195,172,22,195,219,7,166,51,200,105,1,193,231,4,129,232,123,10,106,202,224,225,82,221,113,208,
+140,14,121,238,211,140,254,0,244,252,128,52,12,151,89,207,153,114,199,142,77,220,24,57,198,120,17,243,140,156,18,62,190,129,165,238,57,255,0,94,219,143,57,187,132,103,215,56,80,123,119,192,254,185,230,
+71,60,152,225,231,159,188,70,57,24,192,89,200,4,103,56,219,207,126,132,82,101,159,56,142,50,61,203,117,28,99,155,176,63,201,160,13,33,231,16,127,215,15,80,46,226,99,219,128,120,35,3,142,158,163,36,102,
+154,233,47,116,157,129,198,75,92,199,147,248,150,193,56,255,0,61,9,207,221,38,78,32,76,241,247,89,84,14,135,156,221,117,199,161,200,246,205,56,181,192,27,66,70,7,82,55,198,195,61,120,62,107,30,49,249,
+230,128,44,136,229,228,8,167,35,57,255,0,143,216,113,245,192,45,142,61,253,176,41,222,92,192,231,236,247,61,184,23,48,28,143,247,140,103,56,28,244,61,234,147,27,204,100,70,155,79,25,67,24,233,211,161,
+39,182,56,56,235,192,21,11,73,120,120,43,248,238,67,215,25,200,8,216,32,28,115,200,233,129,129,64,26,13,20,199,172,23,96,115,159,223,193,211,211,136,200,199,249,199,74,174,200,203,200,181,184,56,238,94,
+19,245,235,106,221,123,246,63,144,170,12,46,123,23,62,187,95,167,29,63,213,140,31,95,254,184,161,22,236,156,170,190,123,228,240,123,255,0,207,22,207,110,220,245,245,160,11,14,179,18,72,179,152,131,142,
+178,91,140,143,198,207,140,129,142,14,57,228,240,50,192,178,156,255,0,161,220,41,201,25,18,90,158,253,207,217,15,234,62,190,161,140,183,131,134,36,96,119,102,25,235,199,252,122,54,122,245,3,182,42,34,
+46,57,220,196,115,159,245,175,248,28,27,0,123,17,193,62,252,80,5,163,12,227,165,180,160,28,100,249,182,100,231,185,199,216,79,248,103,215,154,99,9,99,235,111,114,79,180,246,131,183,253,131,251,241,158,
+184,227,147,85,240,231,239,72,63,239,232,207,183,91,44,254,25,29,122,102,148,100,245,184,84,192,35,137,73,56,238,126,75,32,51,207,60,14,63,26,0,127,154,195,165,164,222,197,174,237,87,158,189,70,156,123,
+127,158,245,50,220,77,140,11,102,95,76,221,195,252,255,0,178,193,207,39,7,57,205,65,177,15,31,106,69,61,255,0,121,32,206,72,35,57,180,7,60,158,127,35,232,239,42,46,247,81,117,198,119,147,142,185,28,218,
+19,158,252,182,61,185,160,9,69,205,194,244,89,51,201,255,0,143,216,253,125,126,194,51,159,167,94,180,209,117,114,58,164,156,142,66,223,168,231,147,218,197,184,233,215,30,195,131,65,68,233,246,132,35,128,
+8,57,231,7,142,45,128,207,57,193,192,207,81,140,212,139,28,125,68,234,61,114,192,14,156,158,97,192,35,145,237,200,244,52,0,130,238,231,156,172,234,51,222,248,113,248,139,116,24,247,227,235,222,153,246,
+187,160,73,13,40,7,210,255,0,62,190,216,227,3,60,247,206,58,85,129,28,96,28,220,195,143,79,54,32,63,31,221,126,120,57,63,78,140,242,96,63,242,210,35,199,105,161,25,207,97,202,254,24,198,115,64,16,181,
+237,192,3,153,177,193,255,0,143,210,9,3,32,103,243,198,6,63,74,136,223,72,9,39,237,7,142,215,142,123,1,215,122,156,115,147,158,122,231,218,240,182,132,244,104,189,64,50,68,223,65,204,128,142,220,245,235,
+212,245,141,173,211,142,34,57,232,60,216,249,57,193,4,110,108,96,28,126,28,158,160,128,82,58,131,156,12,207,200,192,197,212,199,245,243,70,57,224,0,15,175,181,70,218,132,185,57,146,225,73,206,72,150,102,
+199,94,239,62,222,126,131,223,158,183,204,49,244,101,137,176,120,219,58,40,231,131,146,85,187,156,156,125,114,57,33,10,66,63,229,140,61,255,0,229,230,60,227,174,120,131,61,125,241,193,231,29,64,50,90,
+246,115,202,220,94,131,212,109,57,246,201,205,250,156,117,29,61,142,57,204,98,238,228,146,12,215,196,250,249,104,115,128,127,234,34,15,56,227,177,254,90,172,32,232,97,143,233,246,148,200,235,158,4,32,
+142,15,76,231,36,251,85,114,45,73,59,161,65,245,188,32,14,231,150,132,175,29,176,125,104,2,131,92,204,73,30,117,209,39,254,152,196,71,215,157,64,240,79,222,233,156,116,199,6,51,36,152,230,107,161,143,
+68,183,94,153,207,45,120,220,159,175,212,117,173,54,22,163,254,88,197,142,227,237,234,125,59,24,120,56,244,231,161,61,170,19,228,156,237,181,128,227,161,251,122,143,195,34,0,57,255,0,235,241,64,20,1,149,
+185,47,118,217,207,104,61,15,57,23,7,145,145,211,191,215,20,5,108,225,77,210,156,15,189,246,113,159,175,239,79,56,199,67,130,127,91,77,176,114,109,34,94,65,24,212,6,7,126,134,220,245,250,243,197,35,60,
+67,159,179,198,14,49,159,237,5,207,25,232,126,198,123,103,131,234,57,234,8,5,99,28,217,12,30,124,30,155,163,136,159,124,17,112,15,28,240,120,199,113,64,138,102,56,50,79,158,188,67,27,123,18,115,47,208,
+254,29,49,210,97,34,182,118,34,142,219,70,164,71,4,28,0,194,215,63,67,199,76,210,52,143,131,242,0,14,58,95,74,70,71,96,86,216,103,24,252,125,199,20,1,0,180,102,234,110,24,231,147,229,34,224,122,128,178,
+118,199,28,231,60,143,119,11,103,92,147,246,150,235,199,150,224,145,216,29,174,125,243,134,0,254,3,40,210,190,112,16,3,140,241,121,47,62,228,24,1,108,231,234,59,231,179,26,66,65,253,200,39,158,69,196,
+172,123,255,0,118,220,30,58,255,0,58,0,151,108,120,201,73,212,224,228,148,185,25,207,92,129,32,227,131,219,143,208,64,68,67,32,37,206,114,8,202,93,145,201,228,112,249,28,131,198,105,68,236,120,42,160,
+142,6,110,102,95,108,2,96,4,118,207,57,247,166,52,143,156,100,224,103,24,187,186,35,158,120,43,14,78,63,222,29,232,1,26,88,151,32,172,156,99,150,134,247,143,202,126,163,3,29,178,120,228,112,223,50,22,
+4,227,112,200,0,27,109,69,191,95,51,142,253,57,30,188,138,80,79,63,43,140,116,34,226,247,61,243,209,1,235,211,190,56,168,95,102,127,128,156,99,231,150,240,156,140,231,157,163,35,145,146,112,51,154,0,60,
+200,14,112,49,129,218,215,84,207,79,246,101,63,224,106,3,44,9,159,148,176,246,181,213,126,86,57,227,1,137,224,117,39,57,199,106,145,144,30,64,135,140,159,245,247,67,29,121,232,15,65,198,115,158,120,237,
+81,50,66,62,252,80,18,115,199,157,117,145,235,213,241,147,215,25,28,251,208,2,52,176,54,72,132,158,50,9,181,213,19,61,79,167,215,156,243,215,140,226,152,38,133,7,250,168,198,121,249,161,213,79,60,156,
+96,227,28,113,131,211,143,165,33,138,203,28,199,0,207,171,184,253,90,76,146,61,79,94,180,223,46,204,156,7,183,78,56,204,140,199,24,198,14,217,6,58,247,198,122,131,64,10,103,136,131,149,183,32,116,221,
+22,160,49,211,174,81,135,168,234,79,190,122,192,236,173,247,98,129,187,141,177,222,112,56,245,128,159,94,158,217,207,105,26,218,216,229,132,214,170,59,157,242,244,237,144,178,147,211,212,14,127,26,133,
+173,109,136,36,93,91,15,248,19,19,158,49,195,74,49,219,130,27,30,244,1,24,115,140,11,91,115,215,157,151,89,245,31,242,230,112,9,232,59,99,154,99,110,56,2,209,15,111,145,111,185,62,131,110,156,121,39,24,
+231,212,122,84,194,206,216,143,154,123,64,15,57,100,86,232,51,128,12,221,251,19,128,121,231,61,26,108,109,59,79,98,163,174,118,64,61,249,253,249,253,72,244,38,128,33,41,42,140,155,49,236,113,120,78,61,
+179,99,159,195,29,185,232,42,61,211,14,150,139,235,131,21,219,100,123,255,0,160,14,56,250,15,90,155,236,182,138,112,46,173,127,224,63,103,25,235,198,67,156,246,3,57,235,77,107,107,92,12,92,65,147,207,
+45,9,57,3,128,64,61,64,57,57,39,249,208,3,85,230,231,253,22,31,92,181,189,198,51,236,62,201,158,190,221,121,207,0,131,51,12,230,27,97,233,139,89,88,158,50,78,26,196,242,7,247,136,253,121,5,173,185,225,
+103,140,158,126,233,140,18,112,122,149,206,112,120,231,166,49,197,40,134,21,227,205,65,215,4,184,94,199,174,220,158,125,126,157,40,1,140,211,145,254,162,28,28,227,22,50,103,211,144,44,24,244,25,193,245,
+207,34,162,43,63,57,141,15,57,255,0,143,73,136,95,166,205,44,159,199,61,120,25,29,102,242,34,32,231,203,124,14,162,78,121,245,37,189,184,224,142,153,197,48,65,10,255,0,6,210,49,247,103,84,245,57,225,191,
+195,143,90,0,140,44,173,247,163,181,94,58,189,165,222,122,228,240,52,134,235,140,251,159,194,164,242,137,224,155,110,189,62,205,122,48,126,163,72,29,143,24,199,4,245,29,30,176,196,57,8,252,231,57,190,
+97,156,118,1,102,92,14,220,131,245,206,77,6,56,129,249,162,102,30,166,254,124,156,142,58,72,71,126,135,211,161,160,8,252,145,208,155,85,236,63,209,46,155,255,0,66,211,23,143,95,169,207,169,119,145,131,
+129,37,184,25,24,219,97,112,196,242,48,50,52,255,0,215,130,71,60,102,130,168,15,17,31,151,56,6,254,236,254,60,75,211,28,113,208,250,247,67,180,156,249,27,142,56,63,109,190,98,122,240,112,223,168,39,30,
+131,60,0,72,176,19,252,113,145,233,253,157,58,158,157,62,107,32,1,232,51,234,64,245,166,155,118,94,20,140,158,120,179,114,7,30,130,200,14,157,115,142,152,60,226,159,145,255,0,60,99,0,19,195,92,234,57,
+198,123,237,152,28,99,161,35,241,29,164,222,152,25,72,65,0,1,155,141,76,96,142,199,247,227,39,252,61,40,2,175,217,164,57,5,139,117,235,105,50,143,167,203,111,31,92,96,3,199,94,56,2,148,90,18,62,97,1,207,
+60,199,118,50,125,198,205,191,151,29,185,169,252,196,96,126,91,83,142,8,251,70,167,158,64,36,100,77,207,108,243,205,52,4,201,59,45,240,78,78,46,181,76,245,61,196,220,3,207,191,234,0,2,11,70,92,109,91,
+76,144,65,196,83,18,126,159,32,201,232,79,35,30,244,166,222,98,6,196,143,159,238,65,47,81,220,229,151,57,24,3,128,73,231,218,164,80,133,127,212,219,156,231,173,230,178,191,135,19,122,247,24,60,10,122,
+128,184,196,54,88,231,150,188,214,159,142,153,3,121,201,227,177,234,48,79,83,64,20,205,189,206,112,35,92,158,114,109,101,98,61,201,51,255,0,245,189,57,160,90,222,245,81,16,61,112,109,102,94,220,231,19,
+28,231,7,39,183,106,208,14,132,96,65,167,2,122,127,164,234,192,251,147,243,47,67,207,185,61,186,82,141,165,190,104,116,194,50,113,139,157,92,55,127,89,14,78,71,61,143,60,156,114,1,156,96,191,94,2,217,
+158,255,0,50,92,166,73,231,254,123,116,198,56,24,61,184,166,148,188,24,221,253,154,15,7,151,186,24,63,79,55,29,125,73,36,122,14,186,101,34,99,204,54,75,158,50,46,245,101,201,246,204,163,211,185,244,199,
+20,27,120,184,45,21,183,35,248,53,13,67,61,79,80,211,14,227,190,71,176,206,104,3,48,11,214,60,127,101,99,167,204,215,220,117,25,255,0,89,207,215,61,63,42,79,244,149,28,157,23,167,83,37,218,142,255,0,223,
+102,231,60,1,143,199,131,157,99,109,1,25,16,64,195,32,227,237,211,231,219,254,91,6,246,245,29,50,113,154,122,219,193,222,52,92,103,165,204,204,7,111,188,39,207,56,245,160,12,112,243,31,249,107,164,47,
+97,137,166,237,245,35,62,216,227,220,246,77,242,231,6,109,44,250,98,107,144,58,251,50,241,215,140,143,165,109,125,158,215,186,40,7,210,73,92,158,113,142,110,71,30,189,113,249,208,109,172,64,57,17,244,
+28,17,33,244,63,243,248,49,237,235,142,58,28,128,98,103,39,45,62,144,123,28,220,92,130,9,3,131,251,225,129,192,252,251,154,122,121,24,195,220,233,89,231,24,187,186,35,130,48,73,46,91,130,127,33,154,213,
+22,122,105,31,50,71,130,127,184,65,199,94,9,187,29,51,212,1,156,145,158,115,76,107,13,45,137,59,95,28,15,148,22,247,198,62,212,192,122,117,207,175,4,208,6,107,27,117,36,249,218,65,207,28,94,79,219,158,
+235,237,235,235,142,5,32,146,44,227,237,26,118,51,206,46,39,56,250,225,78,123,114,20,255,0,142,135,246,126,152,185,219,231,3,220,170,144,115,223,254,91,147,207,110,69,52,218,88,169,198,233,87,156,0,99,
+82,112,15,92,121,199,158,58,244,29,197,0,84,89,45,250,153,237,56,193,56,251,73,31,94,64,233,158,14,121,61,121,167,121,150,160,156,207,108,114,6,72,23,57,193,29,179,142,112,123,2,8,245,227,54,77,190,154,
+185,47,36,160,246,30,75,17,158,121,24,152,125,58,17,212,99,214,51,14,155,158,39,144,14,49,254,143,39,182,71,18,31,208,1,249,100,128,53,94,211,57,243,163,60,118,55,132,18,123,0,163,4,224,244,227,191,32,
+231,42,68,71,144,234,123,15,221,222,19,140,251,200,78,14,120,227,60,115,197,70,241,105,196,0,39,45,158,185,130,80,71,95,124,231,158,14,70,57,233,210,163,251,46,158,122,75,25,7,156,24,136,39,220,29,227,
+62,153,39,191,57,205,0,89,81,31,57,124,113,218,222,229,189,125,193,244,28,231,175,214,157,136,142,57,115,234,126,203,33,199,208,144,112,122,103,143,161,170,162,206,208,140,172,209,40,238,193,112,121,207,
+82,204,121,254,157,123,138,95,178,219,40,56,187,0,242,113,134,7,63,64,224,28,231,60,208,5,172,196,163,172,153,236,22,206,66,59,247,218,188,231,219,0,126,177,180,177,169,195,180,192,142,63,227,206,76,12,
+240,49,137,208,100,250,100,99,57,170,222,68,43,147,231,169,24,239,27,28,129,198,78,95,208,12,14,192,227,216,46,97,80,51,42,145,254,234,169,56,236,1,113,250,147,199,111,80,11,0,219,176,233,43,28,119,181,
+96,71,36,142,13,225,227,158,71,110,58,26,80,182,216,60,56,61,79,238,17,113,219,146,110,251,113,156,143,110,59,87,87,181,200,253,226,251,13,232,188,147,156,159,222,119,207,7,35,183,90,152,24,178,113,50,
+12,14,3,77,24,3,143,121,189,57,228,98,128,30,18,220,228,135,127,115,177,61,199,107,229,56,244,24,207,167,106,79,38,15,239,18,221,183,68,153,60,231,156,223,240,7,184,235,142,61,28,8,83,159,50,38,227,175,
+218,34,28,240,115,145,40,60,247,231,35,183,6,156,36,114,50,12,64,18,121,107,200,215,140,231,248,167,60,246,232,123,251,208,4,66,8,179,201,61,78,62,68,28,119,192,23,108,57,246,56,207,181,41,134,17,144,
+55,130,115,207,0,125,119,125,176,14,217,192,224,114,120,230,172,249,178,46,63,227,223,24,201,63,111,143,39,30,192,245,3,39,28,140,112,58,80,111,39,3,229,144,145,223,101,220,109,145,238,74,182,7,28,255,
+0,42,0,169,178,37,232,95,63,92,145,248,173,241,236,59,113,75,133,3,57,39,35,161,98,58,123,155,192,123,250,241,237,154,152,221,220,48,60,73,216,96,222,199,200,57,32,129,229,145,201,227,38,154,46,174,58,
+129,142,51,255,0,31,240,47,110,120,16,117,250,114,104,2,32,142,121,88,129,199,113,41,227,129,199,252,126,48,25,233,200,61,135,99,79,49,204,7,16,57,7,31,242,208,19,211,32,255,0,175,239,219,7,158,231,189,
+73,246,137,136,229,143,57,227,237,241,16,49,201,192,17,142,227,39,43,142,59,112,105,119,183,83,42,123,131,120,173,244,251,177,129,236,9,28,103,220,228,2,45,146,227,62,76,185,199,31,188,35,24,61,56,185,
+224,231,57,250,211,7,218,65,226,210,126,135,159,57,78,71,25,3,55,12,7,94,115,212,100,159,90,153,165,199,87,66,122,17,231,198,123,119,221,6,15,80,57,60,119,168,204,224,30,118,1,199,241,66,115,215,254,153,
+142,153,234,59,126,38,128,16,61,192,198,108,174,79,28,145,113,24,60,241,211,207,0,123,241,248,245,162,144,200,153,4,180,74,122,100,181,185,32,0,115,199,148,122,28,117,231,174,120,162,128,60,171,49,175,
+100,199,28,132,179,31,167,149,147,236,122,99,191,164,200,241,1,242,224,122,149,88,201,232,120,59,81,70,62,156,159,229,158,4,39,7,8,121,36,98,70,39,168,227,2,236,231,145,156,103,63,206,165,88,161,113,180,
+166,127,218,83,49,63,146,223,99,30,188,126,28,114,1,166,147,12,124,175,143,95,145,122,126,42,123,240,115,200,231,165,59,207,207,87,110,135,7,42,1,227,28,18,57,29,120,28,228,246,237,65,108,237,207,240,
+99,211,230,156,30,49,217,175,9,235,142,160,113,223,39,20,227,101,111,198,19,32,142,129,156,156,254,23,125,179,207,29,250,138,0,209,89,246,253,217,91,28,31,149,137,193,252,176,127,1,131,239,86,146,240,
+174,49,59,142,132,142,50,121,200,29,123,15,228,107,29,108,237,199,240,177,193,238,36,200,233,211,55,71,183,30,132,31,206,84,182,132,16,66,131,158,219,75,127,237,98,125,56,200,247,30,160,27,107,168,48,
+201,251,75,253,12,143,131,142,192,123,143,229,214,172,174,167,198,60,236,159,77,210,251,99,164,184,39,215,229,252,14,78,113,22,36,24,0,30,58,229,120,201,61,71,239,79,215,142,153,197,72,4,64,141,202,185,
+244,242,83,223,63,49,113,254,25,56,28,80,6,234,223,103,146,224,46,114,114,215,25,62,157,28,96,122,128,113,244,226,172,37,240,237,32,31,240,43,147,158,220,3,147,200,35,215,245,34,176,162,120,64,3,202,36,
+250,132,135,32,247,227,207,239,248,15,108,26,176,36,129,122,69,33,238,7,149,24,25,233,146,69,210,147,234,59,123,14,164,3,119,237,188,0,37,227,140,140,76,78,57,192,249,129,199,99,208,246,28,103,34,100,
+186,87,28,184,92,156,28,164,164,96,15,100,224,250,243,236,115,214,176,22,230,60,253,210,48,70,50,136,14,120,255,0,167,210,0,199,229,215,7,53,56,212,8,224,42,140,99,24,8,127,12,11,174,164,227,166,112,51,
+220,144,0,58,5,48,156,126,251,146,120,202,74,1,30,217,76,142,228,103,142,106,210,121,56,193,148,227,208,9,134,6,123,102,63,207,24,235,248,215,59,21,246,79,35,61,65,1,113,233,212,137,88,123,113,145,158,
+245,113,47,20,240,85,71,76,110,96,48,58,255,0,9,97,248,3,145,206,120,52,1,178,176,196,115,181,216,245,198,13,222,74,241,158,137,131,207,166,8,231,3,189,74,176,34,140,237,115,158,249,184,36,15,109,196,
+31,255,0,85,100,45,218,103,149,140,147,198,21,206,64,244,3,122,242,120,232,50,49,239,138,149,46,147,35,17,168,29,212,185,57,252,51,144,14,9,250,140,251,208,6,202,68,184,249,98,187,201,244,50,129,212,14,
+234,122,100,231,158,223,149,133,71,28,17,120,14,56,249,159,156,123,19,140,99,7,133,36,245,199,21,140,183,81,14,85,8,233,156,51,0,115,192,251,160,145,142,72,237,147,235,82,125,173,121,194,48,252,103,201,
+247,226,54,247,199,56,235,64,27,209,171,1,247,110,51,199,7,97,39,29,7,204,20,251,103,38,172,47,155,218,9,177,140,245,139,3,169,231,46,48,62,156,231,183,122,192,91,180,29,81,152,117,44,76,228,251,142,98,
+239,212,241,140,224,246,197,90,75,168,72,255,0,80,237,239,182,76,3,147,140,226,223,61,61,184,192,199,65,64,27,224,201,140,108,116,236,50,209,158,63,9,48,189,49,207,39,29,120,169,21,165,200,11,27,183,111,
+224,108,227,156,231,205,4,30,131,35,28,247,205,96,137,163,126,124,137,0,206,14,35,144,175,235,111,130,73,199,191,3,160,39,51,249,145,240,86,57,215,128,50,35,110,7,184,48,113,207,28,3,215,129,64,27,129,
+174,112,113,13,209,199,36,44,80,183,30,185,55,39,245,199,160,198,114,94,178,93,170,159,221,92,244,206,60,155,127,175,59,167,32,96,254,93,123,156,98,36,200,9,202,72,125,63,114,221,241,201,6,223,191,0,142,
+231,0,154,157,100,92,130,35,186,207,92,11,80,195,24,246,181,56,60,231,190,113,199,122,0,215,19,72,0,221,28,192,158,198,11,98,121,35,28,2,196,116,237,211,145,159,87,239,103,25,242,152,245,39,54,240,41,
+239,147,192,207,229,198,15,161,231,48,72,7,5,46,143,183,217,31,36,103,191,250,32,29,249,227,219,189,2,80,120,242,110,9,200,255,0,151,55,252,190,91,113,235,223,24,199,62,132,3,72,48,3,129,143,95,244,91,
+118,247,199,49,147,237,158,71,244,112,1,142,64,112,112,114,22,206,33,192,231,32,5,61,191,51,250,208,82,164,156,67,42,129,215,54,155,79,254,61,6,61,189,249,29,14,106,76,174,126,84,43,219,152,16,48,35,3,
+36,249,103,142,217,61,115,233,64,23,132,113,158,175,40,245,205,156,64,114,61,124,176,125,50,50,114,59,154,67,2,228,109,146,95,162,219,40,254,113,158,126,157,56,170,121,63,221,36,127,181,23,78,128,255,
+0,203,48,62,158,128,14,123,212,129,226,24,220,164,158,49,242,47,4,122,112,50,63,12,228,208,5,165,136,245,223,40,199,80,98,3,211,213,9,252,135,175,76,212,138,89,79,18,28,3,213,144,15,94,73,216,114,123,
+243,207,31,81,85,132,208,0,63,116,14,58,134,82,126,153,27,120,253,113,193,227,6,164,18,194,199,136,99,24,224,126,236,158,216,254,44,99,159,235,142,156,0,92,18,176,28,201,22,49,200,242,203,156,254,17,144,
+122,96,16,70,61,122,97,235,52,128,252,178,175,182,35,78,221,240,87,60,253,7,210,169,44,209,166,9,17,115,129,134,131,142,190,238,7,175,60,119,199,165,72,39,136,127,4,7,29,202,1,245,24,105,113,140,159,65,
+205,0,95,73,238,65,255,0,92,227,28,124,136,27,183,57,219,253,51,232,7,56,51,173,204,199,131,112,199,212,21,101,192,247,32,142,49,201,206,123,243,222,179,86,226,51,130,60,129,158,14,212,76,254,70,225,71,
+97,206,122,123,85,145,114,7,0,66,120,228,42,70,73,192,233,129,114,59,117,25,24,198,15,56,160,13,21,153,135,62,112,193,206,115,36,153,207,79,94,190,184,57,233,237,83,45,210,140,19,113,31,175,204,210,147,
+199,253,180,3,25,239,142,253,59,86,80,186,94,208,70,64,60,126,230,63,204,145,114,112,71,124,224,244,62,213,47,219,8,255,0,150,81,1,142,190,64,36,17,142,226,235,24,0,245,245,207,57,52,1,164,47,99,24,253,
+252,4,119,7,156,245,234,73,57,237,238,56,171,43,121,9,3,152,155,145,140,70,167,245,193,56,193,56,199,94,153,244,196,91,207,112,167,156,98,17,140,113,206,60,246,200,39,219,252,11,254,208,95,157,224,99,
+210,33,199,29,78,233,129,30,220,144,79,211,128,13,131,119,3,14,86,47,83,242,47,30,196,109,231,175,78,157,120,199,52,130,226,3,200,84,35,182,21,49,215,32,113,7,76,122,231,184,30,181,155,29,193,207,19,200,
+195,208,40,81,192,227,3,237,3,29,58,254,153,21,47,218,208,240,210,205,212,231,231,219,140,250,131,116,122,115,156,115,219,158,224,26,9,115,8,255,0,150,81,227,221,115,198,7,95,220,254,36,30,62,153,163,
+237,54,255,0,243,202,60,30,163,96,252,185,139,252,251,156,214,127,159,22,112,110,36,92,99,248,149,176,121,232,62,208,64,35,142,121,244,245,167,150,140,242,110,92,143,83,242,240,125,127,125,130,7,39,215,
+30,189,192,44,253,162,223,248,109,227,124,250,5,227,25,239,229,174,122,250,113,199,185,167,155,152,177,159,178,67,219,178,15,204,24,249,250,238,28,224,118,197,80,221,109,156,155,162,58,1,243,159,175,107,
+133,25,198,6,64,207,29,79,74,85,107,83,199,219,20,122,98,86,7,61,242,5,199,83,158,51,147,192,193,160,11,70,229,7,34,218,220,30,113,133,136,243,158,159,52,100,227,184,224,251,119,160,92,6,255,0,150,16,
+140,240,112,137,131,145,156,156,70,48,121,233,159,199,214,182,109,51,131,122,231,29,54,202,252,127,228,102,61,255,0,28,241,82,131,107,140,139,183,32,12,242,242,30,121,234,203,50,250,117,206,71,60,244,
+160,7,52,234,63,129,1,232,49,8,239,223,230,35,143,92,227,233,210,132,157,91,175,150,15,95,245,81,145,250,158,71,231,250,138,3,91,14,124,210,65,247,157,187,99,254,127,51,207,160,252,115,72,211,89,128,50,
+35,127,67,33,159,159,65,205,209,231,212,131,249,208,4,166,226,53,231,124,89,234,115,4,96,125,67,103,28,115,249,243,142,104,243,34,96,73,104,177,223,17,198,58,140,116,206,70,57,36,251,131,154,172,38,181,
+108,237,130,19,143,246,166,192,235,211,253,32,143,207,175,29,104,50,198,63,229,214,18,51,211,247,184,207,166,68,164,122,224,158,184,237,206,64,38,13,109,156,31,33,179,156,228,46,6,114,79,10,199,145,199,
+124,103,30,212,240,214,71,254,90,88,175,61,88,198,63,244,38,246,232,125,61,249,169,230,161,198,108,227,207,80,67,205,249,252,215,9,232,59,250,140,156,96,134,81,146,126,192,58,28,16,211,145,211,176,89,
+223,60,246,198,123,30,121,160,11,166,75,33,143,244,139,19,143,120,15,161,3,150,29,120,224,247,235,64,107,50,63,215,88,100,247,34,46,120,231,27,95,215,175,61,251,213,3,32,228,155,50,61,243,56,236,121,57,
+145,79,110,135,159,96,51,72,37,140,245,182,3,28,225,190,209,207,92,242,92,41,231,60,228,231,218,128,47,159,176,231,59,236,78,126,246,25,20,103,208,129,32,207,215,167,233,65,75,34,7,207,96,123,252,211,
+109,207,97,192,147,30,160,255,0,142,107,60,203,0,228,193,24,231,175,155,34,128,71,28,102,70,199,211,25,235,212,230,144,207,14,1,40,171,223,34,96,160,244,238,234,114,59,3,156,227,232,40,3,75,203,177,35,
+254,92,8,239,137,36,112,78,59,224,183,57,239,147,129,142,249,168,136,176,12,0,54,71,130,63,214,200,184,199,56,219,180,30,127,92,145,205,83,243,80,143,149,144,3,211,247,240,231,183,190,121,28,1,211,129,
+158,248,82,64,207,250,67,47,183,155,110,121,7,168,220,63,14,71,7,223,6,128,45,31,236,241,193,123,117,224,112,178,76,78,113,219,129,159,111,203,232,229,251,30,0,89,225,3,254,186,56,250,117,7,28,251,158,
+254,181,75,204,140,253,235,198,228,113,251,219,112,1,206,58,229,114,120,29,59,243,147,198,87,116,29,77,244,160,140,156,137,109,201,29,49,129,184,254,93,79,62,148,1,109,141,184,57,91,136,176,58,225,216,
+158,252,240,135,131,207,79,79,194,163,118,135,131,230,143,78,26,92,140,122,98,47,240,231,145,142,208,111,182,83,205,253,207,225,228,96,231,184,202,99,191,60,96,228,231,52,241,45,177,24,251,125,199,67,
+252,86,224,250,96,128,128,115,238,48,115,129,215,128,0,203,8,255,0,150,206,122,240,4,228,125,51,228,176,239,234,113,215,0,98,133,184,132,112,12,199,175,35,204,60,253,60,145,252,184,231,241,107,8,177,197,
+245,222,79,78,45,207,191,27,163,94,220,227,28,99,169,237,31,201,222,234,237,186,96,236,182,239,158,64,242,193,247,235,131,158,192,208,4,205,117,18,156,129,55,253,240,48,114,115,159,154,18,70,9,4,99,167,
+124,116,166,181,202,30,139,47,78,234,163,223,248,96,3,56,231,131,211,60,10,131,100,36,131,246,139,178,216,39,148,180,81,199,182,236,145,215,140,122,227,158,105,26,56,1,4,181,195,19,208,172,118,192,140,
+17,140,112,73,233,199,56,247,28,80,4,230,227,61,18,79,248,10,171,158,50,56,2,48,15,78,185,233,218,144,76,1,199,147,112,72,239,229,68,1,244,229,144,254,57,31,206,170,98,35,159,222,94,116,199,48,195,147,
+219,141,169,215,175,124,231,156,28,211,74,192,63,138,245,142,57,220,170,0,239,131,144,185,199,167,231,200,20,1,121,167,192,249,173,101,61,113,152,162,99,220,116,88,199,31,135,53,17,156,18,7,217,38,193,
+61,62,202,8,227,223,203,3,167,28,127,66,77,93,139,198,12,231,217,196,103,175,60,239,233,199,7,7,208,102,152,98,64,121,138,83,192,231,22,227,146,7,39,231,25,63,135,208,231,154,0,188,92,18,15,217,39,28,
+245,54,160,117,199,32,236,56,234,122,16,78,57,52,155,198,112,45,174,15,56,207,144,252,246,224,14,115,212,246,250,103,129,157,44,106,64,204,50,96,99,175,217,200,207,126,178,241,245,198,48,78,0,198,12,106,
+144,168,57,133,201,61,179,104,163,142,191,197,158,51,215,252,128,13,79,48,128,64,134,225,61,63,209,174,27,28,231,146,165,128,39,28,1,220,123,210,9,28,158,124,239,160,181,190,228,243,215,0,227,166,79,78,
+132,123,214,97,142,51,202,70,202,192,16,73,123,99,143,192,78,153,199,62,167,233,156,21,54,238,121,82,27,254,5,17,250,228,36,231,39,161,25,239,235,64,26,102,103,94,64,184,39,35,254,93,175,64,3,167,66,141,
+208,28,103,29,7,106,97,184,144,140,20,184,25,29,85,47,1,207,167,250,159,195,208,245,61,235,52,91,220,103,27,88,14,188,28,14,157,148,57,207,126,59,156,227,185,164,54,215,31,221,39,158,155,185,239,200,6,
+65,212,231,156,102,128,52,252,233,113,128,46,71,67,141,183,120,252,206,209,199,166,79,78,252,84,109,44,192,255,0,172,184,94,70,126,91,193,159,167,239,48,51,239,245,30,167,48,193,116,113,136,198,48,62,
+246,194,120,4,99,230,144,254,120,239,248,134,152,38,28,178,70,71,39,229,104,242,72,231,176,206,7,25,28,145,211,142,40,3,83,204,184,4,16,102,108,240,51,37,202,245,7,161,47,192,239,158,15,211,154,113,158,
+97,222,80,65,60,11,139,188,241,233,198,79,79,195,241,53,136,86,85,32,132,35,254,218,0,58,158,159,33,63,175,28,30,244,129,101,200,39,104,198,113,151,64,115,223,150,81,193,24,207,76,156,250,208,6,217,154,
+228,140,40,156,14,62,244,243,12,244,56,5,212,245,244,228,245,0,212,100,220,183,39,207,201,39,3,206,144,122,96,229,160,224,15,82,192,254,85,148,86,124,100,8,248,28,254,253,58,117,200,27,129,39,234,49,198,
+6,105,131,205,192,221,24,60,231,253,104,57,239,254,208,199,62,221,8,246,160,13,93,151,29,163,156,231,140,139,149,3,0,123,199,208,227,212,118,237,80,176,185,5,129,138,113,129,222,100,97,244,35,202,110,
+164,119,63,225,84,75,1,255,0,46,210,18,123,139,128,163,167,92,20,236,58,243,249,118,64,98,110,126,207,32,227,254,123,161,231,158,159,42,231,62,188,241,140,10,0,183,229,205,220,76,9,237,185,58,243,129,
+157,153,231,233,76,41,47,241,68,231,60,99,42,61,201,200,137,134,65,235,193,199,64,56,168,130,219,159,189,111,39,76,140,202,135,167,126,164,156,115,219,29,120,230,156,86,215,32,181,188,135,28,143,223,1,
+255,0,179,47,215,57,244,233,216,1,133,36,7,132,39,169,31,56,227,240,251,46,211,128,56,207,83,219,156,208,81,198,9,138,112,15,66,172,163,30,249,251,38,15,97,237,248,212,155,236,192,230,214,228,113,198,
+38,39,63,148,235,143,203,220,113,76,47,106,57,91,57,193,247,153,136,61,177,133,184,224,247,60,244,227,140,208,4,70,57,88,157,130,224,245,227,40,72,238,122,89,28,31,231,223,210,129,111,114,221,60,220,117,
+219,133,60,15,95,244,22,35,212,224,255,0,65,86,86,72,113,255,0,30,83,116,234,179,73,158,190,158,107,31,204,28,14,56,163,205,139,189,157,200,245,249,230,63,151,204,61,187,127,141,0,64,32,185,94,161,192,
+224,96,237,94,222,246,92,116,228,123,244,244,105,142,227,24,14,7,81,243,74,170,0,193,237,246,28,244,231,174,72,224,230,172,153,163,199,22,115,3,142,50,243,114,126,160,15,231,216,242,105,162,224,28,1,103,
+40,198,65,45,36,231,161,29,178,72,199,112,9,236,71,173,0,85,17,92,18,65,117,97,156,12,78,195,242,34,192,14,120,254,117,34,219,205,221,148,19,199,23,206,48,56,244,179,28,28,156,100,250,228,250,202,110,
+217,127,229,209,142,61,94,96,7,215,112,227,220,227,61,63,8,218,249,187,90,199,143,247,164,39,31,80,1,61,6,0,233,216,80,2,27,118,7,6,117,7,211,237,243,119,246,22,184,200,231,167,57,200,206,122,40,183,111,
+249,237,19,18,113,143,183,220,140,99,212,152,0,200,7,28,140,30,122,84,98,241,201,25,179,79,197,165,231,156,241,149,61,176,58,243,211,222,148,93,177,57,54,177,147,215,25,118,246,231,10,61,7,39,128,71,126,
+5,0,73,246,114,1,38,72,179,207,252,196,238,136,231,24,4,121,65,125,48,48,49,159,198,141,128,12,51,67,143,251,8,93,12,117,232,91,104,39,223,158,222,249,85,188,113,210,24,151,182,12,115,183,67,142,216,3,
+243,224,140,142,57,169,77,238,7,41,30,79,80,35,187,81,207,208,144,7,168,4,143,94,51,64,21,152,194,6,11,126,11,170,202,14,123,112,210,134,200,250,140,113,233,195,124,235,84,36,25,36,228,30,6,168,237,193,
+56,61,100,32,122,118,233,143,122,186,183,196,143,149,98,29,121,100,190,250,156,5,110,50,65,28,103,158,79,61,81,181,54,25,30,92,71,0,112,35,190,207,94,164,238,82,1,245,233,140,227,165,0,81,223,111,146,
+68,146,145,215,3,84,144,17,156,115,133,184,29,56,244,7,140,114,120,120,158,13,191,235,103,31,46,48,117,73,112,125,120,51,19,129,140,116,244,57,57,197,92,58,171,140,126,237,70,56,255,0,81,122,199,160,36,
+127,173,4,231,216,231,61,9,192,168,155,84,45,207,144,8,231,4,65,168,130,78,71,92,92,113,200,24,199,35,168,28,80,5,86,146,216,140,25,39,98,6,114,53,25,142,61,143,239,79,66,113,211,61,122,98,163,15,109,
+198,4,237,129,208,95,72,78,120,228,15,51,159,160,252,58,154,156,234,109,200,251,44,164,30,160,69,169,129,206,48,114,215,29,49,219,4,99,166,8,166,141,79,56,2,214,95,65,152,175,251,103,56,221,49,60,119,
+206,59,123,80,4,69,237,241,202,221,130,58,255,0,164,6,28,244,201,121,24,227,234,51,142,185,206,41,153,182,234,94,235,32,241,204,100,113,211,158,71,175,28,125,71,119,157,70,108,228,90,202,122,224,249,119,
+249,227,166,127,122,72,0,123,30,248,39,20,211,125,112,115,182,213,200,25,60,165,247,225,203,6,3,191,191,185,236,1,17,242,122,7,156,231,32,96,39,215,144,23,31,159,242,25,9,178,60,18,12,205,219,13,18,183,
+168,224,5,36,158,195,7,25,28,30,41,143,115,114,228,3,101,33,28,1,133,155,28,255,0,191,24,252,122,3,158,79,90,99,77,46,70,108,36,224,103,152,88,31,110,118,227,183,61,250,230,128,28,209,163,143,186,252,
+156,255,0,199,186,174,14,0,7,38,62,190,132,228,118,60,84,98,4,25,27,92,140,127,207,40,51,193,29,67,64,71,94,48,79,233,145,81,150,103,57,107,25,135,166,33,7,142,125,241,142,157,6,114,49,73,133,60,27,39,
+60,240,126,206,7,174,115,128,51,236,50,121,57,160,9,140,10,71,9,33,228,255,0,203,27,81,249,19,111,249,16,15,177,228,98,35,110,195,27,85,192,31,222,138,211,167,94,159,101,255,0,235,129,147,197,51,201,25,
+57,177,101,4,241,148,28,245,61,192,206,61,179,248,84,130,0,71,252,123,21,25,233,129,145,239,140,15,175,3,174,51,199,52,0,121,114,128,49,187,142,64,22,246,172,64,199,80,5,177,60,243,211,191,110,113,78,
+34,228,1,134,110,196,3,5,170,156,14,49,255,0,30,69,177,223,7,140,142,113,201,160,91,176,229,109,247,17,131,147,177,113,220,112,92,115,156,2,112,1,246,224,128,160,31,126,0,15,99,251,162,114,49,199,250,
+194,113,159,110,58,96,99,128,6,102,251,146,24,246,231,48,15,229,108,160,112,61,135,212,231,44,95,237,12,156,48,201,31,196,97,3,61,192,34,50,1,206,49,206,6,59,28,226,83,28,67,134,128,31,112,176,117,206,
+56,204,202,70,121,239,211,175,32,97,129,34,39,2,14,6,72,24,143,56,246,197,193,233,211,35,167,56,226,128,16,13,71,39,24,92,103,159,58,50,188,243,208,64,216,207,177,29,58,118,44,41,169,158,67,198,7,25,30,
+98,30,135,25,192,129,78,121,61,125,125,170,64,160,228,8,163,30,163,203,110,253,7,203,122,50,58,115,129,248,244,160,174,62,244,113,231,140,110,133,248,224,245,197,235,96,227,7,185,246,227,144,8,138,106,
+125,124,200,151,168,200,216,72,231,191,238,0,247,56,239,207,213,140,186,159,79,180,194,190,164,40,244,255,0,174,71,62,164,14,158,148,246,98,51,136,237,215,24,25,17,48,237,220,27,209,235,193,57,205,68,
+100,235,255,0,30,185,245,17,115,158,253,111,87,233,205,0,51,58,128,56,55,113,147,208,19,22,79,28,127,207,185,227,211,29,122,1,72,205,168,246,186,67,200,199,238,92,146,115,199,6,220,96,140,255,0,158,180,
+25,129,7,34,31,167,217,139,117,199,173,247,56,192,237,219,165,68,211,146,9,255,0,69,233,144,77,171,30,195,140,11,223,204,12,30,248,29,40,0,97,168,54,55,78,141,199,63,186,155,61,57,206,35,31,136,198,56,
+166,145,116,191,121,208,130,114,74,195,112,122,116,198,33,227,3,191,81,156,154,140,202,217,200,54,185,60,103,236,210,131,198,0,56,91,220,15,126,220,241,235,77,51,203,156,19,106,58,15,245,55,3,156,14,126,
+91,240,123,254,36,243,138,0,148,181,198,62,246,70,63,231,214,96,71,231,107,142,192,245,254,84,193,156,2,100,45,199,42,108,217,190,188,253,157,120,25,233,156,12,119,224,83,60,217,128,63,53,183,78,161,46,
+212,3,248,234,36,28,250,224,115,244,168,154,121,201,56,146,223,234,173,50,241,142,128,61,251,251,99,129,156,14,70,14,64,44,6,94,140,95,4,14,35,180,96,167,56,255,0,166,35,24,30,220,244,233,205,35,58,241,
+128,231,0,14,45,101,7,234,113,111,146,71,65,128,223,74,172,46,174,6,213,47,9,224,224,7,96,71,191,252,125,112,126,157,113,236,114,125,166,224,255,0,12,68,158,132,202,71,92,122,95,41,193,233,192,253,40,
+2,195,19,198,45,230,63,246,237,112,1,207,4,28,91,115,252,199,7,189,52,22,63,242,231,38,0,239,109,112,9,227,140,238,181,207,99,220,115,199,110,107,249,247,64,156,5,3,168,43,59,16,121,207,39,237,135,249,
+126,100,230,144,181,211,242,29,6,15,39,237,8,57,207,57,13,116,50,125,115,223,245,0,176,95,28,53,163,142,188,139,105,59,129,212,152,73,199,96,49,215,145,140,211,124,193,187,155,103,24,28,127,163,19,215,
+212,152,24,123,231,142,188,14,5,86,38,224,112,101,94,0,0,139,152,191,12,1,120,199,240,192,28,30,41,224,187,125,233,241,142,198,230,62,125,176,102,61,49,208,31,167,108,0,79,230,103,24,143,97,56,255,0,151,
+120,250,251,230,223,183,29,71,24,29,241,77,44,228,140,163,16,56,24,181,132,227,168,4,126,227,29,184,200,234,15,173,48,34,255,0,20,174,113,233,60,56,57,206,8,30,105,201,231,156,116,247,164,101,227,2,73,
+80,227,0,137,45,8,201,199,103,102,39,142,131,61,57,201,60,80,4,164,96,19,181,198,125,45,144,96,241,158,150,173,129,244,0,26,140,199,33,233,51,12,142,141,0,11,198,59,139,34,51,158,7,61,128,233,77,17,30,
+210,202,125,9,54,24,61,176,48,228,159,203,158,15,0,210,50,145,128,36,112,50,115,251,203,101,250,112,37,3,140,244,28,80,4,170,146,142,68,167,30,130,18,58,142,156,217,243,158,163,4,140,251,212,129,166,4,
+98,99,232,51,0,97,248,15,33,123,113,208,103,29,137,230,129,221,209,102,145,127,218,19,90,28,19,143,89,143,76,158,131,29,207,35,36,80,192,156,222,74,61,204,214,43,207,99,159,56,28,28,245,63,204,80,6,152,
+243,186,125,161,135,83,143,178,195,245,206,26,37,239,245,199,56,238,40,217,114,192,98,239,30,159,232,241,112,59,244,0,243,140,231,184,235,84,145,182,242,110,199,29,127,210,108,137,199,215,205,35,61,199,
+83,83,121,204,49,182,125,195,168,38,107,66,79,0,231,229,12,0,61,51,144,61,15,67,64,22,254,203,119,212,222,227,25,193,242,20,12,123,144,141,128,7,211,142,180,198,182,191,56,2,249,138,250,44,25,32,118,254,
+13,164,15,195,24,233,212,212,95,104,156,114,28,30,7,38,91,114,192,117,24,218,217,3,242,250,83,90,238,224,240,10,127,192,167,135,175,124,169,94,120,227,57,206,50,58,10,0,151,236,151,132,16,47,37,61,200,
+54,237,130,113,207,36,109,200,207,39,39,211,156,211,5,165,226,255,0,203,195,247,3,22,255,0,134,7,32,15,240,239,131,154,111,218,238,136,249,165,137,79,24,6,233,49,248,128,59,159,175,226,115,148,251,93,
+214,14,26,220,142,231,237,143,193,198,115,181,99,61,59,114,123,250,240,0,255,0,179,94,169,201,153,216,123,193,24,28,99,25,37,191,66,73,252,169,60,155,194,49,246,128,128,142,246,241,126,28,121,131,230,
+233,142,159,74,96,187,149,137,13,229,103,0,113,57,114,122,127,121,65,239,245,35,183,90,145,89,241,147,229,224,156,241,33,61,207,28,68,216,250,12,140,99,156,230,128,24,182,87,68,243,114,196,3,208,91,166,
+57,235,247,92,254,28,1,145,200,233,133,107,27,156,113,35,158,114,51,26,231,35,215,169,207,110,79,210,165,243,19,31,234,145,152,14,187,230,247,244,128,255,0,129,244,29,226,56,7,2,213,9,246,23,45,158,185,
+201,251,41,250,241,236,64,52,0,198,176,185,60,51,74,199,61,68,79,142,189,120,82,123,241,211,63,76,138,97,211,159,185,159,60,117,141,251,227,60,5,24,250,250,117,227,164,132,54,48,108,213,65,254,32,47,70,
+122,99,159,179,17,198,70,48,7,215,173,48,195,158,126,206,202,79,32,169,187,94,58,157,164,219,142,216,57,244,235,215,20,0,131,77,92,228,197,49,32,240,124,153,8,39,144,113,150,3,185,62,189,126,148,255,0,
+236,245,57,31,102,151,28,231,116,46,6,58,231,238,156,28,113,129,145,223,169,166,139,89,9,200,142,64,8,31,197,57,57,39,3,147,26,228,127,250,179,211,46,242,29,127,229,148,135,30,162,83,252,215,7,233,254,
+7,0,14,251,2,129,196,7,160,60,7,24,28,156,127,170,201,35,223,175,32,245,2,162,22,0,159,245,39,191,57,147,60,145,215,16,19,158,157,73,254,66,164,195,169,249,173,228,82,184,7,42,216,233,211,147,192,61,7,
+127,113,206,20,9,14,113,18,140,228,124,204,71,110,185,222,63,60,103,218,128,26,116,245,234,96,144,143,68,105,6,9,31,245,235,237,211,191,174,105,62,196,20,0,44,174,8,239,147,51,103,215,165,186,227,190,
+70,0,227,32,154,82,37,25,31,187,3,254,186,178,140,231,167,250,224,127,80,78,61,57,161,99,157,185,13,17,7,214,114,163,240,205,216,62,189,49,211,191,52,0,211,104,185,37,172,230,235,255,0,61,46,9,3,62,209,
+14,128,116,200,199,78,180,27,107,110,246,146,228,117,230,227,156,14,50,74,175,228,9,30,184,201,171,10,151,0,96,60,96,145,206,219,148,228,2,79,241,94,14,159,135,126,122,2,165,110,27,254,91,14,252,52,241,
+17,248,98,244,244,61,243,142,157,104,2,183,145,106,6,69,164,185,207,32,155,131,156,115,222,34,48,113,208,177,207,61,56,202,172,80,140,226,210,69,244,195,92,126,132,40,250,231,29,127,75,59,110,20,127,174,
+65,211,32,203,30,49,239,254,155,207,24,198,65,232,0,239,147,247,131,143,50,19,215,161,94,125,78,225,116,71,65,200,25,39,30,226,128,42,180,105,200,251,59,131,144,73,51,95,169,252,48,128,1,198,61,120,224,
+117,164,216,184,33,99,97,156,144,76,218,128,35,167,77,160,49,244,57,192,250,244,54,255,0,120,78,55,64,56,235,142,8,227,184,185,28,247,235,201,192,29,169,198,57,155,145,52,7,3,160,207,81,156,145,139,146,
+56,235,215,142,244,1,81,99,151,208,30,159,242,219,83,3,143,125,203,159,124,228,19,158,185,201,144,164,132,96,168,206,8,39,206,212,192,252,91,237,25,232,61,8,25,226,164,48,203,211,204,0,245,249,23,160,
+207,94,103,60,241,219,158,192,122,160,142,112,120,145,207,24,229,87,7,175,102,118,227,28,115,211,158,51,64,16,152,164,35,24,132,100,116,51,106,57,236,71,38,111,79,99,158,114,56,205,51,201,144,99,47,0,
+234,115,186,245,249,235,140,153,50,15,65,142,48,121,232,50,39,100,186,0,255,0,172,206,120,109,177,1,199,76,29,135,129,199,124,158,248,166,98,239,60,52,217,231,186,99,158,128,17,24,199,25,231,175,78,252,
+208,5,115,12,172,114,179,90,131,232,207,118,167,62,228,204,126,135,140,251,17,149,167,172,55,3,0,220,216,241,216,73,119,147,128,78,65,45,201,247,206,57,35,29,112,239,46,252,19,137,24,0,115,204,172,15,
+25,199,247,120,28,117,233,233,232,194,47,73,193,103,99,147,143,222,175,31,76,231,35,166,78,51,211,143,80,0,165,210,240,183,118,120,28,255,0,173,186,0,99,144,62,119,32,228,3,237,232,41,170,215,125,239,
+44,178,122,5,184,98,7,253,244,87,60,142,248,227,235,72,126,220,6,1,148,14,122,77,24,25,62,217,0,158,255,0,203,217,132,94,158,12,183,30,193,110,20,14,127,237,166,6,48,61,71,225,64,22,191,210,136,56,186,
+180,192,198,72,184,92,250,244,103,235,219,35,143,195,38,163,111,180,140,111,150,221,184,235,231,199,156,12,14,113,43,96,244,25,253,49,154,170,86,252,147,151,186,32,131,214,238,30,253,14,75,247,235,212,
+245,231,208,200,144,94,228,147,231,119,56,55,138,51,140,231,128,205,142,57,224,140,246,237,64,8,198,66,65,243,226,64,61,37,56,198,58,112,220,241,215,29,125,185,162,172,11,123,179,142,221,7,252,125,169,
+62,132,228,200,15,215,143,196,119,40,3,196,195,19,210,23,35,217,46,78,123,99,168,207,63,174,56,56,226,116,121,1,194,192,202,79,76,199,56,57,239,255,0,45,0,207,208,30,64,29,42,186,205,0,192,51,66,65,7,
+33,100,190,193,237,218,34,14,56,247,62,212,255,0,180,68,6,18,104,49,147,159,154,252,1,207,253,114,31,166,79,4,115,138,0,188,130,235,35,49,198,189,8,59,100,207,190,49,39,24,199,70,63,204,213,152,227,184,
+44,6,64,231,36,229,151,241,230,97,212,119,227,147,248,86,80,184,143,254,123,219,158,71,25,190,231,29,58,168,61,128,245,238,7,115,42,220,199,255,0,61,173,70,56,233,122,72,35,240,206,127,47,247,187,80,6,
+242,219,222,99,34,85,193,231,230,184,41,249,98,232,231,167,92,126,61,204,139,5,230,115,190,38,227,28,221,49,236,7,32,220,127,79,169,201,24,194,23,145,12,145,113,8,199,24,16,221,176,0,115,252,69,120,206,
+63,151,57,167,139,248,138,231,237,145,28,2,113,246,43,178,61,58,146,70,58,250,244,224,117,20,1,190,182,247,124,110,242,240,57,207,154,6,79,212,206,6,59,113,158,0,230,167,84,185,92,101,148,12,243,182,226,
+53,7,7,56,31,233,153,199,190,1,244,231,36,115,139,125,31,252,253,70,48,122,11,25,49,235,200,42,8,234,51,219,189,76,53,24,193,226,226,12,129,193,251,3,131,211,177,36,117,245,39,56,230,128,58,32,147,28,
+124,249,235,143,244,200,198,58,19,199,218,192,252,15,175,61,169,68,15,156,229,113,143,227,187,143,29,71,97,114,126,188,147,216,159,124,68,212,83,63,241,245,10,142,63,229,212,1,249,25,148,143,167,35,190,
+112,106,226,234,112,128,51,121,9,57,251,191,100,136,143,195,55,24,60,250,131,207,106,0,216,72,78,121,48,131,147,199,218,162,56,231,129,131,113,131,216,14,149,100,66,139,129,230,34,146,57,9,113,108,114,
+121,228,19,116,157,243,140,143,235,156,120,245,56,51,205,220,60,250,217,91,143,115,128,206,65,28,241,207,227,86,99,212,225,254,27,165,35,142,126,203,108,51,158,58,137,87,140,250,242,71,189,0,105,198,0,
+56,243,144,12,245,51,218,250,112,121,188,111,211,255,0,175,83,229,50,9,185,94,115,255,0,45,45,207,31,65,112,122,250,243,234,120,235,156,154,148,121,63,233,81,49,7,25,251,52,25,29,176,113,48,30,252,227,
+191,66,106,117,191,13,157,179,43,123,152,162,31,175,158,6,120,57,228,255,0,90,0,212,69,136,140,155,182,25,29,71,148,126,156,172,228,17,215,182,71,182,56,112,88,6,51,120,115,201,27,140,67,158,7,121,128,
+239,252,200,170,73,115,47,27,68,77,158,165,163,136,143,124,102,124,15,212,244,60,115,86,146,228,227,159,178,130,79,1,140,72,50,15,185,35,57,235,215,7,56,226,128,44,170,167,107,196,228,128,112,176,231,
+24,56,199,239,15,230,127,48,122,204,35,57,24,187,136,251,20,182,237,193,255,0,150,131,175,92,227,30,131,29,105,249,238,221,62,206,123,13,146,91,17,216,158,78,79,3,4,159,83,142,115,83,15,48,147,242,71,
+158,249,242,27,167,166,213,35,145,232,15,113,156,208,5,196,82,1,255,0,76,69,193,7,136,237,134,79,160,38,80,79,177,233,86,2,177,31,242,16,147,166,0,6,215,142,61,62,210,56,62,131,31,143,124,221,211,156,
+5,142,38,56,32,100,67,140,116,232,209,145,220,245,207,28,250,84,192,95,17,242,197,108,61,137,181,207,110,64,216,191,145,245,62,156,128,104,8,88,156,27,251,131,216,128,208,250,255,0,215,102,0,228,99,7,
+29,58,243,138,178,182,243,0,72,188,159,142,62,103,140,28,251,31,48,114,64,207,7,175,231,89,73,13,251,2,69,189,163,14,156,181,182,224,115,211,156,240,127,206,51,83,11,123,243,128,45,109,135,126,176,131,
+156,116,24,143,31,203,234,104,3,68,37,210,182,5,204,253,199,250,216,242,115,193,63,235,185,231,241,7,145,201,165,99,116,185,2,121,137,56,31,235,147,143,108,153,216,15,78,48,65,232,121,53,72,89,94,156,
+22,181,180,7,220,68,79,95,116,0,250,212,171,103,117,156,125,158,203,130,78,68,81,110,60,113,130,96,36,250,158,120,244,160,11,145,201,121,158,102,152,115,128,4,240,174,65,199,63,235,193,228,17,207,110,
+217,224,213,181,107,163,131,230,220,244,206,5,221,185,3,62,198,224,243,245,200,224,140,86,111,216,174,91,165,188,89,232,118,164,71,234,70,21,79,62,157,0,206,41,209,217,93,47,75,110,115,193,49,127,69,60,
+243,140,140,19,220,119,20,1,172,26,126,65,150,113,233,155,168,73,199,184,89,9,228,241,193,61,253,170,76,202,216,31,105,147,167,70,184,135,255,0,138,57,24,29,191,42,202,22,247,193,179,246,101,60,114,86,
+37,224,12,127,121,129,29,49,146,15,161,235,82,172,55,103,173,146,16,48,62,104,224,31,143,40,216,0,224,117,199,79,114,0,53,135,154,0,253,242,130,7,241,221,66,49,159,82,223,135,78,188,224,0,70,101,89,157,
+78,13,204,25,28,255,0,199,197,191,25,232,121,116,97,156,14,158,249,197,102,172,87,60,19,102,160,100,125,207,32,227,25,35,143,39,31,92,159,78,184,21,56,73,0,255,0,143,103,95,247,26,219,130,59,141,182,231,
+223,175,29,248,226,128,52,5,235,113,186,107,82,6,70,124,235,99,215,25,31,52,204,115,235,220,246,232,13,40,185,141,249,19,91,123,13,208,30,157,59,237,252,115,220,251,10,160,25,186,52,87,0,103,128,13,183,
+245,180,3,169,244,252,122,211,132,209,131,196,82,241,211,50,217,131,199,168,107,49,201,235,244,52,1,160,179,33,200,19,91,2,14,48,30,212,113,128,115,142,115,223,24,227,159,108,213,165,147,140,27,152,120,
+227,2,88,51,219,57,194,30,123,99,158,122,112,113,89,34,112,62,234,62,51,206,103,177,224,116,239,103,200,3,140,123,247,201,167,172,237,145,132,81,131,252,83,233,224,99,183,6,203,142,163,147,245,233,205,
+0,105,153,71,63,233,49,125,11,35,240,48,78,118,197,252,241,220,2,123,72,37,66,9,251,68,35,156,140,148,7,61,15,88,135,95,81,215,29,6,106,143,218,176,62,236,99,167,252,183,211,207,111,69,178,235,235,244,
+63,90,65,121,31,27,132,94,231,237,22,185,35,140,159,146,207,56,227,252,241,64,26,66,100,200,34,226,2,113,215,116,75,211,57,199,201,207,108,244,250,112,42,81,42,156,127,164,91,231,142,51,1,29,123,254,228,
+158,73,246,36,243,222,178,141,220,36,140,164,68,116,31,233,113,14,122,19,133,129,65,63,136,239,215,165,74,147,161,229,89,64,244,107,161,215,142,133,66,143,167,29,114,120,230,128,52,195,171,116,150,22,
+60,119,139,28,125,45,216,241,235,129,198,61,41,8,27,129,15,110,15,169,49,0,61,203,27,28,247,29,79,61,184,226,169,27,150,224,44,144,99,222,229,219,158,0,39,12,160,113,211,4,231,158,9,52,229,145,137,229,
+237,9,63,222,158,67,239,142,37,0,3,223,0,243,211,173,0,93,203,129,149,150,208,250,230,104,0,62,163,231,178,28,247,237,234,58,10,114,180,184,0,53,129,57,239,45,159,63,129,181,201,247,231,169,39,60,85,81,
+36,195,144,109,8,231,145,44,205,235,208,137,243,208,119,239,158,49,197,75,230,206,71,41,110,126,173,63,94,79,79,52,99,142,58,224,244,250,128,74,76,128,124,199,79,108,96,243,45,150,61,179,152,87,7,60,244,
+24,205,72,172,228,144,6,158,115,216,77,98,57,39,28,31,43,215,183,80,49,200,235,85,196,178,140,102,59,94,57,28,76,220,246,224,220,15,255,0,88,239,205,63,206,148,253,216,45,200,200,39,49,204,122,158,48,
+126,211,129,211,190,15,94,115,208,2,207,239,248,216,44,135,78,13,197,129,24,39,175,40,56,207,160,247,200,228,81,254,147,198,82,215,131,212,79,105,140,28,127,116,117,200,233,140,247,35,138,133,94,232,224,
+139,75,78,184,206,201,207,124,243,153,143,28,17,207,78,79,74,152,53,214,65,54,182,153,39,248,99,184,39,242,15,143,126,188,142,58,230,128,28,77,210,142,4,121,231,165,204,0,116,24,232,0,3,168,228,143,196,
+83,119,221,246,151,97,239,137,224,110,135,174,124,206,191,159,0,99,167,11,230,92,99,155,107,102,247,251,61,201,61,248,255,0,90,61,253,1,207,160,200,136,200,205,247,172,33,24,4,103,236,119,62,153,225,132,
+227,142,156,18,61,241,64,6,251,204,228,94,48,28,228,9,237,179,237,200,149,78,113,143,235,154,70,107,188,227,237,151,24,35,168,150,221,143,126,255,0,105,82,120,235,201,3,28,102,148,75,128,3,89,69,145,156,
+255,0,162,76,223,135,51,31,79,83,156,147,233,150,25,98,36,131,101,23,177,22,178,112,56,29,230,39,35,61,178,49,248,80,3,212,221,140,175,219,239,6,115,157,178,219,168,231,160,33,110,153,177,219,161,36,99,
+138,149,77,192,235,125,118,56,245,136,254,39,247,164,19,143,81,215,25,35,156,85,204,76,73,54,232,56,232,109,166,207,83,211,247,223,128,227,158,48,9,57,167,131,6,63,213,21,60,227,109,172,195,175,209,248,
+252,243,214,128,44,159,60,140,255,0,104,92,231,28,228,91,228,3,233,251,193,235,193,207,36,30,1,168,203,204,6,26,250,232,142,185,6,219,156,99,7,163,112,78,70,8,233,211,154,96,88,7,222,18,99,143,249,118,
+184,206,122,246,151,24,62,248,207,110,244,161,44,250,237,124,131,218,210,108,129,211,147,187,60,103,241,237,205,0,55,206,110,127,211,46,112,15,5,188,128,1,61,79,32,99,140,113,192,235,215,129,65,184,32,
+241,121,33,199,247,141,179,47,65,234,227,169,227,56,233,158,244,165,44,9,228,16,217,57,38,221,248,207,83,243,72,57,60,246,35,56,206,41,26,29,63,4,239,35,130,114,34,11,215,147,206,242,71,79,78,184,235,
+210,128,20,220,169,25,51,171,227,174,69,182,61,255,0,229,174,56,237,159,126,156,82,139,132,198,75,196,195,158,15,217,121,199,210,95,94,253,249,231,21,0,131,77,201,196,234,189,176,204,1,246,193,32,129,
+245,228,113,237,74,32,176,199,19,169,228,28,134,136,16,7,184,136,123,12,129,64,19,9,208,145,128,139,158,70,86,220,241,207,77,178,49,62,223,169,169,68,201,140,31,44,99,184,88,249,201,244,12,49,215,147,
+147,143,124,98,170,172,54,157,62,212,199,216,73,9,231,57,232,99,207,99,208,227,166,6,105,226,59,113,200,153,216,142,199,236,217,30,167,44,87,24,224,156,140,112,57,244,0,123,77,23,35,120,200,29,138,143,
+99,192,115,250,99,167,175,72,204,177,246,144,228,100,29,164,103,35,254,218,231,234,58,254,4,138,99,71,17,235,33,35,39,27,154,201,125,56,193,110,190,152,28,245,224,115,76,104,160,96,64,147,158,121,95,176,
+158,58,115,193,30,231,57,239,216,19,64,18,134,67,156,203,34,231,29,152,247,255,0,120,126,185,231,244,147,8,71,23,15,143,64,141,239,217,156,227,215,140,119,227,165,80,49,198,188,173,198,220,1,206,108,135,
+225,194,114,61,184,193,28,243,138,102,196,224,139,166,231,185,123,18,113,219,145,158,61,58,96,112,5,0,94,56,60,249,183,25,231,145,12,109,252,209,137,250,103,63,135,70,20,36,231,125,233,0,19,196,9,142,
+248,227,236,252,126,60,14,163,142,42,137,0,100,165,227,231,60,252,214,103,24,207,60,160,252,6,115,142,51,197,42,137,8,4,93,202,196,140,1,139,50,125,249,222,79,65,140,129,212,117,60,208,5,210,173,143,245,
+215,192,250,172,32,96,125,62,202,51,211,145,159,241,166,133,113,156,93,95,128,71,0,193,25,252,191,115,220,254,190,157,106,147,164,199,172,178,144,51,201,75,97,199,127,155,205,81,244,28,31,167,90,140,195,
+35,12,180,175,219,4,253,144,99,142,132,139,172,147,199,76,147,214,128,46,157,192,31,223,106,24,238,124,152,249,60,242,84,219,246,29,114,72,252,15,17,18,73,225,239,177,223,48,196,115,142,153,45,108,63,
+32,115,143,175,21,197,169,206,90,227,29,134,90,223,60,103,32,15,180,19,233,211,176,198,49,138,62,204,163,39,237,170,15,81,243,69,193,246,196,160,228,116,200,231,219,129,64,22,67,176,201,111,182,19,198,
+79,146,184,252,72,128,245,244,193,29,41,226,86,198,49,121,129,235,16,239,245,140,15,161,192,60,213,49,4,153,36,95,254,82,227,167,61,62,208,59,31,76,123,83,188,167,3,3,80,43,211,133,185,80,71,127,226,185,
+198,61,135,124,122,100,0,78,110,7,57,91,174,156,145,110,187,120,57,24,35,31,151,113,206,51,81,137,227,206,239,223,115,198,26,219,13,129,156,242,152,207,60,112,14,57,207,180,102,222,66,188,106,36,103,160,
+243,227,234,120,235,246,192,191,168,250,211,13,173,198,48,53,38,35,209,174,33,199,166,8,251,113,200,30,153,253,122,0,88,50,91,238,37,132,167,31,222,136,142,8,238,25,241,211,219,28,103,232,214,146,208,
+130,118,176,255,0,121,35,32,247,233,230,46,65,244,238,122,142,181,88,218,221,174,8,189,136,131,208,153,160,250,31,249,123,98,9,233,235,199,97,77,251,61,208,224,222,194,63,237,164,76,58,158,185,157,129,
+192,201,247,29,232,2,195,73,103,130,21,24,14,223,186,64,15,67,145,180,231,182,126,241,62,189,193,140,77,108,160,252,206,164,131,255,0,44,227,61,176,56,36,17,211,191,83,147,81,253,158,232,127,203,229,187,
+255,0,192,145,136,199,166,28,240,79,183,67,223,138,12,23,157,62,213,108,61,14,212,224,241,131,156,131,250,250,250,208,4,171,53,184,235,35,21,247,142,49,215,158,115,144,123,243,156,115,199,94,92,103,182,
+110,21,155,39,60,4,135,147,129,192,202,182,122,243,245,252,169,180,87,227,63,190,183,111,195,147,207,96,48,192,231,252,244,166,121,55,156,238,48,147,211,39,35,159,163,28,247,228,12,14,190,180,1,111,124,
+35,147,230,28,99,172,22,135,191,124,197,156,126,125,177,199,70,153,32,57,192,124,123,193,103,128,62,166,6,25,25,246,62,156,102,169,52,23,109,222,215,167,179,241,223,133,112,115,211,163,114,59,83,77,165,
+206,57,22,237,219,10,178,99,156,114,49,33,199,92,144,15,7,242,160,13,5,146,32,49,135,193,207,252,177,179,207,224,5,167,184,234,72,239,201,230,147,125,168,61,92,2,58,253,154,215,39,56,228,255,0,162,129,
+129,252,199,53,79,236,115,158,177,35,30,191,234,101,99,233,220,55,111,246,137,199,110,166,148,217,62,62,104,246,231,183,146,235,249,225,199,235,237,223,138,0,156,203,110,14,6,79,92,102,206,35,223,190,
+45,48,56,244,39,212,123,33,154,44,240,140,7,95,248,243,235,142,255,0,45,174,56,231,169,237,214,171,53,142,6,54,56,231,156,32,30,223,121,229,201,25,30,189,56,30,134,54,178,61,7,158,190,165,95,7,60,244,
+253,225,29,134,122,127,74,0,181,230,199,129,185,73,231,156,218,184,36,28,2,70,44,136,232,57,39,62,157,179,73,230,68,50,54,40,7,183,217,219,234,73,63,98,4,140,103,219,140,118,231,60,217,48,63,235,110,135,
+57,192,108,28,251,229,193,57,3,61,115,252,233,126,203,200,6,123,209,215,162,198,79,126,70,100,207,82,0,32,143,65,201,160,11,133,147,119,8,125,191,209,216,243,199,115,107,250,131,199,182,56,60,216,71,25,
+139,142,172,246,206,8,246,200,182,207,81,219,60,156,130,9,38,170,27,118,4,129,121,124,0,4,231,16,28,99,182,12,159,143,79,240,166,24,100,192,255,0,77,212,113,192,198,34,29,79,185,56,231,215,219,32,116,
+160,11,134,72,179,196,144,14,71,38,25,71,92,99,159,179,130,120,60,118,224,130,1,32,82,25,70,56,150,12,12,19,242,204,15,235,110,58,119,57,199,56,224,245,168,82,81,207,218,181,3,140,117,150,211,60,19,206,
+25,64,252,206,79,126,184,166,230,78,247,55,164,116,203,77,100,8,255,0,199,71,76,228,16,79,78,189,114,1,104,220,72,167,42,241,48,235,149,239,244,95,39,147,158,191,228,83,126,217,114,14,1,136,17,208,108,
+139,63,82,90,16,112,62,156,227,29,106,29,237,158,110,110,61,78,102,182,39,129,232,17,179,201,31,135,110,184,80,248,7,253,38,114,79,98,241,99,174,79,72,59,244,227,235,244,0,148,94,92,255,0,19,175,208,173,
+185,80,120,28,110,183,244,167,139,201,112,78,248,184,61,197,169,61,179,210,21,244,199,4,247,250,212,30,114,114,62,213,55,25,206,9,35,25,207,81,15,175,224,59,26,85,157,6,127,210,102,61,57,15,128,113,235,
+136,131,14,59,158,184,235,197,0,79,246,183,238,98,57,255,0,174,30,135,208,99,233,144,65,227,165,55,237,153,239,6,61,196,93,59,242,34,207,29,120,201,227,253,170,111,218,19,167,152,228,28,115,230,54,127,
+91,99,248,224,159,82,77,6,84,60,51,204,71,166,242,127,30,109,27,235,211,216,117,197,0,31,107,110,48,145,145,198,72,101,4,103,223,202,7,160,245,239,142,244,209,121,38,73,8,51,140,1,231,99,191,253,113,32,
+241,223,56,246,238,20,72,156,98,73,0,247,221,159,79,249,244,0,142,56,3,161,253,19,124,68,144,101,44,7,64,68,135,39,29,8,91,112,51,193,198,121,160,4,123,198,7,38,32,189,7,55,49,224,228,250,152,215,169,
+200,3,183,20,159,107,36,253,197,246,34,237,48,51,128,121,217,206,48,125,122,242,64,52,172,240,247,127,161,242,174,15,108,244,251,62,15,78,196,250,99,173,66,210,168,232,238,184,236,182,215,64,159,195,201,
+25,233,235,232,69,0,76,179,231,251,128,241,159,244,245,29,63,221,135,131,145,235,156,126,52,225,51,144,72,10,115,140,159,237,3,242,158,252,140,123,112,113,156,10,162,110,177,156,73,55,124,126,230,227,
+62,252,24,58,231,147,219,156,10,5,203,183,89,166,244,207,151,41,245,7,239,192,125,137,227,61,70,5,0,95,55,47,131,184,2,58,100,223,22,39,25,232,89,199,225,144,70,71,83,138,97,157,155,160,113,144,58,221,
+196,71,62,132,191,226,120,61,79,78,113,72,72,79,30,123,140,113,205,180,236,58,117,27,34,80,79,28,100,14,252,226,144,202,115,254,185,192,35,170,217,92,96,250,115,148,231,143,110,189,250,208,5,243,44,163,
+162,202,223,73,161,56,228,255,0,211,96,115,207,28,115,129,210,152,100,148,255,0,203,57,59,100,179,70,249,252,12,223,64,56,193,197,80,220,195,254,91,185,206,49,155,73,199,31,67,55,28,140,15,195,211,52,
+110,36,100,185,60,244,54,242,2,115,142,0,55,31,152,29,125,15,82,1,109,164,155,248,99,151,167,64,144,245,224,14,76,160,122,147,138,135,204,159,36,121,79,145,206,12,22,236,63,63,59,249,130,61,249,168,247,
+70,57,249,177,232,45,101,200,60,116,38,99,238,122,1,237,64,151,156,3,56,198,118,255,0,163,191,94,159,196,231,32,28,227,27,120,198,51,214,128,39,13,114,79,203,108,79,63,197,101,110,217,206,57,36,77,237,
+140,116,233,199,122,152,253,160,12,253,153,122,142,150,22,196,14,153,251,206,56,252,72,206,115,220,213,64,238,195,153,110,20,250,21,198,48,58,28,200,7,228,7,248,202,161,249,253,236,158,132,17,207,168,
+56,243,115,206,61,135,243,160,9,3,78,6,77,169,207,168,176,181,231,223,12,88,126,71,175,106,97,121,217,129,91,118,29,64,2,194,208,30,113,232,122,103,140,145,216,113,72,84,245,221,35,18,123,161,56,62,216,
+155,212,116,3,29,56,198,41,64,148,3,131,145,201,82,200,0,199,227,114,57,232,63,152,57,25,0,126,235,190,246,184,0,99,38,198,223,215,169,1,113,245,60,241,219,173,55,204,188,60,11,101,228,30,69,141,178,227,
+175,92,231,145,159,81,206,120,205,48,180,252,231,42,51,212,181,186,140,253,60,210,64,228,116,28,231,36,138,55,204,56,46,14,121,198,244,35,240,32,19,248,3,199,29,115,64,15,84,187,206,76,74,131,28,230,210,
+203,39,129,253,230,39,169,4,97,64,233,201,61,94,82,235,216,143,79,34,192,99,62,131,61,129,233,232,48,50,115,80,23,184,236,241,128,113,213,115,211,130,115,130,9,199,76,116,252,42,51,53,231,240,74,132,31,
+246,24,158,58,116,76,251,224,96,115,220,231,0,23,124,139,150,193,80,23,215,247,54,32,31,126,75,126,31,145,2,154,246,247,184,198,249,49,199,10,182,3,60,254,35,169,227,185,29,201,235,72,189,233,31,235,98,
+28,14,26,57,65,250,100,40,98,112,121,228,99,142,152,21,31,250,94,51,230,198,79,57,34,59,130,51,142,184,201,30,252,228,115,211,129,144,11,18,65,119,208,61,201,31,238,233,196,14,114,15,33,14,61,120,207,
+189,87,107,123,179,252,119,61,120,253,214,156,120,199,60,151,235,233,141,189,15,94,42,35,246,193,214,92,119,192,134,81,223,144,62,94,121,245,207,28,158,13,1,47,121,97,52,189,51,242,164,185,3,25,30,255,
+0,144,24,35,146,115,192,3,141,165,209,228,180,228,14,198,45,60,159,126,140,121,227,176,236,1,7,187,13,156,221,204,203,235,251,171,46,125,122,47,57,60,158,252,14,130,130,183,135,131,115,119,158,193,18,
+114,56,231,24,13,143,195,219,25,199,70,4,186,239,53,239,94,141,21,195,126,138,220,14,125,186,253,40,0,54,178,40,235,63,57,255,0,150,86,88,227,216,39,3,140,242,115,198,113,140,98,45,140,173,131,246,147,
+201,63,241,239,106,63,35,179,4,251,131,206,106,111,42,235,159,154,239,56,200,255,0,70,186,252,57,50,15,231,145,223,21,22,203,149,56,103,186,56,200,249,98,184,0,140,145,146,68,132,158,158,131,223,220,1,
+132,158,71,151,117,235,204,86,159,214,51,239,192,233,143,202,44,174,78,99,186,35,215,200,178,39,160,39,32,198,8,246,231,216,112,113,86,135,155,142,126,217,129,255,0,76,238,65,252,203,241,158,252,142,192,
+112,13,5,36,35,152,239,28,245,251,183,89,207,169,196,202,58,142,156,15,192,154,0,164,76,68,224,195,113,237,139,123,81,156,250,149,218,8,28,250,118,25,235,147,247,93,60,185,135,60,147,2,158,51,219,108,
+152,28,14,62,189,170,246,198,56,6,11,190,72,198,229,184,247,236,211,145,158,252,116,250,98,143,43,28,181,180,231,156,159,150,112,79,175,73,143,161,237,237,64,20,182,161,25,242,220,128,127,138,216,224,
+12,245,193,145,129,193,199,113,211,173,33,80,121,242,151,169,198,45,80,100,231,130,112,231,146,59,17,158,79,225,161,136,215,147,101,57,39,28,186,92,1,250,63,97,207,78,195,235,76,38,0,1,107,23,99,234,96,
+184,199,29,115,150,231,142,216,39,25,236,69,0,82,46,23,131,26,244,63,242,238,173,199,167,12,126,157,59,26,79,54,64,70,216,20,118,63,232,202,51,142,153,193,227,208,243,199,185,171,161,172,251,217,54,122,
+124,177,92,2,160,113,212,146,7,92,103,143,108,241,76,47,100,217,38,9,135,225,38,6,79,187,0,49,143,199,167,60,208,5,97,52,189,12,113,130,58,255,0,163,100,119,255,0,104,131,211,140,15,82,50,58,48,201,114,
+127,130,60,99,140,217,156,117,35,37,130,144,49,211,35,7,60,112,42,112,108,88,237,242,101,245,231,205,57,252,152,182,48,121,228,123,28,113,76,104,45,142,118,71,48,238,70,201,48,58,156,231,206,80,113,140,
+123,247,231,57,0,68,154,227,60,36,32,99,128,109,28,3,131,235,128,78,122,31,199,7,53,40,184,186,29,60,158,73,24,251,44,227,146,121,206,23,146,49,143,207,173,66,34,129,72,36,114,123,24,164,39,3,208,53,206,
+6,122,156,231,56,57,199,81,32,22,252,100,228,144,71,48,35,123,14,183,36,247,207,191,214,128,28,101,185,108,228,198,1,35,133,181,113,142,49,213,147,158,128,117,60,251,103,39,159,50,140,2,112,73,206,216,
+49,200,199,63,234,207,92,123,100,118,29,41,219,237,134,56,76,227,189,178,115,131,215,2,232,1,206,114,59,103,24,6,164,220,153,24,48,129,208,230,208,103,131,198,208,46,135,7,182,73,56,160,10,226,226,92,
+242,210,100,158,115,27,227,4,250,4,0,103,60,1,130,59,123,200,103,118,36,22,147,28,100,172,18,30,185,31,221,199,57,246,250,241,196,251,142,14,199,140,100,243,254,142,139,206,113,147,155,177,211,3,250,227,
+0,209,151,206,3,65,245,104,97,201,224,156,159,244,178,121,36,103,63,134,40,2,175,4,146,204,231,156,157,192,140,228,245,198,240,78,113,156,99,142,105,170,170,222,223,247,210,129,158,153,220,254,189,79,
+226,122,130,109,110,112,127,229,212,227,142,45,226,207,190,15,218,179,212,227,142,121,24,167,44,146,228,126,238,22,29,50,182,241,49,236,78,115,113,159,203,28,1,223,56,0,165,229,47,79,50,60,142,112,101,
+218,64,199,96,102,95,111,78,244,27,98,72,195,70,70,9,230,226,76,99,168,255,0,151,179,199,208,99,161,245,173,15,62,229,65,194,64,57,228,52,16,14,220,99,55,71,156,119,193,61,122,208,215,151,24,229,98,13,
+200,27,97,128,156,243,200,204,221,184,201,233,138,0,203,54,195,113,221,37,186,140,242,76,243,113,199,189,195,2,9,60,117,250,211,13,172,99,56,158,223,169,39,45,112,126,152,219,40,24,39,208,100,156,254,
+58,13,123,120,50,67,69,215,169,75,82,115,219,133,148,156,247,235,254,53,3,94,222,231,137,80,115,156,121,54,253,61,254,118,252,186,119,198,50,8,5,85,183,60,126,250,215,3,130,75,93,175,30,227,205,199,190,
+120,238,51,220,60,67,150,192,154,199,158,159,53,232,199,29,201,184,193,250,143,161,3,169,121,188,190,200,38,100,61,112,4,48,100,118,201,224,131,219,61,49,248,212,102,230,231,156,202,188,130,8,217,16,235,
+212,101,99,25,244,60,154,0,83,107,156,1,115,99,207,99,37,222,50,113,255,0,79,3,142,156,103,131,159,173,47,217,92,112,46,52,224,127,132,135,188,98,79,169,30,107,96,158,7,57,231,7,28,10,143,205,156,242,
+25,73,227,162,32,39,241,217,200,3,212,227,183,209,68,183,13,159,150,34,14,112,12,89,63,78,19,243,60,12,228,228,18,114,1,56,179,184,96,115,119,103,159,247,174,72,200,250,200,191,79,195,7,25,164,91,89,127,
+138,123,34,127,188,26,224,28,96,231,131,49,207,174,7,174,58,12,212,91,231,39,129,0,245,6,221,15,97,140,31,47,223,177,234,58,158,205,45,41,235,228,30,199,22,235,144,56,233,242,117,207,183,127,66,104,2,
+86,137,193,199,159,104,0,201,57,51,117,231,213,241,145,236,122,156,114,72,20,220,73,198,217,96,111,66,3,140,145,220,101,193,3,62,163,39,210,162,218,252,144,136,125,15,217,135,35,30,241,144,78,65,29,59,
+253,48,229,141,216,128,209,198,59,100,66,57,244,225,45,219,159,83,207,65,248,128,75,254,146,50,124,235,112,7,83,188,46,61,1,222,254,220,244,244,199,163,132,179,175,62,117,161,61,50,36,133,143,230,102,
+7,219,184,199,7,131,138,140,217,146,126,234,224,243,204,18,100,126,86,131,29,7,4,230,156,45,19,159,221,18,79,92,91,59,100,247,35,48,140,253,113,211,175,161,0,95,54,98,73,243,45,128,28,141,178,219,169,
+227,167,89,49,220,228,3,207,124,226,163,23,82,167,30,116,56,201,201,18,91,127,48,199,32,99,29,79,62,157,157,246,30,48,34,61,121,205,162,28,17,211,134,76,240,15,24,244,244,226,129,167,145,156,69,16,234,
+126,107,59,112,79,161,230,60,159,196,126,7,165,0,47,219,230,35,2,228,0,56,56,107,66,56,237,143,55,143,207,143,74,141,174,220,156,153,149,240,115,131,246,76,245,234,73,155,216,99,3,183,0,243,83,173,154,
+224,146,98,82,48,48,182,118,217,4,103,61,98,192,199,76,149,62,128,245,195,62,198,50,112,84,241,130,13,181,170,119,227,0,70,59,114,6,115,215,167,96,6,253,173,207,70,92,142,56,91,118,245,224,252,228,147,
+235,143,92,156,115,74,110,38,111,186,98,237,214,24,184,235,200,27,177,198,59,12,245,160,91,178,156,252,139,140,140,24,109,64,25,228,240,209,231,158,156,99,242,164,242,28,158,30,221,113,221,162,177,7,223,
+131,26,147,158,220,244,245,160,5,251,77,198,8,38,3,223,38,24,114,58,127,180,56,245,207,67,210,155,230,74,123,68,217,234,82,52,0,126,83,175,111,108,240,125,176,190,73,7,6,91,94,255,0,242,202,199,240,236,
+59,244,201,28,28,251,210,21,96,113,155,70,30,162,59,5,61,61,119,54,71,76,231,208,99,216,1,174,28,242,118,175,79,249,102,71,94,249,19,30,160,30,121,61,254,177,24,152,228,150,139,167,79,47,39,63,80,249,
+231,7,190,59,125,37,42,231,160,183,35,158,169,167,140,245,192,201,95,95,174,61,70,57,103,149,156,146,182,124,103,239,53,128,199,108,224,48,3,158,216,252,250,208,2,8,27,25,196,4,113,201,73,127,146,201,
+215,175,110,0,61,250,68,240,100,157,194,212,227,253,137,129,247,234,249,29,49,250,228,98,158,99,97,201,251,46,63,217,158,211,31,164,131,167,0,3,207,24,36,211,89,88,253,211,25,60,131,139,139,101,25,247,
+203,17,142,160,231,175,210,128,25,229,224,17,229,90,244,200,59,155,235,208,190,64,56,228,115,208,212,68,31,91,117,3,140,111,108,12,246,255,0,88,8,239,142,127,198,166,17,202,122,180,93,58,11,219,78,252,
+30,1,39,183,39,142,163,167,20,50,3,198,98,36,118,107,235,49,143,174,224,223,78,160,14,13,0,87,45,24,27,158,69,35,32,16,146,128,51,216,0,243,243,207,227,193,24,234,41,164,219,145,131,230,103,161,34,69,
+200,231,177,251,71,227,143,203,60,26,176,35,3,248,65,246,75,235,80,115,235,196,36,99,211,61,112,59,210,149,83,198,217,7,7,254,95,237,122,241,215,16,126,31,143,191,0,21,10,198,57,79,180,12,227,118,100,
+136,224,14,159,122,228,227,175,184,237,199,98,166,242,213,71,36,129,201,31,233,246,231,158,123,121,32,19,199,25,57,199,234,80,7,130,249,80,128,57,212,70,57,255,0,81,7,7,145,131,255,0,19,32,15,63,131,117,
+231,173,72,161,120,195,221,15,103,180,133,191,3,255,0,19,92,247,7,156,113,233,82,168,185,234,176,201,130,59,37,233,200,31,238,205,207,224,63,149,73,182,228,252,191,102,148,228,99,34,61,71,142,189,252,
+198,239,198,58,251,244,160,4,85,94,63,214,146,7,83,98,135,219,28,106,132,15,167,94,125,57,169,214,48,120,218,9,60,252,246,80,15,212,106,128,140,250,18,121,237,211,17,125,154,224,143,248,243,149,137,234,
+88,106,33,187,250,55,244,31,92,243,78,22,243,129,205,145,56,237,255,0,19,28,243,147,253,227,239,199,31,226,1,113,96,114,54,236,136,12,142,26,206,18,15,94,187,181,35,197,78,182,210,158,139,108,71,189,140,
+68,245,246,212,143,79,167,94,158,130,138,67,47,123,70,25,28,124,183,184,24,224,231,46,51,198,48,78,15,165,76,33,145,122,219,182,123,0,154,137,200,235,211,115,46,125,240,120,252,168,2,240,178,184,36,5,
+251,56,198,112,126,194,152,199,176,55,252,227,60,116,207,39,60,85,200,237,46,212,125,235,96,15,165,146,40,252,197,240,246,200,231,167,62,131,28,249,188,237,183,148,28,99,30,86,160,70,49,211,5,8,233,142,
+56,227,165,71,153,65,207,217,164,28,103,38,11,193,252,144,156,117,231,212,246,25,52,1,210,253,154,232,12,150,182,199,28,27,81,211,167,95,182,28,116,199,79,99,218,158,150,247,7,172,150,152,227,134,129,
+20,122,16,63,210,73,25,25,235,245,207,175,56,166,94,62,68,92,144,49,246,123,192,73,246,43,31,64,48,122,228,243,145,206,42,226,51,1,243,109,28,129,143,42,232,30,113,212,52,89,244,244,160,14,133,108,228,
+108,110,123,92,142,62,85,11,198,121,234,73,244,228,19,158,185,233,82,125,132,128,50,208,147,215,128,167,182,49,204,189,127,46,166,177,18,117,206,21,128,207,95,221,206,113,235,203,38,63,19,207,108,243,
+86,18,229,83,0,60,124,119,17,185,35,182,57,80,123,224,158,167,191,52,1,168,44,206,62,244,42,59,252,171,239,140,149,155,35,243,231,189,74,182,128,241,231,71,199,60,121,96,142,253,69,200,39,219,0,126,102,
+179,126,216,70,0,145,72,227,172,78,120,28,243,250,251,138,153,110,198,57,150,17,211,141,175,142,252,144,35,108,251,228,231,166,61,104,3,81,44,200,193,55,41,143,171,30,131,60,98,224,227,240,63,208,213,
+133,182,13,130,102,141,128,3,24,102,206,123,114,215,92,18,62,135,167,106,201,91,246,82,85,103,131,24,235,177,240,56,56,60,219,119,29,251,19,156,224,85,164,187,102,35,253,34,208,122,103,120,24,244,199,
+145,142,49,215,142,252,231,138,0,209,22,228,227,18,166,72,239,48,25,252,76,228,140,126,32,243,205,6,23,24,25,183,200,56,12,210,35,18,50,72,199,204,72,192,239,184,116,30,185,21,214,225,142,63,210,116,241,
+207,252,244,184,199,61,127,213,194,56,245,198,113,147,146,49,86,214,110,7,250,93,142,6,1,219,37,216,56,206,112,49,18,238,62,188,142,221,168,2,68,134,227,177,180,36,112,62,96,252,119,32,44,185,207,62,254,
+253,77,89,65,122,188,237,128,129,142,54,40,207,3,156,249,192,227,61,243,199,29,185,21,214,225,23,57,187,182,7,28,252,215,71,30,195,17,245,252,63,74,147,207,56,202,223,217,129,142,1,91,163,220,247,242,
+212,126,103,3,25,62,148,1,117,38,184,28,21,133,112,121,195,133,56,199,61,39,99,207,115,145,142,131,53,97,100,186,61,2,224,17,146,183,5,71,127,73,24,224,117,60,18,114,73,172,177,114,71,35,80,178,108,245,
+0,92,0,48,112,115,242,57,227,29,48,73,207,94,73,169,214,225,137,0,221,217,176,61,8,89,142,125,50,60,140,245,39,248,64,233,131,205,0,107,36,183,24,27,183,31,165,203,140,1,208,228,43,12,28,30,167,183,225,
+82,45,196,202,121,18,28,127,211,200,255,0,217,163,235,238,121,250,224,86,88,114,73,219,115,9,62,139,28,248,30,255,0,234,20,115,211,57,231,166,64,53,42,18,195,13,42,125,118,78,160,122,114,65,246,237,244,
+57,34,128,52,133,212,132,130,35,149,135,162,221,194,191,95,249,98,15,94,227,145,211,53,101,46,39,56,253,204,199,35,143,244,196,207,190,49,24,245,25,224,240,70,50,112,107,36,100,116,149,0,25,229,214,99,
+158,122,146,7,61,0,227,4,113,245,50,169,147,251,208,100,30,114,178,115,142,51,243,22,252,63,48,40,3,102,57,157,177,254,143,49,245,2,224,110,239,144,27,122,28,227,161,29,127,157,133,98,58,193,120,61,190,
+212,121,252,166,7,3,25,3,39,56,227,60,231,7,113,206,75,219,131,206,112,219,7,56,231,5,49,156,126,189,123,84,171,44,131,161,181,236,6,233,148,28,100,156,124,177,182,114,79,113,144,115,223,20,1,187,136,
+219,59,146,237,72,29,238,156,158,188,14,38,94,157,250,228,119,160,68,173,252,87,135,211,18,185,252,50,102,233,245,56,172,117,184,149,114,60,171,22,31,237,76,188,99,28,243,24,224,103,61,50,7,166,70,103,
+91,134,254,43,125,55,175,105,248,193,31,236,219,158,131,174,14,48,61,58,0,106,172,9,223,237,93,127,136,110,245,24,36,77,158,126,167,61,125,234,77,136,0,219,230,231,212,197,180,247,39,173,208,4,113,223,
+167,62,153,172,159,60,19,194,105,201,233,182,66,115,244,253,199,191,167,83,239,79,91,150,28,22,211,70,49,255,0,45,159,167,226,135,60,224,224,241,211,177,160,13,128,131,0,152,221,189,218,4,36,99,184,205,
+217,36,159,195,212,84,138,160,103,108,57,228,228,155,101,198,7,92,145,121,156,241,207,3,158,59,10,199,23,128,103,15,166,15,92,200,221,186,243,229,99,175,167,228,58,7,173,250,231,151,211,248,207,42,192,
+231,29,134,232,241,212,117,4,26,0,216,222,132,0,200,157,57,63,99,66,125,58,253,172,158,58,142,158,216,238,239,57,56,11,18,16,56,56,179,136,14,252,228,220,177,235,193,224,96,250,119,203,23,170,127,138,
+30,127,184,232,120,246,249,9,224,3,223,142,14,105,13,234,114,119,35,118,24,193,207,126,65,81,198,71,29,58,228,99,57,160,13,149,185,56,199,147,17,61,201,182,135,0,28,31,249,233,142,196,19,206,59,156,98,
+148,92,182,127,227,218,220,143,85,183,128,113,192,233,230,242,64,199,245,61,235,36,94,130,78,118,253,48,185,231,215,145,143,196,116,29,115,79,23,4,140,1,32,24,254,5,143,60,113,144,68,131,245,244,3,216,
+128,107,121,238,127,229,210,19,198,120,130,220,122,241,254,187,143,254,177,6,155,231,204,51,182,201,9,231,24,134,18,14,57,255,0,158,188,241,207,235,192,233,158,38,115,209,174,189,113,182,51,131,237,186,
+108,254,63,79,106,112,154,110,237,116,199,176,49,194,71,212,126,252,145,156,14,231,240,233,64,26,34,230,227,130,52,229,98,57,35,202,183,244,206,64,222,120,245,252,115,142,238,251,76,217,4,233,74,58,128,
+54,68,167,174,72,56,82,15,82,120,63,203,53,64,75,49,198,5,209,63,245,206,219,143,174,88,241,248,99,167,210,165,19,94,255,0,12,119,100,127,178,182,196,113,216,102,50,0,228,123,240,120,239,64,22,252,251,
+147,211,78,247,224,71,143,166,75,103,255,0,29,250,231,188,130,75,162,1,93,57,186,243,243,66,167,140,245,33,73,30,167,30,196,140,85,1,53,232,97,136,174,129,60,18,99,180,247,36,242,153,231,35,223,159,122,
+81,121,118,15,73,135,214,40,79,63,80,163,183,245,245,160,13,31,50,248,224,157,61,135,92,22,150,63,232,135,175,36,227,60,99,169,160,189,238,70,219,80,189,240,101,83,158,195,134,24,238,127,206,107,63,251,
+66,240,117,67,245,217,16,207,183,50,129,158,189,72,31,74,145,117,11,207,66,56,236,144,55,29,184,243,240,9,31,95,94,115,64,26,10,247,135,254,93,137,233,202,201,14,0,63,80,195,174,15,226,57,21,48,123,209,
+207,144,167,0,1,150,139,147,215,176,29,249,234,51,159,81,154,204,58,141,194,175,204,210,168,206,9,54,240,19,211,215,206,252,193,233,147,199,74,104,212,156,241,185,241,142,79,147,110,14,126,158,111,235,
+145,223,142,40,3,105,100,191,7,152,32,224,242,11,68,9,31,247,195,28,247,201,32,16,61,248,113,146,239,32,136,34,62,160,75,16,239,219,9,156,131,239,159,228,114,70,164,8,27,164,124,231,35,247,81,131,211,
+208,76,58,117,228,113,248,26,95,237,37,3,62,116,172,113,145,251,168,184,244,255,0,150,227,32,99,223,233,64,27,1,110,201,57,219,31,60,5,158,49,142,252,100,12,143,110,71,173,60,37,215,57,149,155,56,233,
+50,113,199,64,81,115,192,235,207,78,125,235,16,106,74,221,110,36,81,208,102,27,102,253,90,228,16,58,122,227,233,82,45,232,61,47,31,4,28,128,182,163,175,24,199,218,242,61,206,8,198,49,142,180,1,174,203,
+113,222,87,94,121,34,64,79,215,37,54,254,156,158,164,19,76,242,174,15,252,190,72,59,99,204,65,244,231,203,206,223,207,182,122,26,203,55,49,54,79,219,31,142,50,86,215,146,125,205,203,3,140,140,31,83,234,
+41,162,104,243,255,0,31,82,15,77,171,167,228,117,57,57,145,179,219,241,207,24,230,128,53,60,155,179,255,0,45,238,91,158,66,207,23,62,164,102,34,121,199,81,237,223,146,214,134,231,175,153,118,14,56,205,
+196,3,167,39,172,44,8,207,160,192,200,60,30,180,252,244,237,117,112,120,60,24,44,14,58,231,36,18,14,62,167,39,128,15,118,25,114,88,44,237,140,119,130,196,17,158,57,224,100,147,235,211,166,123,128,11,109,
+5,208,56,243,111,27,32,242,47,96,92,255,0,192,90,18,7,229,235,208,12,83,124,139,128,112,103,187,245,57,212,45,15,92,113,197,160,57,250,116,239,203,0,42,18,91,25,155,131,217,160,178,32,245,254,232,61,6,
+48,49,192,28,14,229,140,7,105,99,39,158,150,150,44,70,57,193,204,93,120,60,0,65,201,228,224,138,0,186,82,229,79,250,233,14,15,25,212,45,199,175,31,241,232,58,31,167,78,105,55,220,130,114,238,231,166,63,
+180,172,200,255,0,210,98,79,25,56,235,252,141,6,29,115,52,67,216,90,105,249,237,211,108,60,31,111,65,216,102,144,69,252,95,104,82,59,127,162,217,227,219,129,9,56,245,192,250,247,160,11,198,75,177,156,
+43,227,29,69,237,166,56,239,159,178,12,144,8,200,7,156,231,30,137,231,221,129,128,1,62,250,133,168,250,244,183,192,29,206,78,126,188,214,99,42,242,12,145,158,113,255,0,30,246,141,207,97,196,94,217,250,
+228,16,105,184,244,104,142,15,31,232,214,128,140,114,7,252,123,243,143,231,142,5,0,106,173,197,200,31,234,33,62,191,241,50,129,177,249,38,62,128,113,200,233,154,113,158,228,15,154,40,144,143,250,125,132,
+241,235,254,171,61,71,124,244,53,148,168,164,141,204,152,246,182,183,218,70,79,80,182,253,253,177,192,239,78,242,20,156,249,176,96,140,156,195,26,243,211,144,96,0,142,196,1,219,161,197,0,104,253,162,227,
+170,139,108,158,113,246,200,114,120,60,16,33,39,223,57,224,245,227,138,107,79,62,57,75,82,115,215,237,57,231,174,48,45,200,231,219,142,152,7,53,158,45,162,99,204,182,248,201,24,16,199,211,220,149,92,156,
+231,168,28,98,158,109,161,218,54,180,36,14,63,212,160,61,122,240,141,158,125,8,252,133,0,89,51,206,120,217,102,112,48,65,154,66,79,168,194,196,58,158,216,61,79,82,120,141,165,149,142,62,207,108,72,7,144,
+204,192,1,198,70,83,39,62,252,142,189,133,65,246,88,155,164,128,1,232,176,168,31,129,100,60,247,202,228,31,65,147,75,246,88,135,171,122,97,99,207,92,246,184,95,215,61,134,77,0,41,73,216,241,13,184,192,
+32,101,92,143,67,200,78,72,231,0,147,207,226,3,124,187,128,126,104,237,8,255,0,106,44,2,113,234,192,123,158,249,198,14,69,30,69,182,50,98,92,140,14,168,113,131,201,194,78,192,103,56,60,103,158,59,211,
+126,203,108,78,68,76,113,131,242,42,227,158,192,153,58,117,227,140,115,64,13,120,156,156,49,177,94,156,4,25,63,144,231,7,183,92,28,226,154,97,56,56,146,212,16,49,194,56,28,123,249,108,20,245,4,103,167,
+108,245,147,236,182,249,201,130,113,142,152,42,57,250,9,23,182,49,243,123,154,107,65,106,6,74,93,169,231,28,168,82,58,140,230,108,144,65,231,159,126,152,20,1,89,162,85,192,243,45,73,232,112,48,9,245,230,
+32,121,246,39,183,74,60,163,212,181,174,73,224,123,17,156,128,35,29,61,207,113,211,173,63,101,169,234,151,7,39,179,2,79,224,211,16,61,184,61,77,48,195,104,115,251,187,144,1,32,226,68,7,169,201,3,25,39,
+158,221,253,40,1,134,37,236,96,39,161,194,69,223,175,46,163,243,29,56,224,154,140,199,211,136,251,145,181,45,207,35,160,229,120,207,182,105,124,187,93,216,217,114,70,113,196,203,211,144,58,183,61,143,
+3,219,189,46,219,80,62,228,228,123,176,60,30,220,191,110,128,16,115,235,64,12,17,54,50,161,71,35,0,180,11,219,140,98,51,143,97,143,207,34,156,81,192,201,108,245,199,207,17,255,0,219,118,28,227,56,3,4,
+250,138,140,139,99,200,138,64,49,206,24,3,233,215,105,227,244,252,205,55,16,128,112,179,41,244,221,25,60,117,198,229,3,63,92,114,59,247,0,151,31,237,162,156,147,143,50,46,153,25,255,0,151,124,231,62,196,
+243,219,147,80,176,113,209,85,250,140,249,196,227,142,57,91,98,59,243,208,147,223,61,20,50,96,97,102,110,152,230,216,99,191,82,227,131,249,228,231,214,144,200,171,144,55,142,135,4,196,125,0,25,222,63,
+207,3,52,0,208,172,127,229,148,99,211,50,49,232,56,206,235,81,193,250,240,123,118,163,14,73,253,220,67,35,7,3,118,125,56,22,199,60,254,157,248,21,25,151,60,3,158,56,230,33,249,128,71,97,207,81,223,156,
+81,231,1,203,12,17,193,192,132,156,115,216,183,3,28,231,25,60,30,180,1,46,214,24,27,83,156,224,121,15,159,210,220,125,120,201,62,212,20,108,243,128,57,206,35,159,183,4,140,70,15,7,28,123,96,212,38,245,
+7,59,93,129,207,72,163,45,198,71,105,9,62,156,12,14,156,119,5,236,103,35,203,149,122,231,48,69,244,56,200,99,248,117,244,205,0,77,180,12,124,234,70,122,24,110,134,7,124,98,46,220,227,4,14,195,221,164,
+47,119,136,116,235,4,231,30,255,0,52,121,28,99,176,192,237,81,53,244,67,36,67,35,30,231,200,139,175,212,161,35,24,231,25,250,140,209,246,213,234,99,155,169,56,251,58,243,156,156,12,68,79,191,81,147,207,
+173,0,43,52,67,4,201,15,61,205,172,192,254,57,41,142,48,9,247,252,41,166,107,117,198,231,67,211,238,192,254,135,0,31,48,243,201,207,35,245,201,83,118,164,96,69,63,211,200,64,123,240,8,136,159,110,221,
+70,64,236,207,182,39,123,123,145,234,76,79,252,150,60,247,237,234,57,192,160,9,68,144,55,10,229,122,141,194,34,164,112,51,247,228,201,62,196,119,227,7,4,73,185,0,226,89,24,103,141,169,23,227,146,103,83,
+233,211,131,142,199,165,54,189,135,189,188,199,142,65,134,110,63,242,30,122,118,193,246,3,169,119,218,173,207,75,123,131,158,78,33,56,231,177,223,16,246,234,49,211,36,142,104,2,99,47,94,100,39,156,128,
+97,0,114,7,123,176,1,247,31,253,106,97,184,7,229,43,113,211,144,179,64,15,78,195,237,164,126,63,78,7,57,67,113,108,71,16,77,193,31,242,197,7,211,248,48,62,188,12,227,24,197,64,210,91,96,159,178,202,1,
+227,59,66,127,37,92,103,211,129,199,74,0,155,237,88,224,37,209,35,35,38,107,76,247,29,77,193,35,175,29,205,48,221,113,202,220,149,255,0,175,139,33,193,235,140,207,147,215,248,70,122,103,53,77,165,180,
+201,30,75,130,56,32,228,140,140,122,73,158,188,231,140,245,207,56,8,100,182,192,11,14,8,238,34,118,235,206,72,243,249,28,30,51,234,61,104,2,203,94,168,224,173,210,241,128,60,235,32,121,200,227,247,199,
+36,99,191,79,126,148,130,233,91,31,61,240,24,239,53,143,83,255,0,125,96,15,78,48,125,106,182,248,198,115,110,220,119,22,185,206,51,223,207,200,239,223,142,231,165,68,239,16,201,242,15,213,173,91,143,251,
+230,99,140,96,103,60,140,245,195,80,6,144,159,160,18,93,227,176,243,172,65,198,59,0,184,231,175,7,61,177,192,160,202,227,171,221,128,7,247,237,15,242,28,250,131,145,198,122,214,106,201,27,14,99,137,65,
+228,3,107,49,246,7,253,97,199,3,166,73,31,78,105,9,132,145,254,168,30,71,252,123,149,31,143,204,113,248,227,161,199,161,0,188,110,84,158,101,186,200,192,24,123,110,59,231,0,147,245,35,56,31,162,249,170,
+115,153,174,123,103,18,89,255,0,38,83,207,234,65,233,147,131,71,114,142,21,173,156,113,203,194,217,29,249,10,115,239,235,193,228,82,238,94,15,151,98,64,199,252,177,184,206,126,128,55,233,159,241,0,185,
+189,15,62,117,215,92,229,133,153,95,67,130,97,42,79,182,71,92,210,15,41,142,90,89,15,251,205,102,0,252,160,31,143,111,92,116,53,214,69,60,249,118,74,49,198,33,187,200,207,36,240,14,113,207,111,207,160,
+176,4,157,141,170,241,208,69,116,156,118,25,48,30,188,255,0,16,32,118,239,64,15,81,14,70,221,196,123,75,110,58,231,128,86,28,240,127,3,156,242,115,82,133,13,200,47,236,162,104,135,242,132,103,147,237,
+159,97,80,146,195,141,246,234,122,146,94,233,65,233,199,203,16,192,231,215,212,114,122,33,101,199,205,45,144,35,4,230,226,236,103,242,132,30,79,171,31,78,152,160,11,38,50,56,43,43,99,159,245,217,4,142,
+123,4,25,39,211,142,120,166,148,56,230,41,51,156,2,36,13,128,125,139,243,215,168,25,233,233,80,44,184,207,239,44,136,60,243,115,114,79,28,112,206,170,189,122,103,0,103,154,145,101,24,229,237,136,61,49,
+113,33,56,199,92,148,60,14,58,30,61,168,1,164,38,120,142,108,243,144,38,3,24,236,62,108,159,127,94,125,240,194,62,96,124,169,61,6,249,184,31,175,211,35,32,118,30,242,249,242,0,8,251,62,73,235,231,79,234,
+56,192,80,9,246,233,144,79,94,171,230,200,79,204,160,246,59,46,46,64,234,123,6,25,60,142,114,58,245,233,64,21,204,160,18,12,104,167,140,226,70,39,190,51,130,112,50,122,240,14,114,9,166,249,128,242,4,106,
+122,124,210,178,244,233,128,87,7,142,6,65,233,223,156,218,243,200,206,208,216,25,7,101,205,195,28,143,76,203,142,59,1,235,211,213,12,204,79,222,147,216,125,170,229,121,35,211,204,63,253,110,51,205,0,86,
+18,48,200,5,1,29,252,197,124,123,224,168,252,7,78,253,105,222,123,244,121,91,190,54,162,142,49,207,33,15,161,4,231,175,126,184,180,146,62,71,51,156,140,241,61,193,7,241,14,185,233,235,212,10,147,204,148,
+14,22,111,166,235,150,56,60,142,119,49,231,158,14,113,219,2,128,40,121,195,146,93,253,0,62,90,241,223,57,25,63,152,61,62,180,134,116,207,222,39,28,141,207,0,4,158,126,246,51,159,80,7,64,51,233,86,243,
+51,244,91,140,250,6,152,14,192,244,218,73,199,60,231,140,212,138,147,127,16,156,103,143,189,48,39,29,58,43,115,215,175,94,189,133,0,103,249,200,78,85,240,217,31,242,218,212,142,7,253,114,200,227,183,227,
+158,148,240,204,249,35,145,158,211,193,223,145,255,0,44,198,9,250,113,212,226,175,145,49,224,155,142,63,219,185,92,251,100,70,160,241,208,2,71,175,57,2,50,164,128,76,146,3,232,103,151,242,32,171,117,238,
+57,62,221,168,2,161,98,9,193,96,70,127,229,226,216,116,247,49,113,248,210,22,45,201,121,130,145,218,230,211,156,247,1,160,206,9,224,243,158,163,235,112,96,2,11,56,232,121,121,189,207,221,251,33,31,151,
+227,219,40,193,15,6,121,21,112,79,222,145,113,207,80,62,194,79,99,147,144,113,250,128,86,12,1,192,150,114,15,173,205,176,207,184,42,139,199,62,216,165,50,128,9,18,205,156,100,98,242,219,56,227,168,36,
+247,29,241,235,234,76,141,229,47,31,105,57,198,70,230,144,156,103,0,16,214,62,157,249,60,116,239,80,57,7,35,205,140,227,187,48,79,195,230,178,30,228,112,125,241,64,13,105,212,159,191,47,3,190,163,110,
+15,215,1,134,56,227,29,133,52,206,153,206,246,233,255,0,63,241,119,235,130,146,158,188,241,142,252,84,68,195,150,62,108,39,7,160,104,179,211,147,145,99,142,216,200,192,245,237,70,232,128,24,150,17,208,
+114,208,240,70,9,200,22,93,65,193,206,0,207,57,160,7,27,136,243,203,176,239,205,227,55,92,255,0,117,207,31,175,57,244,165,46,132,103,206,35,142,159,106,152,126,162,117,62,167,238,231,160,230,162,55,17,
+140,129,113,6,121,25,243,97,3,25,239,182,209,72,233,158,163,166,105,134,69,108,177,186,183,227,31,242,216,16,58,3,192,131,30,132,129,158,58,112,13,0,76,38,133,65,45,41,35,215,237,83,231,57,246,186,25,
+29,184,29,177,235,73,246,152,78,113,50,250,0,102,185,61,122,241,246,192,61,57,7,7,243,21,16,148,168,249,110,160,231,209,228,227,220,109,128,99,145,208,17,156,115,193,192,119,218,73,31,241,247,24,199,164,
+174,112,122,244,108,123,116,199,245,160,9,188,232,137,201,117,192,234,75,93,114,113,192,226,235,119,227,142,198,148,221,32,200,34,54,94,57,221,117,147,208,240,13,200,231,211,62,221,170,167,218,27,63,241,
+245,110,72,192,229,85,207,28,0,0,144,231,235,250,250,191,237,19,103,137,173,190,108,224,249,97,79,56,231,137,20,231,24,228,142,221,168,2,83,113,110,14,49,207,115,182,83,207,28,100,221,142,156,254,185,
+167,249,182,248,221,186,33,145,140,121,115,187,115,198,70,110,91,219,250,84,11,44,199,254,90,196,61,114,204,56,231,156,9,135,110,189,7,97,140,212,134,226,80,56,150,28,127,219,99,158,184,231,206,32,208,
+1,190,15,249,233,23,251,173,3,182,15,167,205,54,63,58,145,60,166,57,243,109,186,100,126,229,51,211,169,63,104,227,175,160,238,56,168,68,174,72,253,237,191,94,230,108,118,56,57,156,119,28,28,96,119,60,
+211,195,46,73,50,192,125,72,142,83,199,28,18,110,25,125,120,33,177,223,60,18,0,242,209,167,252,180,181,4,246,242,227,35,234,115,116,78,70,120,3,142,216,57,224,23,16,255,0,122,220,156,255,0,207,16,51,145,
+212,15,53,135,30,227,240,32,240,221,233,218,120,79,94,182,161,128,200,233,247,113,244,235,140,125,41,8,183,254,41,224,83,158,7,216,212,131,235,206,204,12,127,95,194,128,28,101,143,3,62,67,103,166,35,132,
+16,61,0,243,87,29,186,245,250,116,4,182,228,124,205,31,113,133,54,220,241,199,89,248,29,186,17,239,154,104,138,217,135,19,218,18,15,241,91,69,207,62,234,15,183,4,243,129,193,226,131,5,179,30,101,179,200,
+56,255,0,143,100,24,39,190,85,57,206,71,126,167,145,222,128,30,62,204,127,229,154,243,211,247,150,157,115,255,0,95,106,71,32,28,156,115,215,221,192,194,160,42,70,61,114,37,128,30,190,215,77,211,161,94,
+156,114,1,21,85,173,45,49,204,246,201,211,56,138,35,211,166,65,97,147,212,224,142,120,63,86,253,158,211,144,183,86,216,193,235,105,17,199,108,243,147,232,126,157,125,128,46,150,29,68,114,147,130,1,15,
+9,3,142,129,190,209,208,123,99,30,158,161,234,15,149,33,60,255,0,203,72,217,128,234,8,63,104,227,175,29,122,241,142,181,158,108,237,8,255,0,143,219,97,236,45,99,94,62,165,70,121,56,0,30,48,112,49,205,
+74,45,45,176,49,127,2,142,223,232,224,131,223,186,28,112,125,191,19,154,0,176,29,134,127,119,119,158,113,242,196,64,246,203,72,192,227,35,158,253,113,71,155,46,126,81,118,61,130,90,28,114,71,36,174,127,
+50,123,251,129,95,200,183,31,242,254,167,177,2,221,20,28,119,56,135,211,216,244,199,90,140,197,0,207,250,99,30,249,88,84,116,237,194,38,79,224,79,126,56,160,11,191,233,46,62,83,118,51,206,90,61,60,227,
+28,142,26,50,113,215,191,60,117,224,211,54,220,142,60,219,158,79,57,135,79,56,57,207,4,40,198,14,115,192,231,185,197,84,242,160,56,219,113,114,199,174,2,196,57,207,29,250,3,143,240,29,158,64,94,22,107,
+188,19,144,124,184,31,167,76,21,32,254,60,28,224,158,216,0,176,209,93,184,226,105,191,224,86,250,121,227,7,143,245,39,191,82,1,253,106,33,29,208,227,237,12,49,158,62,199,98,113,220,28,136,51,207,61,59,
+99,3,39,21,1,206,237,203,113,118,14,51,196,17,103,36,156,231,45,232,113,156,30,185,231,187,252,199,193,205,206,161,156,142,2,198,1,31,132,82,2,56,7,31,167,90,0,127,151,116,56,107,151,61,50,77,157,139,
+129,199,79,248,245,24,227,29,9,32,31,81,138,83,19,96,102,88,137,29,218,198,223,35,28,30,86,211,167,126,189,254,149,3,75,113,213,110,175,212,1,145,141,185,207,174,5,152,63,204,244,227,57,20,207,181,78,
+58,205,168,54,79,101,83,147,140,224,255,0,163,31,207,159,211,20,1,104,66,115,196,209,12,245,197,157,185,232,59,127,163,169,62,224,241,223,234,239,43,177,158,47,65,155,40,193,253,45,249,237,193,32,18,57,
+60,85,3,115,39,59,155,81,32,255,0,178,6,120,60,18,109,191,44,14,58,103,173,39,218,31,128,13,255,0,97,202,49,231,211,229,64,59,19,252,207,20,1,120,198,79,87,137,185,199,22,121,228,250,254,228,96,253,79,
+175,108,154,127,148,138,7,17,156,240,73,179,112,115,232,54,170,147,159,92,159,110,112,107,63,237,18,114,25,111,25,71,118,141,250,3,215,25,201,235,233,219,233,78,23,101,78,71,218,84,245,203,67,49,246,228,
+137,70,51,156,118,224,28,156,144,40,2,250,224,28,0,123,255,0,203,172,255,0,76,128,92,251,115,183,249,19,77,45,183,37,142,57,249,115,109,115,211,184,253,217,36,15,110,79,76,224,154,169,246,199,124,130,
+210,116,239,111,112,64,4,147,212,92,168,233,200,201,30,192,119,122,78,217,202,201,47,190,45,220,131,245,6,224,158,63,64,112,51,214,128,45,137,147,3,231,3,29,71,145,168,31,215,30,156,244,39,60,123,132,
+55,40,56,18,227,61,254,195,168,190,113,158,135,120,198,79,227,235,129,140,49,39,147,179,49,255,0,122,9,8,60,247,83,114,1,199,110,254,163,174,94,39,126,50,35,57,235,155,66,122,116,207,250,96,246,231,219,
+175,20,1,17,153,73,226,119,82,121,59,108,175,6,122,1,157,242,130,61,57,207,78,15,170,121,152,198,235,137,152,131,144,62,197,117,142,125,15,156,221,65,252,114,121,237,86,119,100,103,16,14,252,194,7,83,
+223,55,189,191,2,125,251,130,67,211,117,182,50,8,30,90,16,122,0,121,186,97,142,217,227,235,140,80,5,83,58,147,130,243,28,119,251,45,200,232,57,206,235,143,196,224,2,120,232,50,106,63,50,49,203,60,163,
+235,109,48,81,232,78,46,83,252,245,246,188,101,32,143,154,212,116,57,17,91,128,63,19,119,211,220,145,237,236,210,75,30,100,181,28,96,19,21,185,224,3,207,23,12,79,78,163,143,110,77,0,81,50,219,227,153,
+112,122,103,236,237,158,79,56,221,118,73,39,184,231,182,7,106,139,204,182,227,51,41,29,183,91,55,67,158,9,19,28,158,157,9,237,212,116,208,101,99,200,184,180,35,24,3,101,168,227,254,4,231,142,79,249,60,
+196,83,39,45,53,167,3,35,63,100,60,250,252,161,136,36,115,219,62,190,160,21,150,75,76,149,46,135,208,152,78,125,200,205,192,244,61,70,15,110,188,61,165,181,24,249,211,143,250,119,132,12,131,235,231,228,
+240,49,147,211,36,129,220,188,159,73,173,142,56,233,111,131,220,125,216,91,243,35,60,138,174,204,135,32,77,7,212,52,127,82,56,128,112,51,130,15,67,158,216,160,7,121,150,237,210,68,25,201,228,68,184,61,
+120,204,174,63,195,61,56,197,56,61,176,24,221,27,99,0,141,208,145,131,158,79,205,208,224,240,78,61,121,170,164,168,28,74,159,85,152,47,94,223,40,29,249,233,239,235,73,230,168,232,253,49,159,223,238,199,
+168,192,92,129,142,159,49,252,9,20,1,116,92,218,161,60,65,158,8,59,224,30,252,129,158,135,166,15,124,30,130,144,222,91,30,15,217,193,63,237,192,58,147,147,221,186,28,0,14,125,242,42,167,158,127,190,14,
+71,252,244,82,78,57,193,221,34,244,245,61,61,185,166,52,178,183,2,66,61,0,185,143,25,239,247,110,15,167,57,244,252,128,46,155,251,113,218,208,251,238,140,100,240,79,60,15,174,6,125,57,28,180,234,17,228,
+144,176,1,216,163,163,2,58,147,192,7,24,233,201,200,252,234,134,102,4,225,159,166,79,239,148,142,222,178,156,103,28,116,239,156,102,152,101,184,232,28,99,56,249,166,0,126,59,110,20,143,243,244,160,13,
+65,168,70,64,202,91,159,114,122,14,15,113,232,123,156,125,56,165,58,132,100,31,150,0,49,217,137,237,156,124,168,123,125,58,227,61,171,36,203,121,218,104,207,66,54,204,125,15,115,116,153,199,29,51,159,
+76,241,76,55,87,227,56,148,126,51,2,79,94,70,111,112,127,19,206,126,180,1,162,110,208,231,9,11,47,67,195,158,156,118,78,163,176,237,250,84,102,226,34,121,137,15,28,98,54,254,76,131,167,161,199,57,193,
+192,205,103,125,166,243,146,101,35,3,146,36,140,143,95,249,255,0,35,145,207,35,29,251,82,125,170,244,12,9,91,7,36,99,200,199,126,127,227,247,144,73,237,206,50,6,15,64,11,175,115,1,24,242,16,250,18,128,
+126,124,253,120,199,78,248,25,162,169,155,155,211,201,102,199,78,18,28,251,156,11,147,158,189,9,63,206,138,0,240,225,28,227,163,21,3,251,162,219,191,213,79,25,30,252,250,80,22,232,156,121,132,240,58,165,
+184,224,112,126,226,12,158,227,159,208,114,34,237,32,174,161,39,67,159,222,54,71,78,6,20,30,125,78,125,135,74,155,59,78,78,163,38,79,79,222,204,119,96,100,175,11,199,36,227,130,0,201,200,199,32,13,9,58,
+228,49,151,39,209,80,117,24,200,1,178,79,29,179,142,157,122,188,9,123,187,147,198,1,139,57,200,233,156,143,253,4,227,52,237,206,127,229,254,69,201,192,204,147,117,245,201,133,185,39,175,39,129,211,140,
+83,195,78,6,62,221,47,108,17,113,56,246,39,2,211,143,192,240,40,1,241,249,128,14,14,58,100,131,131,142,248,3,145,156,247,246,7,138,184,136,121,204,108,120,231,17,73,203,14,227,46,6,122,126,56,227,130,
+77,60,220,246,188,157,240,51,196,243,183,25,237,155,51,128,121,56,200,224,30,163,56,93,215,39,25,184,155,168,25,105,229,31,251,104,9,231,240,25,193,233,130,1,120,9,71,221,130,98,122,127,199,186,46,115,
+238,88,118,227,233,193,227,53,42,188,196,227,236,183,10,14,6,18,48,73,235,156,0,204,57,250,0,51,89,232,110,57,62,100,175,199,105,228,35,156,0,127,212,14,189,49,130,59,226,156,77,208,36,23,96,9,24,15,60,
+153,227,60,241,18,231,191,80,71,92,118,160,13,53,243,240,73,134,245,122,115,177,64,31,153,218,115,199,81,158,189,170,64,100,207,49,221,144,58,143,42,60,125,6,48,114,50,123,122,147,89,74,215,32,129,243,
+17,198,10,221,74,1,236,78,60,130,79,57,239,214,166,15,118,9,62,84,132,241,214,105,27,249,219,99,62,199,215,233,64,26,168,92,227,22,247,68,103,28,6,94,79,182,252,0,71,29,71,183,2,172,32,98,127,227,222,
+232,28,244,102,201,193,227,212,250,116,24,250,158,131,25,100,185,39,253,83,142,188,249,202,185,35,131,199,217,135,108,156,244,28,3,237,42,201,56,60,238,4,142,87,237,120,57,247,81,24,25,35,158,156,28,19,
+211,128,13,197,133,206,49,21,214,118,159,186,203,158,71,78,27,39,223,62,191,90,148,65,49,254,11,224,71,7,230,92,127,227,205,206,51,232,122,154,198,18,75,129,156,228,14,127,210,147,31,172,68,228,99,245,
+234,115,86,22,89,58,50,185,30,162,242,30,71,110,177,161,206,6,78,9,250,226,128,53,86,11,149,228,53,226,15,250,237,18,142,253,119,50,227,175,30,255,0,149,74,182,247,36,130,110,174,20,18,126,244,232,122,
+118,249,93,65,25,247,63,143,6,178,68,146,28,252,178,47,94,62,219,1,252,130,43,19,223,177,199,94,249,169,4,206,14,8,113,158,132,221,196,65,28,119,16,31,231,159,83,200,160,13,133,182,185,35,139,137,216,
+30,71,239,34,199,115,147,188,242,71,245,234,8,230,85,180,156,103,50,76,78,115,140,218,183,185,251,204,115,219,140,122,123,86,58,78,114,1,96,79,57,6,245,70,62,131,202,11,237,248,123,102,173,139,166,24,
+199,190,1,189,136,118,236,60,160,56,244,199,127,165,0,106,37,188,192,14,38,60,100,176,22,99,61,185,25,235,219,219,167,181,76,45,229,0,110,251,80,31,91,3,192,238,119,231,60,117,206,61,120,53,155,29,243,
+227,59,98,35,167,252,125,196,72,193,227,27,99,201,237,201,198,112,122,84,226,237,142,8,81,206,56,251,64,113,193,227,143,47,35,63,76,159,126,180,1,116,64,195,159,58,228,114,6,10,233,100,241,211,24,0,227,
+39,212,142,120,32,245,113,87,29,101,186,111,92,199,166,147,206,48,9,31,92,113,145,198,123,226,171,165,193,110,177,175,174,75,131,142,121,220,4,64,100,250,159,195,56,226,101,155,145,148,28,19,202,187,227,
+216,13,168,189,179,198,78,59,100,96,80,4,138,121,224,78,72,39,254,89,105,199,182,8,233,206,70,114,126,99,131,142,135,155,10,195,188,119,45,158,127,227,222,199,3,168,198,79,61,179,233,140,143,90,128,74,
+173,142,10,140,99,150,152,31,199,144,127,28,14,184,228,12,137,86,72,240,79,202,196,241,140,79,198,126,188,116,245,24,207,189,0,78,36,141,112,62,207,49,7,28,27,125,60,228,247,201,220,167,233,142,113,193,
+247,155,54,231,134,178,148,228,231,254,61,108,136,228,123,72,57,237,211,142,70,113,85,213,134,0,84,92,244,4,168,32,96,158,6,88,113,140,129,145,233,197,76,169,33,198,85,115,158,158,84,103,24,63,245,209,
+126,190,157,243,64,19,44,144,15,187,103,39,161,253,205,186,251,1,132,99,223,223,131,128,77,76,37,183,35,230,180,156,99,140,129,24,3,28,99,135,60,100,245,32,244,224,12,213,97,27,228,96,48,193,28,24,129,
+7,240,19,0,120,231,190,15,61,113,153,60,169,200,56,220,57,232,34,85,252,70,102,3,190,57,192,254,160,22,210,104,58,45,180,157,48,73,145,129,231,140,158,72,228,14,113,144,122,241,208,88,89,227,32,226,213,
+219,0,96,171,63,7,234,14,7,60,115,250,86,112,142,224,17,251,227,130,49,141,144,140,113,198,10,204,78,122,250,254,84,227,21,223,24,153,121,35,7,116,100,147,212,231,50,227,243,3,174,56,56,160,13,48,21,185,
+107,41,176,122,17,59,14,190,164,31,95,199,174,59,26,182,145,197,130,12,51,32,0,112,110,101,56,35,175,59,199,227,156,118,56,56,205,97,164,87,188,231,45,128,1,36,64,114,78,113,223,211,220,246,29,113,79,
+11,118,167,62,88,28,99,230,91,112,115,142,160,52,160,31,99,211,175,208,0,110,126,239,56,9,32,25,224,253,162,108,122,228,237,185,7,183,183,56,167,3,25,192,217,32,207,172,243,99,175,175,219,1,7,191,67,249,
+214,50,181,224,35,49,12,100,130,76,118,100,14,253,90,82,15,176,200,227,169,197,76,30,232,12,239,198,61,18,209,70,113,200,4,74,71,126,70,61,15,169,0,27,97,163,83,140,5,56,29,110,152,99,24,57,193,186,36,
+100,143,161,254,79,243,99,63,121,208,1,140,255,0,166,57,35,39,130,65,187,25,245,228,30,123,242,115,132,100,184,3,147,46,121,198,126,207,158,220,224,57,28,117,207,29,189,114,100,89,238,250,121,143,211,
+160,120,70,122,28,140,18,73,61,241,158,224,98,128,58,5,104,14,115,36,92,18,57,152,177,207,190,47,71,57,236,79,106,92,192,71,204,34,60,242,65,234,58,255,0,207,247,61,58,140,227,175,76,214,34,206,227,239,
+75,50,144,49,143,144,244,207,3,106,28,129,199,92,251,19,205,76,179,30,185,184,110,164,156,1,248,12,71,201,63,94,244,1,169,182,22,201,1,64,245,220,192,30,131,57,251,112,0,244,28,131,207,173,56,52,41,140,
+21,7,156,28,182,9,227,143,248,255,0,219,147,249,123,119,170,2,124,99,41,119,207,112,160,156,28,227,37,115,159,167,95,97,214,151,237,0,113,182,235,215,149,113,199,112,2,247,30,195,215,241,0,210,15,25,224,
+36,76,57,56,25,28,242,51,143,183,243,158,158,156,103,60,114,165,135,104,98,24,228,96,224,28,118,230,228,140,116,227,57,247,198,49,158,183,10,120,196,217,25,251,203,33,63,170,31,195,234,61,170,80,196,243,
+137,253,114,18,69,227,160,193,251,63,67,250,112,40,2,240,97,193,17,67,233,131,176,244,29,199,158,199,215,175,214,156,36,140,28,121,17,131,142,209,200,120,244,249,101,228,15,64,115,235,142,51,71,113,221,
+193,153,129,193,203,9,136,32,142,120,251,43,96,254,56,231,190,78,101,12,184,5,145,249,236,22,112,58,117,31,232,139,211,158,167,242,25,160,11,161,163,207,250,165,36,245,196,83,15,200,239,98,56,246,35,142,
+148,48,66,62,228,96,224,245,89,186,113,146,115,232,115,129,211,131,192,237,80,58,1,196,46,65,235,242,74,115,248,155,97,207,184,35,235,72,88,224,132,182,151,57,24,253,212,167,184,235,136,148,100,231,191,
+181,0,94,85,3,188,73,207,247,100,30,249,29,9,245,3,208,113,197,74,60,191,226,157,65,224,127,171,152,140,145,244,231,159,99,249,142,115,129,148,114,109,230,11,208,254,238,92,118,244,136,244,192,56,255,
+0,235,96,221,208,152,228,80,127,188,146,131,199,214,49,255,0,124,247,250,154,0,217,85,128,224,27,152,142,57,249,150,232,1,146,50,48,6,57,231,210,166,41,107,192,19,64,6,14,127,119,118,64,28,112,114,163,
+215,39,140,250,113,88,106,170,122,160,207,95,154,57,0,7,254,253,224,243,244,239,218,165,88,144,240,177,2,79,101,141,120,224,127,177,158,223,204,96,115,128,13,129,5,163,245,187,131,30,187,46,56,235,216,
+176,35,183,111,94,79,116,107,91,60,231,237,113,15,247,99,149,114,123,115,230,47,79,229,219,165,100,48,81,193,76,123,20,35,158,248,1,63,31,207,158,41,48,188,254,236,17,234,35,126,191,83,24,245,250,118,
+250,0,106,139,59,102,225,111,144,251,1,48,245,63,243,215,56,192,224,114,104,251,20,75,199,218,148,140,129,157,204,14,125,129,108,30,156,114,113,223,181,99,144,51,247,72,245,196,14,65,0,227,160,117,25,
+207,182,71,167,90,64,16,143,188,64,56,201,242,36,7,223,248,241,244,32,245,199,226,1,174,108,151,156,92,18,71,92,28,227,167,172,152,207,212,12,115,193,230,154,109,79,79,50,76,119,253,219,145,223,142,24,
+254,36,96,251,14,249,138,145,140,229,200,239,204,46,56,227,221,184,246,57,231,142,120,5,254,92,39,24,152,103,191,238,27,143,108,121,68,247,235,156,117,160,13,31,177,30,58,30,152,13,27,1,233,206,231,7,
+241,207,208,230,152,214,155,78,74,41,207,66,34,12,57,233,157,206,27,24,29,15,175,62,181,158,109,226,233,230,161,30,134,221,143,191,252,243,61,125,113,198,59,241,134,237,219,157,175,8,236,79,144,224,96,
+142,249,131,39,143,98,120,224,241,64,22,204,68,17,242,174,57,193,49,168,25,238,79,239,70,122,140,14,217,57,199,90,76,58,228,5,80,0,236,170,63,16,222,118,71,92,156,115,215,142,194,184,47,140,121,240,1,
+192,31,184,184,92,253,54,195,199,190,15,29,205,48,43,18,64,154,217,185,231,49,92,231,219,31,32,61,249,96,14,58,128,104,2,218,205,42,245,3,129,221,143,63,77,147,19,250,31,198,159,246,167,3,148,80,121,25,
+41,33,193,233,201,98,50,49,235,144,115,235,85,86,59,129,202,207,104,0,245,142,240,103,159,82,140,7,184,193,7,138,82,46,184,2,123,19,245,75,161,159,92,238,133,137,236,70,63,60,230,128,38,55,78,195,253,
+108,106,61,237,230,99,158,120,27,122,14,63,62,156,84,66,242,64,79,239,162,0,117,31,99,156,244,255,0,182,138,51,232,6,1,250,228,211,11,94,143,249,105,167,96,247,41,32,250,15,154,215,32,250,99,159,94,212,
+211,61,242,140,3,96,79,251,33,193,234,59,27,46,71,0,22,201,247,29,13,0,76,183,108,84,102,104,240,48,50,108,101,245,238,76,220,250,100,243,248,210,27,199,207,252,124,100,28,14,45,166,207,111,225,19,227,
+60,122,243,235,208,213,119,150,248,224,159,236,246,250,179,40,29,185,31,101,82,127,94,163,185,21,17,154,224,30,83,76,36,31,239,18,115,248,219,241,235,211,211,216,208,5,131,121,34,146,22,119,39,39,4,218,
+203,142,51,233,112,49,236,6,62,167,179,77,229,203,97,150,96,125,254,201,57,231,142,255,0,105,35,167,191,61,15,96,107,153,39,98,75,37,128,232,114,9,31,158,45,71,167,76,103,7,24,205,70,205,54,15,201,167,
+28,158,9,47,130,79,60,15,178,240,121,25,234,115,235,142,0,46,253,170,236,14,102,60,158,246,146,143,168,7,205,99,200,244,110,56,60,212,77,117,120,220,137,163,39,254,188,228,7,25,60,241,32,200,63,161,245,
+170,190,100,195,160,211,135,94,138,78,79,124,226,211,159,112,79,111,165,70,215,76,6,29,116,242,58,96,70,135,175,81,153,44,198,56,246,3,215,181,0,90,51,223,54,72,150,62,189,224,96,72,62,153,159,39,158,
+185,231,61,135,52,207,62,248,100,151,133,136,193,207,144,234,125,142,124,243,159,83,140,118,170,94,106,49,192,131,79,25,245,68,235,233,149,178,250,17,146,121,228,243,197,72,60,166,235,22,158,61,48,142,
+48,57,199,221,180,110,231,130,61,104,2,226,221,94,5,59,188,162,56,24,216,163,4,30,6,12,204,51,156,228,227,56,237,205,56,95,93,47,65,16,247,28,31,126,67,129,201,3,57,234,78,71,57,170,13,20,13,255,0,44,
+236,134,61,86,102,227,235,246,49,159,110,63,30,112,91,229,219,131,183,203,177,39,158,130,80,122,96,100,11,35,232,125,121,250,154,0,209,251,85,203,147,205,191,39,161,126,220,99,172,163,159,110,191,142,
+105,159,106,187,232,100,178,0,12,140,183,35,242,144,243,232,58,242,114,49,138,162,34,143,248,98,182,206,59,25,189,113,218,200,99,215,160,228,241,235,74,168,195,57,142,220,103,145,137,110,212,158,1,201,
+197,190,51,249,117,233,232,1,104,207,114,73,43,53,170,144,121,33,134,62,157,64,60,112,57,56,166,153,174,73,57,186,128,125,31,4,227,216,72,185,193,238,15,74,175,134,7,253,92,99,166,118,79,113,159,79,226,
+135,191,224,56,227,221,65,96,14,99,110,253,101,114,62,156,198,56,254,116,1,32,55,36,255,0,199,208,57,61,16,147,140,224,3,159,53,179,219,177,0,118,7,154,121,19,14,62,212,73,28,225,143,57,236,7,204,199,
+63,135,28,241,193,170,108,92,28,44,109,208,231,50,149,28,246,4,41,60,99,147,140,123,147,208,89,102,82,0,243,64,60,252,179,200,113,245,206,57,61,50,71,174,113,220,2,211,37,195,12,155,163,223,32,50,131,
+233,140,113,159,110,156,100,224,96,84,126,85,209,0,9,88,143,103,140,126,35,63,200,158,49,206,1,168,205,204,195,56,19,156,103,131,112,0,250,100,191,229,142,122,227,189,64,247,183,0,224,135,3,142,90,229,
+50,57,200,234,217,35,183,76,103,189,0,89,48,94,28,230,78,56,192,243,97,227,175,36,151,35,211,61,56,224,251,71,246,91,149,206,101,36,140,125,201,32,199,98,9,59,152,231,235,252,249,170,141,123,59,116,44,
+190,184,157,88,224,103,140,9,215,63,76,211,126,209,112,51,150,61,127,190,113,250,79,144,51,193,192,192,232,14,70,40,2,233,142,108,99,115,54,8,63,52,144,131,198,15,63,119,142,113,156,247,24,193,6,144,37,
+200,236,199,185,221,52,43,255,0,160,200,51,248,246,0,244,197,80,55,19,158,189,193,7,19,62,79,76,240,102,24,24,199,182,121,166,121,210,156,140,28,228,231,15,39,76,122,137,179,192,3,158,56,231,165,0,104,
+109,187,201,2,6,36,241,145,113,30,122,243,129,191,7,183,124,245,198,105,24,94,143,249,98,227,63,244,246,138,51,159,65,158,167,131,215,3,0,86,105,150,126,220,143,105,102,82,62,153,155,3,211,175,36,224,
+100,80,143,49,56,47,48,207,247,102,156,96,251,126,247,7,219,167,20,1,125,158,244,244,140,19,215,254,62,212,251,103,28,227,29,48,0,239,156,226,155,230,106,1,178,96,221,198,64,55,3,113,237,201,232,125,113,
+128,120,237,140,26,102,57,79,241,220,142,115,134,154,92,12,19,158,119,224,112,56,4,254,28,226,171,53,182,236,159,180,76,9,206,49,44,195,39,159,79,166,71,57,61,168,3,84,201,120,122,219,128,127,235,180,
+126,190,203,219,208,246,227,4,96,84,126,117,216,39,247,92,244,3,204,85,57,250,132,254,71,166,114,64,21,152,182,44,122,92,78,121,207,15,112,115,158,199,25,57,235,199,25,206,7,29,44,173,131,129,159,54,224,
+227,213,174,15,161,207,40,71,35,212,244,250,140,0,88,55,55,93,224,36,142,254,119,29,1,28,133,56,234,9,60,227,20,130,226,229,186,196,6,1,233,114,192,241,212,1,229,227,208,30,72,235,158,5,87,54,229,122,
+201,47,39,31,122,92,255,0,232,190,7,169,231,25,250,97,194,4,4,254,241,193,239,153,28,2,123,255,0,203,19,143,167,56,238,121,160,11,107,45,206,57,35,30,243,146,112,56,61,109,200,57,193,60,228,250,227,138,
+112,150,80,78,231,143,131,207,239,21,186,156,114,13,161,35,158,79,92,126,28,84,16,70,71,18,177,236,65,121,71,215,145,109,207,97,244,250,12,56,197,24,92,249,131,130,48,115,43,116,231,28,90,30,73,207,113,
+145,158,148,1,107,206,108,227,125,177,233,247,151,118,115,244,178,32,250,243,200,60,118,167,137,88,156,131,105,243,14,190,78,227,159,95,248,240,39,142,189,70,70,71,28,99,60,69,15,36,202,172,122,30,38,
+4,122,242,109,112,121,200,224,143,212,211,76,113,12,225,162,199,163,25,179,198,113,210,213,61,127,250,248,160,13,63,57,120,5,173,178,49,247,97,193,63,135,216,70,15,126,156,118,244,169,68,178,1,145,36,
+60,251,21,199,226,182,125,78,58,159,207,177,202,64,131,144,33,108,255,0,23,155,114,58,251,8,49,128,71,184,245,205,73,152,241,254,174,17,207,105,230,199,28,243,186,223,131,142,157,176,58,142,192,26,59,
+217,255,0,229,165,190,225,193,59,165,206,15,98,62,198,78,121,250,158,227,189,0,73,218,75,96,70,121,59,199,126,228,216,147,208,243,215,220,3,138,203,103,135,186,167,78,130,121,65,207,29,49,15,191,83,237,
+210,163,253,201,206,84,142,121,34,234,227,61,7,24,251,62,58,119,193,160,13,173,178,145,128,214,108,115,199,27,190,135,63,96,28,100,14,112,121,29,51,192,140,165,202,245,54,196,250,140,168,206,125,13,142,
+64,224,227,241,25,56,200,202,204,67,163,201,232,72,186,185,247,227,254,61,192,207,81,215,39,166,56,166,153,209,120,18,92,99,175,23,18,227,144,15,25,128,253,15,245,160,13,61,151,71,128,240,131,236,207,
+219,182,69,134,7,124,2,122,243,138,141,161,186,60,249,176,3,146,127,214,28,227,140,245,180,30,158,153,57,38,179,76,202,221,37,185,192,60,98,115,193,233,200,104,151,3,234,61,134,105,192,19,210,75,159,79,
+248,248,63,252,104,246,201,237,142,58,100,80,5,207,46,227,167,159,24,61,182,200,65,233,199,43,110,7,191,60,115,207,20,223,34,224,140,137,147,61,179,51,127,75,115,219,211,61,250,231,2,174,199,63,242,241,
+116,2,255,0,211,86,110,228,158,68,43,250,241,156,245,6,157,178,83,202,205,117,193,3,38,83,198,59,3,179,35,220,100,231,39,167,57,0,148,193,117,158,101,132,142,164,121,210,224,3,255,0,110,132,19,193,244,
+60,146,115,154,99,37,194,143,245,150,231,253,217,100,200,25,207,65,105,219,177,36,117,231,190,98,97,56,200,51,92,245,201,253,226,145,215,156,225,62,158,192,158,51,205,56,9,65,31,190,185,36,131,198,240,
+11,96,156,128,76,68,156,224,231,142,188,14,156,0,46,203,146,14,38,128,100,142,178,205,248,112,182,185,247,199,92,250,243,148,217,114,6,68,209,131,158,162,75,158,91,161,31,241,235,215,32,123,156,14,157,
+104,45,32,233,36,160,247,27,145,179,147,144,9,48,142,196,100,140,146,122,112,77,38,110,15,32,200,59,103,202,133,137,224,122,192,71,243,233,233,154,0,114,181,224,56,18,110,57,3,59,166,124,123,115,108,72,
+7,30,156,241,239,83,102,243,28,130,192,231,164,82,176,30,189,109,128,193,201,206,122,250,113,80,136,238,78,114,37,108,243,197,173,190,1,236,72,22,195,244,61,255,0,32,199,50,242,35,148,244,227,236,150,
+196,117,236,86,0,65,192,200,221,239,211,184,4,187,238,199,59,9,201,199,16,77,159,98,74,218,156,114,15,208,231,240,126,235,146,48,34,145,187,15,220,76,0,227,190,109,7,183,191,182,121,170,219,164,31,122,
+25,137,24,35,253,18,35,212,117,255,0,81,192,7,0,244,31,82,120,119,218,31,188,82,143,102,182,132,123,129,145,26,224,250,241,147,211,61,40,2,82,110,70,7,144,112,71,252,251,204,84,119,192,205,184,30,189,
+1,39,241,205,72,162,97,247,224,97,207,252,251,49,3,28,224,3,18,156,246,249,176,15,183,21,95,237,88,235,20,157,63,134,40,143,167,76,66,115,144,59,231,7,145,72,46,21,143,250,153,73,39,254,125,212,145,207,
+95,150,220,224,100,243,237,156,99,173,0,92,218,207,128,21,151,61,49,104,231,167,124,0,65,244,56,39,3,245,176,163,111,222,14,114,58,155,41,121,31,151,83,156,145,192,207,165,102,249,160,227,108,18,12,159,
+249,246,39,29,113,210,220,103,243,207,244,112,147,0,230,55,7,184,251,33,32,30,50,115,229,169,245,227,2,128,52,140,170,50,114,87,253,235,9,58,140,31,66,54,241,206,63,174,75,76,145,30,178,132,245,221,97,
+63,3,240,28,126,71,252,40,239,207,38,22,28,14,5,166,59,245,231,107,28,245,207,61,1,227,168,12,209,127,207,38,7,56,230,216,227,140,245,253,248,227,249,103,165,0,88,121,45,242,195,237,80,115,140,238,179,
+184,94,131,142,72,206,114,126,189,253,169,85,161,233,246,171,124,117,24,138,113,212,228,244,0,119,39,147,207,183,74,174,101,140,131,149,3,144,73,242,100,94,153,57,56,184,193,235,215,183,215,162,9,162,
+234,24,143,251,101,32,39,183,95,180,103,140,156,116,227,242,160,11,185,64,62,91,139,108,17,252,81,203,140,15,81,230,129,143,76,224,210,124,189,13,197,161,238,3,71,41,30,195,62,112,60,15,115,211,166,51,
+84,89,145,142,67,169,207,24,49,202,79,174,14,233,199,208,114,64,231,4,240,41,165,130,140,102,48,61,12,39,211,158,77,200,227,219,255,0,215,64,23,89,136,255,0,150,246,185,246,130,225,190,152,196,164,96,
+241,158,199,211,166,89,35,201,199,239,224,247,204,55,3,215,128,11,99,223,168,239,222,169,135,4,96,61,186,242,0,204,74,185,224,96,156,234,3,158,188,140,123,244,34,148,78,84,253,251,98,0,192,202,68,15,62,
+135,251,75,147,142,49,199,208,244,160,9,203,202,115,137,237,0,35,161,18,2,59,116,50,41,227,167,175,7,30,241,132,152,146,76,246,36,30,131,56,32,158,120,12,196,115,223,143,202,162,121,247,113,230,91,12,
+245,5,99,234,113,255,0,81,18,115,248,251,14,56,166,44,139,145,251,200,20,242,71,10,1,228,122,106,7,174,122,119,29,177,140,0,78,96,159,140,75,100,78,59,178,176,30,252,228,145,131,158,167,220,3,205,53,173,
+231,110,175,101,129,221,76,106,112,65,227,239,14,157,249,239,211,61,25,246,134,28,11,136,64,24,24,13,140,117,224,47,219,198,127,46,113,128,40,251,73,233,246,160,15,60,137,2,231,254,250,191,193,198,125,
+50,123,17,206,64,30,45,166,32,228,219,227,175,250,184,219,131,220,146,220,247,239,143,196,83,126,204,7,222,123,96,61,213,64,30,191,117,143,60,99,174,120,165,243,164,198,22,225,79,161,55,49,15,78,223,110,
+231,159,151,219,168,230,156,37,144,156,153,145,179,156,98,230,28,231,142,255,0,218,25,199,3,28,158,253,49,64,16,155,101,31,199,110,112,72,200,126,158,184,228,96,115,192,193,28,154,119,147,8,63,59,195,
+200,206,60,253,159,204,119,25,252,123,228,10,155,207,144,241,231,236,28,231,109,220,71,244,251,105,207,229,249,210,9,24,228,27,166,32,122,78,135,60,251,206,220,254,35,233,215,0,12,9,108,122,155,83,208,
+124,215,168,88,231,140,227,7,211,190,61,184,205,13,4,100,6,81,108,195,253,153,208,224,240,123,40,7,60,241,193,236,0,233,82,135,7,25,186,145,78,70,51,58,17,223,61,36,57,237,233,199,61,71,11,191,0,103,80,
+114,58,237,243,65,35,145,233,184,143,92,128,71,95,106,0,173,229,170,142,82,60,118,218,209,182,51,129,146,114,8,57,200,245,235,199,2,149,85,15,2,40,135,251,242,109,61,125,152,2,79,126,112,51,156,117,171,
+98,83,142,47,216,99,160,50,32,39,175,36,236,96,49,142,164,103,208,158,48,198,144,183,75,242,121,35,230,149,7,56,255,0,174,35,62,135,169,228,243,205,0,71,185,87,164,112,147,237,40,29,56,227,150,232,113,
+145,198,71,228,36,18,33,25,48,71,215,31,241,240,7,226,51,131,211,183,175,94,180,129,177,143,244,216,137,36,19,153,87,35,57,237,246,102,228,2,59,99,140,145,70,236,158,110,225,56,4,134,44,199,4,17,220,88,
+31,99,212,115,207,166,0,19,206,76,133,91,112,113,243,2,110,193,233,212,130,87,25,61,79,56,253,49,34,207,207,207,110,88,114,127,215,66,195,28,2,1,57,198,120,237,147,207,78,208,23,95,249,251,135,118,9,206,
+65,61,255,0,233,192,31,115,147,198,123,228,154,107,237,35,254,62,160,36,156,140,162,28,224,113,140,217,19,192,250,118,233,138,0,185,231,168,56,91,96,1,3,63,189,131,168,252,115,249,143,126,185,166,155,
+153,14,74,218,151,255,0,114,88,184,192,61,213,199,63,174,125,120,170,43,30,72,253,252,88,193,36,133,139,159,160,123,16,71,211,250,211,190,204,167,159,180,197,147,158,54,64,51,245,38,203,29,201,3,35,235,
+232,1,103,237,78,167,45,102,224,28,224,60,248,255,0,218,254,248,201,224,146,122,114,2,139,208,127,229,213,131,14,112,46,194,14,121,29,101,32,126,159,137,224,83,251,36,36,147,189,75,17,252,63,100,207,110,
+255,0,101,78,7,160,206,51,219,138,83,104,152,225,178,122,156,152,58,253,84,46,120,227,156,80,5,147,119,32,7,109,188,131,167,203,246,213,207,99,199,239,190,97,237,215,160,228,230,153,246,201,28,133,54,
+119,7,177,255,0,77,3,255,0,106,240,15,108,244,24,28,138,141,109,3,100,145,145,192,24,17,28,250,114,24,30,49,142,220,241,82,11,48,57,7,111,60,228,66,6,48,121,110,189,143,167,233,64,14,243,207,83,109,48,
+239,131,123,31,127,172,196,131,237,142,212,44,204,199,152,136,192,228,53,220,13,158,71,252,244,148,254,24,233,158,132,243,73,246,80,58,76,6,115,206,203,99,143,76,22,198,51,211,57,255,0,123,0,230,148,91,
+247,105,128,39,161,49,91,14,152,232,193,72,198,61,15,177,235,64,14,50,134,57,216,7,175,250,117,168,4,227,169,31,55,127,200,116,30,177,231,118,7,0,115,194,223,89,231,191,31,119,240,198,59,112,42,65,111,
+24,60,204,57,239,136,186,158,9,218,33,252,56,57,235,154,152,67,110,163,253,122,142,56,45,208,231,35,162,168,239,244,231,191,160,5,109,160,119,96,8,35,254,63,108,179,140,244,229,112,221,136,227,159,83,
+138,114,236,28,25,153,125,49,115,166,150,238,56,221,15,228,73,205,76,86,1,210,123,99,219,37,228,29,56,201,11,184,247,232,49,158,227,61,91,251,156,16,183,22,199,190,209,246,172,103,144,71,8,122,244,4,140,
+144,61,232,1,187,80,156,27,137,142,121,193,159,77,198,51,212,159,32,250,241,143,126,6,115,74,22,44,100,200,196,158,163,237,26,112,235,140,28,139,108,19,237,192,233,218,162,217,23,36,205,8,3,156,15,52,
+147,208,147,150,129,143,255,0,95,219,21,27,71,6,115,231,198,114,15,85,144,149,239,142,33,7,234,54,255,0,67,64,23,68,80,54,62,124,28,14,178,233,236,125,248,48,175,32,118,231,249,16,191,187,83,133,96,79,
+32,101,236,56,235,211,0,126,3,29,253,13,101,149,132,231,50,219,176,25,251,177,73,147,236,79,147,201,254,99,3,56,226,162,48,198,192,224,64,65,227,152,220,31,98,48,7,99,158,71,111,165,0,108,140,158,112,
+199,147,247,126,196,216,7,183,7,142,253,190,152,230,152,210,200,58,7,35,176,100,181,110,231,182,241,199,183,235,154,197,242,33,28,6,69,111,96,224,122,96,19,34,243,143,166,79,30,180,195,111,144,126,114,
+51,158,66,146,7,190,126,209,207,225,140,247,205,0,109,125,162,64,7,238,193,25,199,17,65,142,249,56,19,158,79,161,3,143,173,70,215,111,192,16,71,215,167,149,9,231,185,35,205,57,254,125,5,99,53,185,3,6,
+124,130,14,50,61,59,96,221,142,127,35,250,226,31,179,184,39,18,227,28,241,19,49,231,29,133,249,227,183,60,247,227,169,0,220,123,150,57,2,8,200,233,254,165,7,94,223,45,192,7,166,71,232,78,42,185,187,149,
+65,2,206,3,159,88,162,39,166,51,150,186,254,185,227,175,60,101,121,82,255,0,207,87,3,251,194,220,99,166,112,55,106,35,131,208,254,99,173,46,201,7,91,182,29,112,12,104,48,121,233,255,0,19,46,153,198,78,
+126,153,235,64,23,205,236,163,254,93,109,135,110,98,136,117,236,115,114,70,59,130,56,232,56,192,168,26,250,126,49,29,176,231,159,220,65,207,226,101,63,167,185,244,205,96,178,103,63,109,35,39,156,36,59,
+128,207,80,78,161,39,95,94,65,231,183,69,41,47,59,111,167,227,169,13,104,160,241,207,31,109,32,103,29,59,244,29,133,0,75,246,217,121,196,86,160,250,249,86,255,0,152,7,112,235,158,61,133,68,111,36,60,24,
+237,216,231,144,32,181,198,125,201,94,196,113,211,140,103,29,41,54,72,56,107,251,131,234,119,90,231,175,253,124,224,1,233,198,79,61,113,77,222,195,143,182,220,190,61,237,246,140,99,61,46,8,246,231,61,
+9,224,208,2,253,170,66,126,229,176,3,161,49,90,129,223,145,251,146,51,232,58,143,76,84,109,117,41,206,4,7,211,17,89,117,3,209,161,62,167,130,113,239,222,156,103,11,201,186,157,123,99,116,3,56,255,0,182,
+199,167,168,192,233,215,20,166,238,60,31,244,153,201,237,255,0,30,143,159,160,46,217,56,28,18,59,227,29,232,2,7,150,228,255,0,12,120,235,143,35,78,7,28,247,251,62,79,230,7,57,7,57,166,172,179,114,8,137,
+72,232,124,173,63,61,255,0,233,216,251,12,30,79,61,234,199,218,78,56,154,232,240,120,88,236,65,62,157,9,245,236,71,25,227,174,25,246,166,231,253,34,233,126,191,96,0,244,192,193,201,235,235,193,52,0,213,
+149,143,223,145,87,215,16,216,15,229,105,243,30,131,215,142,7,106,42,65,116,221,218,237,187,244,180,110,190,155,112,56,252,125,56,162,128,60,1,99,80,14,217,207,126,225,122,246,201,144,99,39,252,104,249,
+151,164,217,227,144,36,85,247,4,159,48,140,112,115,239,206,7,115,236,236,122,94,16,51,208,219,149,252,49,145,156,14,135,244,167,139,121,51,197,210,145,158,241,16,127,63,56,17,219,57,234,57,227,52,0,213,
+50,147,145,56,228,241,186,225,87,142,158,167,219,56,193,29,9,3,138,147,19,2,51,60,89,206,49,246,248,199,190,112,206,7,78,122,127,133,56,90,187,117,185,82,59,31,45,122,125,68,164,247,250,251,154,81,104,
+120,6,228,14,184,27,14,14,63,237,166,78,51,158,220,19,235,154,0,85,243,14,15,155,31,94,218,133,182,123,228,96,177,255,0,245,212,201,230,14,151,106,171,158,139,127,15,169,207,70,199,208,128,127,30,149,
+23,216,144,31,154,230,50,78,7,42,163,174,7,59,164,56,235,223,35,212,100,10,145,44,99,102,226,120,135,29,74,112,79,115,144,8,198,113,156,231,39,165,0,78,38,42,64,55,69,137,60,15,183,195,211,191,88,216,
+126,163,243,169,214,228,167,1,212,231,129,155,184,91,158,58,226,212,251,123,245,235,80,13,56,96,225,161,124,12,244,35,140,117,255,0,87,180,99,212,144,1,199,61,234,100,211,31,168,251,62,56,31,48,139,249,
+159,94,122,142,121,224,241,144,7,253,174,126,170,209,12,127,211,120,91,167,160,54,160,251,243,219,62,152,43,246,201,249,204,131,191,79,32,243,211,63,241,236,115,129,192,227,158,158,245,34,105,146,103,
+39,200,25,61,254,204,160,247,36,99,0,254,156,117,237,137,254,192,157,30,75,126,59,102,216,1,248,9,123,228,96,227,233,64,12,91,169,8,4,203,158,128,145,26,28,142,189,13,186,131,215,140,158,252,138,176,178,
+147,140,238,110,153,31,100,140,147,212,240,66,47,7,142,62,152,207,24,96,177,181,63,199,14,70,51,151,180,192,57,247,148,247,3,29,115,219,60,19,50,217,90,1,147,37,184,231,57,205,144,62,135,60,247,245,253,
+7,112,11,17,206,131,1,162,151,25,7,6,205,72,227,174,1,7,142,122,158,70,123,118,176,37,66,9,22,236,192,113,205,130,147,158,115,192,145,78,62,157,242,6,13,83,22,182,184,31,233,22,252,116,83,61,144,29,241,
+193,35,252,49,220,231,6,202,91,91,140,31,58,211,216,155,155,34,71,62,199,142,255,0,215,212,0,89,73,7,95,177,7,3,183,216,156,15,78,64,115,233,158,156,145,222,167,14,24,124,186,104,201,29,237,38,3,223,128,
+192,245,206,79,83,239,212,83,17,219,169,255,0,93,107,193,24,253,253,184,251,221,57,36,12,103,158,156,140,99,140,209,182,200,18,68,214,153,234,127,127,106,115,142,157,65,39,176,235,129,216,103,6,128,47,
+130,87,59,180,224,160,247,251,45,194,231,56,228,147,41,29,114,121,200,62,213,50,186,129,131,102,131,175,252,177,148,99,211,147,41,63,92,129,138,203,197,152,255,0,150,182,205,244,154,223,166,78,1,218,167,
+183,124,140,115,245,164,197,166,73,89,109,198,115,129,246,184,128,62,156,42,118,252,0,61,193,197,0,109,44,144,142,150,177,146,79,247,164,92,28,14,131,45,206,72,244,233,158,130,172,44,168,6,227,102,156,
+119,195,28,118,206,118,158,156,103,24,39,138,231,149,96,39,62,116,88,25,24,91,177,142,216,199,200,125,122,227,143,229,97,77,184,192,243,212,17,212,155,129,235,254,204,71,131,140,244,245,199,52,1,188,183,
+10,8,197,170,131,236,211,41,235,216,4,245,199,78,163,185,35,21,33,186,86,255,0,150,56,199,7,106,220,57,29,120,200,136,243,245,253,13,98,172,214,195,31,190,207,210,225,192,233,215,2,215,24,246,25,62,181,
+46,251,98,63,214,69,146,127,137,158,83,249,27,78,157,115,208,143,115,205,0,107,139,130,7,22,242,30,156,148,186,56,39,167,2,216,224,122,243,158,190,149,42,206,248,255,0,143,118,234,48,12,119,101,71,183,
+48,96,253,125,114,50,71,21,142,30,219,147,152,142,122,144,172,59,115,255,0,46,36,251,251,126,84,160,219,231,134,239,220,41,247,232,218,112,200,224,12,118,235,208,154,0,216,223,33,198,45,144,19,192,221,
+28,195,243,221,110,115,233,201,29,70,56,38,167,95,53,185,16,194,59,127,168,99,233,158,176,140,15,124,243,206,6,43,16,52,106,64,5,135,24,59,98,7,242,255,0,64,254,71,232,106,96,34,110,119,76,7,4,226,217,
+207,211,238,89,30,15,177,29,241,197,0,108,108,115,141,214,241,182,49,243,11,70,61,51,220,42,143,99,199,183,76,212,169,20,132,128,182,191,47,61,44,201,199,57,24,200,29,1,244,3,0,115,89,41,229,131,195,202,
+70,57,255,0,66,152,231,62,226,204,3,208,127,34,106,202,52,35,170,202,220,224,15,178,74,163,7,183,54,135,60,99,56,198,58,26,0,212,217,42,243,246,49,245,251,24,92,158,221,100,3,57,246,7,147,205,74,18,94,
+246,42,73,61,236,145,189,250,25,73,24,31,203,60,214,80,242,137,37,45,193,108,142,76,12,172,79,115,147,108,164,158,221,59,244,167,136,99,45,147,24,7,190,99,57,237,220,196,57,24,224,30,71,226,40,3,79,202,
+98,115,246,8,143,124,181,158,222,160,112,2,184,3,29,58,246,29,106,79,36,140,3,103,106,157,200,48,16,113,234,51,55,113,198,121,206,56,57,39,25,171,12,121,192,81,140,28,5,143,182,56,3,56,224,125,63,2,42,
+79,38,21,236,1,250,32,206,50,127,138,65,249,31,92,1,64,26,139,4,100,156,199,8,192,63,118,56,240,58,113,150,148,129,199,108,246,231,28,211,252,168,187,20,24,193,192,141,1,62,131,11,33,206,58,250,99,159,
+64,115,162,88,71,93,188,114,62,72,143,28,118,23,67,156,158,120,252,58,213,181,91,124,253,212,201,199,222,133,79,160,224,253,169,79,215,147,158,125,13,0,88,219,8,225,149,70,49,146,23,13,193,237,153,88,
+12,142,135,159,229,137,2,192,199,3,204,228,240,119,31,232,199,60,142,192,245,197,68,34,135,35,152,193,236,73,68,246,201,221,119,140,247,192,30,254,213,58,199,17,199,205,14,6,122,53,168,233,211,27,174,
+24,140,100,115,207,191,97,64,18,44,17,99,231,124,3,211,115,231,39,62,172,135,244,207,190,57,165,88,160,251,166,226,69,235,255,0,45,184,3,57,198,60,178,122,147,244,205,47,145,6,8,221,8,201,199,204,214,
+153,3,215,239,129,223,249,227,28,210,172,49,175,221,186,183,95,96,45,134,115,215,145,33,252,122,142,184,25,160,4,48,219,174,127,210,101,25,198,113,35,31,199,2,45,222,157,190,157,115,82,131,104,156,27,
+153,249,238,36,36,241,142,135,102,7,78,249,3,240,200,98,164,61,174,109,216,159,84,129,136,62,156,201,142,122,247,62,221,114,224,145,156,31,180,68,64,224,109,138,1,142,113,212,22,235,254,32,118,200,4,131,
+200,99,242,207,118,78,113,195,3,143,196,38,15,124,231,177,36,224,117,153,74,128,49,45,225,29,62,235,158,58,96,159,40,245,245,4,123,113,80,162,196,50,4,138,125,149,98,231,223,228,4,159,207,28,244,205,77,
+181,118,241,32,228,31,189,28,135,3,142,155,98,193,244,232,57,224,245,160,9,87,4,129,186,232,159,246,86,124,244,239,136,58,30,7,62,249,53,56,80,57,19,93,12,130,56,73,71,25,224,115,15,80,15,225,207,35,60,
+231,237,0,130,36,136,231,187,121,137,129,211,129,229,130,15,92,241,192,30,153,161,78,7,203,229,18,63,139,118,65,207,29,226,36,14,191,92,96,99,57,0,26,202,0,198,100,156,156,1,200,148,19,255,0,144,198,115,
+248,143,106,144,4,24,203,72,122,142,22,108,131,220,2,21,125,73,239,143,214,178,60,199,31,242,205,9,29,126,78,63,239,160,131,145,207,184,192,205,33,184,112,78,66,113,201,27,67,31,203,60,243,216,127,74,
+0,220,194,30,54,76,79,96,82,232,227,233,144,122,242,121,35,167,0,230,158,35,141,178,12,110,123,17,229,220,28,250,112,70,71,61,71,127,200,156,65,120,123,225,240,57,253,208,28,115,140,124,202,79,160,235,
+216,122,211,69,227,240,4,50,30,185,196,0,99,219,153,186,100,254,3,60,116,192,6,247,217,119,99,17,56,244,37,102,3,244,143,147,245,247,205,40,180,32,231,203,35,234,183,3,219,169,139,28,126,63,67,200,172,
+79,180,185,193,49,62,125,74,68,59,146,121,51,14,191,79,97,129,74,46,220,228,109,3,30,177,39,62,191,114,227,25,252,7,110,180,1,180,109,64,63,50,47,94,194,124,250,28,2,138,188,123,17,77,54,96,227,247,57,
+231,63,242,209,178,7,78,73,24,250,103,223,6,178,77,212,140,0,218,128,99,24,22,136,220,240,79,38,236,12,241,158,156,251,115,79,23,51,96,98,39,250,173,164,7,232,72,251,81,61,255,0,31,80,40,3,67,236,234,
+9,205,178,176,231,57,70,97,223,63,242,212,30,112,122,122,28,250,131,236,240,147,143,178,182,51,252,16,55,94,135,161,218,8,200,29,79,94,156,17,84,62,213,38,0,34,101,3,161,58,116,36,158,153,201,23,128,240,
+73,234,79,2,162,55,153,234,242,250,255,0,200,62,37,24,227,169,254,209,235,201,244,232,48,6,56,0,211,48,68,58,91,207,129,198,68,45,220,242,70,88,96,125,71,80,115,210,152,99,136,17,136,230,56,28,102,60,
+115,212,114,102,92,143,78,195,166,51,84,210,229,78,112,210,146,123,255,0,103,144,58,140,243,246,226,14,112,113,131,158,252,98,159,231,48,198,35,144,238,231,34,208,130,50,63,235,236,242,120,61,15,61,197,
+0,76,209,68,58,199,33,207,32,113,199,24,255,0,158,249,94,157,122,15,90,102,216,6,1,89,51,216,13,165,187,241,131,41,39,61,242,185,254,173,223,158,12,82,19,201,255,0,143,71,227,7,208,76,78,7,32,241,207,
+183,56,105,201,251,177,200,15,64,62,198,231,62,231,247,135,39,167,108,159,110,13,0,75,182,220,145,152,238,136,61,49,28,71,35,223,18,143,196,2,78,58,117,165,88,173,137,201,182,186,36,119,17,131,143,67,
+204,189,122,114,49,200,239,205,87,44,224,255,0,169,148,224,28,255,0,162,30,191,66,192,224,246,239,239,206,68,109,44,132,231,200,144,96,103,254,61,202,125,15,81,252,254,189,176,1,116,45,178,146,69,165,
+199,61,55,32,207,25,255,0,108,17,223,62,156,210,255,0,162,158,77,188,195,175,0,182,121,247,223,143,235,142,132,86,121,153,192,59,145,144,112,9,41,32,250,242,174,59,250,228,99,168,52,223,53,142,112,8,244,
+63,191,199,211,134,61,185,62,188,14,1,160,13,6,75,98,50,45,167,35,182,89,136,231,56,28,204,163,32,3,147,143,173,71,254,140,58,219,75,235,141,164,159,248,15,239,14,15,94,48,120,206,5,85,83,35,17,128,15,
+211,237,67,243,224,142,248,234,59,119,232,236,74,78,64,3,129,198,233,177,158,223,121,6,114,7,57,56,233,206,51,128,7,145,104,122,90,204,217,60,252,164,96,156,145,242,156,231,243,250,102,147,253,12,96,125,
+137,178,78,14,98,45,207,229,199,76,227,3,156,243,80,51,78,58,28,122,252,174,126,156,224,30,115,220,1,159,65,138,140,201,112,9,2,64,189,178,99,126,127,38,39,7,220,31,240,0,181,139,67,255,0,46,33,143,111,
+221,48,237,207,68,96,114,58,228,227,223,131,150,180,86,221,173,2,231,60,108,112,56,245,194,14,188,115,193,244,227,25,173,231,92,130,51,50,28,31,73,7,231,137,15,215,238,159,167,52,11,137,139,96,206,131,
+140,144,21,142,63,239,169,129,199,30,156,119,238,104,2,86,75,81,203,70,128,245,57,71,57,207,29,72,94,255,0,158,106,22,22,3,171,1,216,1,27,55,92,115,208,243,219,167,225,77,251,68,231,56,157,136,28,224,
+2,195,57,231,128,217,207,64,48,15,35,30,148,159,104,184,56,253,227,144,122,241,140,118,232,206,184,29,240,71,227,64,17,177,211,212,252,178,18,122,159,221,176,25,206,48,126,92,126,132,126,35,5,134,75,30,
+160,168,199,57,49,176,28,103,175,238,152,19,219,25,201,61,170,87,158,115,206,101,3,176,43,6,59,14,165,207,245,231,235,81,181,196,160,15,248,249,198,114,126,91,61,188,30,132,19,159,167,175,60,208,3,11,
+218,183,73,98,201,236,120,24,237,156,219,96,28,117,227,25,234,120,205,52,8,128,59,101,182,32,247,98,164,14,120,24,242,65,207,61,7,0,156,210,155,137,79,241,92,145,237,29,153,28,1,253,194,58,117,228,158,
+221,186,71,230,182,114,239,114,63,239,210,158,192,116,144,129,142,222,184,247,57,0,107,132,28,121,214,190,167,3,174,123,113,23,7,216,100,140,103,142,5,70,66,131,145,60,1,187,3,19,55,62,217,139,35,176,
+225,143,29,185,171,27,129,231,125,209,207,97,44,100,247,236,178,244,61,186,143,165,40,42,9,5,47,9,199,77,208,126,64,180,185,228,99,142,121,234,7,25,0,168,101,42,121,158,220,242,51,155,121,135,24,246,64,
+0,245,231,166,121,205,55,237,65,122,11,70,60,244,134,65,198,61,212,246,235,232,115,211,189,204,32,228,219,222,54,122,13,246,248,233,232,36,56,193,198,122,126,52,163,4,101,173,46,128,235,243,60,92,103,
+24,224,204,0,61,51,128,49,142,77,0,83,251,107,156,126,234,204,246,203,68,195,233,143,147,161,236,48,127,10,112,187,98,57,130,207,167,56,141,250,241,211,113,3,39,29,127,250,248,156,136,14,127,117,48,207,
+80,100,183,97,159,246,65,145,190,167,241,62,213,92,136,75,101,109,228,56,199,83,23,215,35,229,0,130,79,169,231,161,160,7,27,165,32,230,40,87,145,184,5,192,207,29,178,7,211,183,175,25,164,243,237,200,63,
+185,70,231,7,7,140,251,128,253,250,142,58,125,50,95,136,136,249,173,36,224,99,47,211,174,15,62,98,156,227,35,208,103,24,164,101,132,0,13,161,244,39,203,67,238,50,26,225,71,111,95,202,128,34,243,162,28,
+253,159,140,143,249,234,23,25,39,168,147,28,140,96,100,103,167,21,34,207,6,113,228,48,231,39,15,40,3,30,131,204,56,57,25,235,147,208,211,127,114,9,255,0,70,98,120,233,20,95,135,75,182,232,61,71,167,56,
+168,202,167,32,91,72,50,48,1,134,6,235,200,192,89,185,29,122,240,115,145,158,40,2,200,158,28,147,229,77,158,49,137,229,83,244,206,254,221,56,224,28,96,115,78,223,27,242,208,206,115,253,235,194,156,2,59,
+51,231,211,4,245,227,210,179,217,59,253,156,227,159,249,97,30,226,125,241,41,57,228,100,96,254,116,129,64,235,9,13,159,226,181,94,58,117,27,201,57,199,63,134,104,3,71,16,156,156,78,1,231,254,63,212,250,
+30,6,121,237,223,156,19,207,96,45,166,78,126,208,15,65,254,146,15,177,224,62,59,245,32,138,205,104,240,73,192,39,31,116,91,176,32,118,199,36,116,39,167,243,226,133,137,155,162,72,7,63,242,234,205,211,
+28,131,188,31,195,142,114,49,156,10,0,208,113,109,233,63,28,103,206,69,39,211,7,44,71,81,140,14,64,200,239,76,11,7,80,175,143,70,184,102,31,94,0,25,254,89,234,106,151,148,216,32,249,138,57,251,214,197,
+121,206,51,204,157,0,29,70,238,254,188,33,132,158,67,74,8,61,68,65,125,113,140,131,236,48,126,148,1,121,158,221,87,12,36,80,8,233,112,126,156,12,113,216,99,215,161,228,212,77,37,129,200,47,41,198,78,60,
+245,56,192,255,0,109,201,252,136,30,184,170,155,28,158,30,228,147,212,0,23,159,112,160,19,211,158,188,250,147,75,229,74,6,51,63,209,154,81,145,206,73,253,219,122,224,116,199,90,0,149,164,178,206,85,231,
+60,113,251,232,199,78,79,73,184,254,184,227,214,162,55,22,75,212,200,64,227,230,185,140,100,247,201,50,241,158,131,219,25,224,81,229,73,207,95,112,82,76,115,207,7,236,252,245,238,70,9,247,205,55,203,207,
+36,74,51,253,211,142,71,108,24,27,29,177,233,156,122,208,1,246,171,33,213,91,56,227,109,212,36,17,235,180,76,79,7,249,251,82,11,203,32,113,251,236,28,133,34,116,61,51,199,223,36,129,245,255,0,235,73,228,
+177,7,6,69,227,63,235,23,143,76,15,39,223,212,123,1,156,211,60,137,15,12,101,57,244,104,155,61,50,121,94,122,100,142,61,120,160,0,221,90,118,55,29,120,196,241,131,219,240,234,14,73,199,191,90,81,119,6,
+51,190,225,72,61,174,163,44,71,94,49,129,219,169,255,0,235,208,45,134,56,121,71,212,66,9,199,176,235,199,231,211,222,159,179,3,146,196,103,31,114,18,120,200,30,220,125,73,30,252,208,4,111,119,17,7,51,
+93,28,241,254,182,38,207,226,103,252,122,113,233,214,163,23,59,179,182,89,198,127,188,201,158,7,24,196,164,143,242,125,141,181,78,49,191,4,142,140,176,113,223,166,224,0,245,207,24,201,39,7,135,8,178,79,
+204,157,121,220,45,193,29,254,233,99,215,215,4,14,212,1,2,220,202,164,98,105,72,246,98,15,185,226,64,122,99,190,126,185,169,126,214,231,31,60,153,237,150,114,121,61,6,75,116,60,243,144,70,51,223,10,209,
+168,251,179,64,50,57,12,45,15,61,59,227,167,255,0,91,145,209,164,50,240,179,90,96,129,214,59,46,223,71,31,211,60,117,0,80,4,137,116,199,171,201,237,132,102,200,30,229,114,122,116,206,61,185,53,39,218,
+20,14,36,144,17,215,247,82,244,245,249,98,224,158,114,121,247,21,8,73,58,253,162,192,125,99,178,56,233,142,172,195,235,146,1,252,6,92,84,227,230,185,211,178,121,192,130,200,156,12,119,7,175,62,188,14,
+162,128,30,46,206,49,230,200,113,234,146,227,156,118,49,142,156,1,156,140,244,231,170,253,177,248,249,131,12,245,40,195,25,245,30,88,199,124,99,156,3,207,60,194,54,1,196,182,108,123,1,111,109,211,174,
+71,28,224,118,4,15,76,227,37,185,108,96,53,161,28,255,0,203,8,1,60,250,46,71,233,200,227,210,128,45,53,219,30,171,25,56,227,8,236,127,13,200,195,183,78,59,243,78,91,165,3,45,28,95,138,72,15,115,206,32,
+101,227,61,240,61,59,10,207,49,179,16,65,182,31,238,164,99,61,6,112,20,12,251,19,159,230,90,96,151,214,220,228,114,54,158,56,56,231,204,30,254,221,137,231,0,3,88,222,70,0,59,34,25,238,17,201,239,198,62,
+200,79,62,185,31,167,49,157,65,49,254,173,27,182,90,5,39,158,156,24,23,161,246,246,244,172,179,111,33,28,125,155,35,160,40,228,241,145,206,37,193,231,190,63,62,105,190,76,217,199,250,62,220,225,177,20,
+153,43,236,119,30,115,245,246,236,104,3,88,95,46,79,200,167,63,244,236,0,30,156,44,89,237,215,62,248,226,165,251,119,28,69,25,35,166,45,70,127,15,149,115,215,185,227,147,140,102,178,4,46,48,49,24,227,
+159,146,65,206,114,56,46,59,30,248,239,142,105,68,95,55,49,171,17,208,226,66,62,160,121,188,227,208,224,80,6,168,188,151,156,71,16,250,90,129,142,70,70,60,192,50,58,247,207,124,138,5,211,158,177,69,201,
+201,205,178,231,234,127,121,201,233,158,57,60,145,199,57,187,71,56,182,93,216,193,36,78,51,212,103,34,113,199,78,131,39,183,78,20,7,0,1,12,99,161,25,50,130,78,123,226,81,207,208,254,92,100,3,76,78,8,207,
+148,135,147,156,192,23,142,199,137,115,248,1,211,138,26,114,199,2,40,198,59,249,125,125,122,201,237,235,208,118,201,21,77,17,248,37,45,122,231,115,79,112,8,35,216,200,71,25,207,112,58,3,198,42,202,150,
+3,4,90,145,158,243,204,123,147,211,118,6,62,152,231,232,40,1,60,197,36,141,144,100,118,109,199,63,240,22,152,168,227,183,24,25,197,38,228,192,196,40,57,254,0,71,175,63,45,194,131,249,158,122,26,149,89,
+65,201,107,97,216,236,152,146,0,60,130,26,54,62,188,243,199,36,227,154,112,152,100,16,232,112,112,126,96,78,6,122,254,232,228,117,28,1,248,16,114,0,130,38,192,34,4,3,57,203,59,169,201,239,205,211,242,
+78,71,126,6,51,158,4,162,54,193,37,16,0,49,147,112,227,156,2,115,137,27,113,57,0,131,140,247,228,208,215,32,96,135,245,56,45,40,7,211,27,118,131,142,189,58,227,216,20,23,138,163,27,136,228,17,153,39,32,
+12,115,158,15,242,236,125,178,0,132,100,225,142,223,165,203,169,252,74,56,252,142,59,103,181,10,35,235,191,241,23,83,28,30,63,218,25,39,220,228,1,197,59,237,104,199,34,101,67,142,114,101,206,48,56,195,
+66,122,117,252,51,158,180,158,120,201,217,116,7,208,177,60,240,72,219,15,24,235,202,241,252,128,16,42,1,159,60,99,61,231,148,28,122,103,206,29,120,0,158,122,103,61,105,251,194,3,182,70,60,227,11,117,41,
+56,60,228,127,164,112,57,236,6,72,224,99,146,229,121,27,3,237,68,246,224,76,195,39,235,110,0,235,253,236,14,113,158,40,59,212,28,220,227,61,188,150,111,212,196,113,211,160,231,156,26,0,143,126,112,124,
+201,134,79,31,188,157,191,2,86,224,146,73,35,131,200,207,230,25,20,128,5,197,194,16,114,10,189,193,7,215,131,57,0,228,100,28,131,208,119,205,5,88,255,0,203,96,217,199,88,49,220,96,103,201,233,147,158,
+255,0,149,69,137,250,44,224,224,237,229,88,243,212,100,121,61,58,245,193,193,61,58,208,4,222,119,57,26,141,218,128,57,83,35,142,125,114,207,223,60,231,56,32,231,61,8,210,227,174,165,112,119,103,163,131,
+207,94,155,137,199,80,6,79,81,156,99,152,54,222,100,124,208,28,30,24,36,173,129,158,251,98,60,145,207,167,183,24,164,197,209,98,51,104,78,71,80,224,227,219,117,185,192,228,15,199,29,122,0,75,187,113,226,
+250,229,184,228,121,76,199,7,140,253,245,207,36,12,1,143,175,52,187,9,227,237,183,96,118,2,219,28,231,63,243,215,223,24,35,240,168,196,55,76,6,223,178,122,240,139,198,114,64,203,90,103,252,245,245,79,
+179,220,112,75,67,142,49,204,99,191,108,89,142,153,36,231,28,100,30,180,1,46,217,64,63,233,151,99,111,253,57,128,15,110,162,76,159,98,65,236,120,52,40,97,214,246,236,158,57,251,55,215,251,204,195,244,
+238,125,170,33,13,194,247,140,131,212,153,19,28,244,36,24,134,113,130,58,112,79,24,228,20,100,32,116,66,7,82,36,132,140,251,147,26,244,228,156,144,78,121,57,198,0,39,40,196,18,110,174,143,25,27,173,1,
+253,75,15,235,156,83,76,44,72,63,106,144,231,61,109,192,32,123,225,192,30,192,244,247,239,84,171,122,167,7,129,189,80,116,238,66,224,122,28,19,158,196,211,76,96,242,205,110,51,216,202,223,150,71,80,49,
+140,224,125,112,120,0,190,45,164,28,139,137,56,57,194,219,195,250,225,134,71,78,167,158,14,14,41,124,137,120,196,83,54,0,207,250,42,12,158,252,137,115,212,250,14,61,43,59,202,132,253,244,180,111,97,52,
+196,251,96,238,94,121,239,79,88,236,152,225,224,183,207,7,112,158,69,28,123,179,182,61,179,147,206,112,57,160,13,1,12,152,195,91,72,57,206,77,186,14,8,228,99,205,201,224,250,227,158,115,205,41,136,175,
+252,177,149,113,199,202,35,64,51,143,226,222,120,0,246,28,119,60,213,37,138,196,146,4,81,100,14,113,119,144,70,125,3,143,94,79,83,234,13,72,97,178,239,28,120,255,0,175,201,64,252,113,40,228,251,115,239,
+197,0,76,21,112,7,149,51,96,1,131,52,107,198,78,56,243,23,0,31,160,32,116,228,210,132,25,226,222,92,140,158,46,224,79,203,117,200,200,231,233,158,152,234,107,121,22,191,193,4,109,233,139,217,207,211,4,
+204,15,95,92,231,182,69,42,193,30,113,246,92,46,62,242,222,220,227,29,120,11,55,35,29,56,206,57,61,57,0,156,134,0,145,109,54,121,233,127,108,49,142,56,197,207,230,79,79,124,230,152,119,99,254,61,38,36,
+231,174,161,109,201,255,0,191,254,188,247,247,205,55,236,240,131,255,0,30,207,242,159,250,8,93,96,246,200,221,56,3,56,247,199,173,27,32,31,122,7,30,227,82,184,82,121,199,31,190,39,175,29,243,64,14,220,
+221,77,180,227,142,8,190,132,253,79,250,225,199,92,156,227,169,227,179,76,216,39,247,83,116,233,246,200,48,49,147,212,222,47,108,117,36,12,115,235,82,121,118,253,82,11,162,79,57,75,249,206,126,164,220,
+18,78,61,122,12,126,10,18,17,159,244,107,213,63,245,246,205,212,245,249,174,143,31,94,79,61,58,16,10,230,64,221,98,144,117,200,23,214,192,158,7,99,126,59,103,159,94,121,168,90,65,156,13,224,12,117,187,
+135,61,206,62,93,64,231,25,3,223,174,120,25,188,209,70,113,133,190,83,142,211,14,15,110,147,247,245,237,207,82,1,166,121,9,140,31,181,140,119,45,35,158,221,113,114,1,56,227,32,28,14,0,224,208,5,81,57,
+30,185,227,134,187,78,158,167,254,38,71,220,224,96,17,222,131,113,232,137,144,57,62,126,239,67,140,127,106,30,113,207,65,208,14,249,171,13,4,3,129,246,162,59,102,13,192,241,142,173,113,158,122,142,252,
+156,131,76,242,97,199,63,105,232,58,219,1,158,156,141,183,96,242,79,233,142,198,128,43,253,169,20,124,200,164,19,208,187,129,199,176,191,96,79,208,140,112,78,122,82,253,174,220,231,228,78,78,8,195,183,
+215,3,237,158,158,135,143,90,159,100,43,142,101,80,59,189,166,238,125,57,186,193,29,6,91,177,25,245,168,153,98,63,242,208,174,7,107,24,249,207,112,126,209,215,234,114,59,208,0,37,181,234,82,51,156,158,
+97,118,60,99,210,253,113,232,112,164,30,156,10,149,110,45,6,65,88,243,142,113,108,254,157,1,55,167,156,103,235,239,222,184,142,44,156,78,231,254,220,144,122,240,8,148,224,125,78,15,235,75,177,65,249,95,
+143,250,240,132,247,238,65,98,56,28,245,246,231,144,1,100,79,101,255,0,60,213,142,120,62,73,92,147,130,120,251,86,79,97,128,192,99,3,214,158,179,219,19,149,141,1,199,95,179,178,156,12,247,251,72,206,57,
+207,39,189,83,40,167,39,120,24,39,24,211,129,3,24,28,109,67,223,29,48,71,126,166,154,35,82,126,241,111,101,211,229,94,121,231,229,66,1,237,211,159,230,1,164,46,45,142,55,44,79,142,184,73,1,250,124,211,
+145,220,112,57,224,243,154,67,45,163,240,19,104,57,229,118,140,17,235,153,193,29,127,31,195,154,155,20,140,2,248,193,28,105,243,103,39,61,252,162,59,3,212,96,145,215,180,102,33,207,250,193,142,255,0,102,
+153,127,18,62,206,49,146,51,140,253,49,197,0,91,45,105,130,126,108,30,152,104,151,142,159,243,220,158,184,231,175,78,249,167,43,91,99,128,216,206,48,101,139,60,31,70,145,135,110,185,4,99,175,74,167,228,
+18,6,37,198,127,189,12,224,245,247,128,254,64,115,145,156,128,105,203,110,114,115,56,235,255,0,62,242,103,243,242,1,61,49,159,99,239,64,22,75,194,9,249,95,36,243,153,209,126,156,172,188,231,60,115,142,
+127,38,52,200,188,135,8,56,255,0,151,220,31,113,247,142,57,245,193,236,65,230,161,107,102,61,39,218,58,255,0,168,184,201,206,64,3,109,184,29,59,156,245,56,198,14,17,109,100,206,126,208,216,199,3,236,247,
+28,244,227,30,90,14,221,71,183,174,104,1,254,120,97,196,160,119,201,212,142,120,199,184,199,212,128,125,15,74,174,210,75,252,50,175,254,12,115,207,61,140,128,19,211,35,32,244,207,21,41,182,151,188,204,
+7,124,91,220,31,175,59,114,49,158,57,25,199,110,105,191,100,115,255,0,47,115,12,99,129,20,163,156,117,27,143,230,78,57,28,99,60,128,69,230,202,14,94,82,122,228,127,104,99,60,115,255,0,45,15,229,131,215,
+243,67,40,98,72,32,183,169,190,65,211,185,59,122,14,59,140,140,227,218,199,217,38,224,253,182,126,112,57,136,228,116,198,65,81,145,140,122,14,57,38,154,214,179,14,90,246,83,130,127,229,152,201,199,60,
+146,216,245,0,228,103,7,29,40,2,175,152,192,131,149,235,252,87,146,117,246,40,189,251,247,253,40,222,88,240,163,129,255,0,63,147,142,164,145,159,144,144,127,150,121,169,217,38,198,13,220,184,231,254,89,
+161,246,234,100,95,207,39,175,230,207,34,64,50,103,145,135,94,34,128,240,125,65,159,113,206,121,0,28,119,160,6,153,28,12,31,43,158,159,233,183,35,29,58,98,53,250,112,127,165,55,124,167,37,100,132,115,
+208,221,92,159,95,239,118,207,94,115,158,180,166,57,7,1,152,241,128,76,49,130,72,234,78,36,35,191,56,227,30,248,168,204,78,9,253,228,139,158,78,32,143,142,220,18,125,123,224,244,245,224,128,47,153,112,
+51,187,203,144,103,168,154,99,144,65,0,242,64,62,167,169,250,140,211,124,233,114,79,148,188,31,239,177,200,247,203,117,247,199,184,206,114,19,15,200,36,177,3,175,145,14,123,227,233,198,125,79,231,204,
+111,8,198,124,198,7,218,37,4,103,24,225,35,4,31,81,223,183,165,0,60,77,46,14,232,160,0,247,50,49,192,233,140,9,84,103,30,163,142,131,166,105,143,38,114,54,64,59,227,124,156,96,245,255,0,92,57,29,249,227,
+234,106,51,22,113,153,51,223,144,115,142,184,206,208,15,35,131,156,131,198,58,138,107,66,164,140,236,32,131,222,64,71,35,251,174,61,125,58,247,20,0,134,82,58,8,126,138,243,127,33,114,0,192,227,128,7,3,
+28,226,154,103,198,115,28,68,115,213,228,83,208,116,31,108,4,227,61,7,29,79,106,107,197,23,241,50,3,142,243,93,14,135,24,61,71,95,76,242,58,250,194,208,35,116,145,15,39,165,205,225,201,199,76,168,206,
+7,30,192,28,242,56,160,9,140,238,9,34,8,122,140,101,156,158,252,159,244,162,126,156,96,28,99,32,12,21,95,202,85,24,222,64,60,130,183,90,142,63,0,177,147,146,122,140,31,99,234,80,7,128,102,220,96,109,69,
+7,179,93,205,128,59,124,202,217,25,250,143,97,200,52,229,91,76,240,98,63,246,249,112,204,57,207,27,131,14,190,131,189,86,91,148,193,253,202,246,199,238,167,36,140,245,0,149,3,211,39,242,53,56,154,54,200,
+242,72,199,31,42,74,185,61,127,190,6,70,125,61,178,78,69,0,76,22,216,253,215,140,250,15,180,78,196,254,33,71,211,159,198,164,88,225,63,197,2,142,219,165,185,110,217,25,32,14,221,112,122,227,53,18,201,
+23,104,165,224,30,72,148,241,131,142,142,56,234,123,142,49,220,97,203,34,158,60,167,62,229,102,7,147,236,14,15,212,129,199,6,128,44,45,157,185,108,151,178,36,119,63,105,35,62,227,142,160,129,143,161,169,
+62,207,8,3,13,167,144,121,255,0,85,118,221,15,168,35,159,76,250,125,5,66,10,28,229,36,29,121,219,43,103,182,120,140,245,199,110,188,142,156,83,195,14,14,92,127,219,23,28,253,90,51,142,127,94,48,15,80,
+9,86,222,2,114,205,103,233,133,183,187,32,117,201,63,55,57,3,142,122,213,132,134,221,65,196,150,189,63,231,218,227,169,250,134,207,228,113,236,106,186,133,60,3,54,15,28,198,87,191,92,139,114,56,7,167,
+61,62,181,58,196,195,144,179,183,252,0,28,130,63,235,212,28,250,28,145,64,10,5,176,206,90,217,185,192,41,107,112,123,228,127,203,1,145,223,185,206,6,125,39,72,161,108,97,226,201,237,246,73,249,237,198,
+84,30,61,48,113,192,226,154,177,169,25,107,89,88,231,157,192,250,99,28,91,3,223,156,125,41,235,29,177,25,54,71,175,31,41,110,231,140,249,61,7,126,252,122,231,32,19,172,9,218,56,72,7,130,116,247,99,199,
+190,229,56,239,223,57,39,53,58,68,128,231,202,128,240,78,78,157,40,32,99,39,172,164,14,216,199,95,206,169,98,217,127,229,198,32,7,170,158,113,219,63,103,35,167,224,122,159,121,84,218,30,182,80,140,14,
+202,114,58,115,242,91,245,239,140,14,78,78,113,154,0,208,80,128,158,32,25,237,246,93,132,126,114,100,118,60,255,0,35,86,86,72,215,31,44,121,193,231,98,246,255,0,129,28,143,124,113,238,122,227,102,205,
+184,251,26,117,229,140,179,46,49,158,120,139,60,241,212,14,189,134,77,55,204,181,83,197,160,247,6,121,250,103,61,151,143,195,63,76,102,128,58,5,154,34,121,140,96,231,59,85,0,237,140,252,224,244,245,207,
+94,167,147,79,243,225,83,149,139,113,244,34,60,96,103,253,162,7,211,223,165,97,172,214,229,121,180,92,12,242,110,174,112,51,200,227,111,0,251,96,115,156,245,195,254,209,111,128,162,8,148,115,214,230,235,
+24,250,158,49,207,92,246,231,161,160,13,165,186,83,140,67,192,228,1,229,109,3,220,100,0,51,158,163,215,223,18,172,128,242,34,35,241,132,3,200,228,159,57,79,110,131,191,78,156,224,139,168,129,3,202,140,
+12,156,31,180,92,114,115,208,254,240,142,122,242,160,99,174,57,20,162,233,70,10,172,11,254,245,204,196,142,63,219,207,39,166,62,190,148,1,208,121,178,1,202,33,39,166,90,31,108,14,37,39,167,182,123,1,79,
+243,203,118,141,123,12,24,7,94,189,248,199,191,7,219,38,176,197,195,127,12,144,175,78,4,228,28,99,142,177,54,62,159,202,166,91,185,58,253,162,48,49,211,206,31,143,2,0,71,185,237,232,121,20,1,178,179,56,
+194,171,66,7,78,126,200,199,36,250,178,231,28,231,25,56,57,199,2,156,38,144,147,243,67,200,57,1,44,248,247,220,57,56,193,231,29,187,226,178,150,105,136,36,220,167,28,0,24,183,231,139,99,207,24,57,233,
+216,210,137,230,224,249,235,215,147,180,18,122,228,124,214,167,62,156,227,168,230,128,53,140,178,15,226,140,99,7,238,90,103,39,156,143,148,119,207,113,208,253,42,69,105,142,8,146,46,248,5,45,0,250,96,
+12,246,200,200,238,121,199,92,181,186,144,240,101,200,237,136,20,147,140,255,0,18,219,15,204,126,32,129,78,51,115,252,121,30,176,41,60,115,222,0,71,28,131,129,233,131,64,26,234,110,121,196,150,251,72,
+198,72,181,235,244,44,189,71,184,61,234,84,19,244,47,105,201,254,35,105,143,81,201,148,224,115,206,49,142,71,94,184,254,115,17,140,72,112,56,224,46,122,227,159,47,140,227,166,120,252,113,83,36,195,24,
+100,151,29,71,204,221,177,159,249,100,65,246,247,35,138,0,216,67,50,156,98,197,135,76,52,150,192,99,253,146,28,116,57,198,73,246,29,170,202,187,100,102,11,12,158,132,75,108,57,239,208,228,31,78,59,245,
+29,241,86,104,199,38,41,128,29,54,177,200,39,235,24,193,253,123,212,190,124,64,241,21,219,103,213,228,4,122,158,0,29,122,96,231,191,208,3,108,16,15,49,89,99,3,164,176,15,161,229,198,9,228,147,128,121,
+237,82,164,136,7,17,217,144,59,125,162,5,231,143,73,199,126,135,25,233,244,172,53,184,135,169,182,185,56,192,226,105,243,211,61,1,237,145,156,147,219,233,82,173,212,3,147,97,118,79,98,36,155,167,92,19,
+149,61,121,28,122,250,226,128,55,146,68,206,12,86,103,161,199,218,162,3,7,29,254,211,215,159,94,57,244,56,176,178,70,63,229,218,204,231,210,101,115,199,113,139,225,223,177,3,56,244,53,128,183,112,147,
+197,133,231,67,210,121,129,29,185,249,206,123,113,207,61,122,115,40,185,183,111,189,167,222,14,78,55,75,32,252,119,18,15,110,113,142,189,137,52,1,184,100,0,103,236,118,199,131,156,24,216,241,198,112,215,
+109,156,156,30,65,164,18,15,226,176,128,15,100,139,60,14,184,251,81,224,231,167,229,233,89,43,119,6,64,251,12,195,24,255,0,150,175,158,189,114,219,187,96,114,0,231,39,214,167,23,80,28,3,167,78,91,129,
+195,131,206,73,224,152,200,252,121,235,201,205,0,107,41,200,193,177,136,243,212,36,89,245,199,18,150,227,61,58,118,61,42,85,13,140,139,5,235,198,35,201,199,183,239,135,111,76,244,231,35,56,203,19,192,
+7,252,131,46,15,208,199,212,245,24,40,9,235,249,142,9,20,241,60,3,174,145,49,244,201,70,28,123,4,61,255,0,67,140,250,128,106,44,114,159,187,110,200,114,71,22,234,121,235,213,174,9,24,239,199,56,39,3,173,
+79,28,87,32,227,202,113,238,176,66,7,174,118,155,129,150,252,185,227,158,135,37,102,139,24,26,36,140,79,113,187,61,73,201,196,36,30,1,231,36,158,113,145,82,249,176,128,9,209,102,62,254,84,167,219,0,172,
+32,231,175,61,127,35,64,26,254,69,227,0,2,220,96,114,0,128,30,190,233,112,79,25,193,224,251,1,64,134,237,121,84,157,143,109,214,228,31,66,63,227,231,3,212,118,61,48,107,45,100,183,108,147,164,76,188,116,
+217,114,7,28,12,225,48,63,5,233,142,166,166,47,3,30,52,153,112,71,101,152,244,224,28,178,143,83,244,238,7,112,13,32,183,248,0,44,163,208,249,74,167,39,160,5,165,96,57,231,167,175,6,156,171,169,28,31,222,
+140,17,247,137,62,135,144,184,57,192,231,249,158,107,49,76,93,23,71,148,17,211,253,98,247,227,31,47,35,24,199,227,130,106,194,2,48,70,151,113,255,0,125,200,48,62,153,0,129,254,247,184,61,40,3,68,46,160,
+57,218,252,227,39,50,224,158,57,57,111,115,142,112,78,56,205,56,155,222,75,238,4,14,187,143,25,233,252,100,231,142,135,147,250,85,12,190,114,186,108,227,158,166,73,151,129,142,72,89,15,81,144,58,244,25,
+226,148,9,200,63,232,87,10,58,49,15,41,252,183,72,15,97,158,113,236,14,9,0,188,101,188,0,19,35,99,29,209,137,193,255,0,129,1,140,123,244,239,144,49,32,154,111,226,144,28,14,114,167,57,247,224,142,123,
+231,216,103,181,80,86,153,70,209,107,114,24,99,28,204,123,140,144,68,217,201,199,94,121,245,233,83,131,46,0,104,46,148,156,245,153,253,71,247,174,193,28,122,17,250,208,5,163,49,35,239,115,254,232,199,
+97,211,3,31,137,237,232,41,155,148,54,90,52,231,251,193,7,78,231,43,158,255,0,66,120,207,0,83,9,112,56,142,125,196,115,251,211,128,15,25,0,222,99,215,7,175,126,59,160,243,6,79,149,112,73,193,31,60,109,
+233,217,175,137,35,30,223,81,214,128,44,44,145,156,145,20,60,116,24,132,131,158,153,202,224,254,88,246,233,71,238,27,147,20,60,243,202,68,121,246,194,129,212,100,115,156,241,216,85,98,102,200,253,213,
+192,193,234,76,88,228,158,153,189,206,113,158,112,48,122,147,129,151,137,100,28,109,184,30,193,225,231,184,39,55,227,215,168,237,199,60,138,0,152,45,144,63,52,80,253,62,207,16,227,158,167,28,99,63,159,
+92,14,105,127,208,115,141,144,46,79,252,240,183,201,28,116,192,235,193,39,183,78,188,154,140,202,221,26,59,134,61,71,22,196,147,207,173,235,126,191,160,20,207,151,36,180,87,88,110,120,251,47,211,60,93,
+12,122,144,15,81,142,134,128,38,81,100,114,86,24,201,3,156,69,22,56,62,129,48,59,231,145,207,79,74,113,91,76,229,98,78,49,199,151,24,7,4,16,118,134,29,57,36,99,167,56,235,80,110,141,65,37,46,113,220,17,
+108,14,63,11,224,125,62,190,156,154,77,240,145,180,197,49,247,219,15,31,143,219,240,125,248,207,56,245,32,2,98,144,103,136,226,92,18,70,213,140,117,24,236,227,183,174,58,250,116,141,140,35,144,202,189,
+185,218,127,69,147,30,216,244,231,29,233,133,33,227,17,73,200,193,56,136,159,196,253,184,142,223,166,48,114,77,48,162,19,129,20,221,242,49,30,70,58,244,191,224,126,4,254,166,128,36,243,32,92,131,50,175,
+3,164,77,145,223,0,44,128,129,147,216,28,243,206,115,81,249,209,17,149,188,101,25,28,8,51,145,158,120,103,39,158,196,47,24,238,51,74,34,24,226,41,207,166,228,140,143,199,23,199,241,199,208,82,152,215,
+35,247,83,41,234,64,219,142,221,190,216,58,99,32,31,92,208,3,150,117,198,69,252,137,212,115,6,14,120,35,7,114,254,35,4,26,5,193,36,129,170,207,206,120,16,184,201,232,48,60,192,48,51,220,253,15,90,102,
+212,12,56,152,99,63,120,19,207,213,111,8,56,244,235,159,78,232,86,60,100,179,129,211,254,91,131,156,240,112,47,15,190,114,56,228,242,58,128,72,110,95,254,130,247,128,12,112,33,148,125,122,202,71,78,253,
+253,113,76,55,91,121,254,217,188,3,60,134,92,158,125,132,220,103,211,104,235,206,42,48,209,70,71,207,33,235,209,110,206,49,158,135,237,184,193,28,231,234,49,156,146,225,112,139,199,250,67,119,192,75,172,
+243,198,63,227,237,135,124,103,143,82,58,26,0,79,182,134,192,254,216,185,97,200,251,140,199,244,152,129,235,220,3,142,72,234,255,0,182,32,4,141,95,81,200,192,1,35,37,120,60,0,4,227,29,49,247,122,250,241,
+72,102,67,209,103,227,158,82,236,144,15,174,38,110,59,19,143,127,122,79,56,46,48,28,117,234,151,45,145,143,115,193,254,126,157,128,2,155,214,60,127,106,223,183,108,24,92,242,127,237,186,140,31,98,14,113,
+207,90,111,218,164,193,11,125,168,49,35,146,22,69,198,125,0,188,24,60,131,211,174,114,48,104,251,74,140,18,120,207,165,194,144,122,247,36,15,126,49,193,56,192,20,211,124,135,33,94,37,193,224,151,156,30,
+113,208,5,97,130,71,7,161,57,227,189,0,52,205,112,121,251,86,160,119,119,249,243,140,245,226,231,32,247,57,234,15,4,241,81,180,179,158,13,206,163,239,135,144,31,67,255,0,47,99,159,110,59,244,4,210,181,
+217,56,63,104,31,79,54,224,12,14,114,115,19,99,211,60,117,193,244,163,237,1,192,204,177,131,128,114,110,38,29,255,0,235,217,135,67,211,36,122,130,51,64,17,3,33,7,247,151,204,125,90,71,83,223,28,125,180,
+15,200,99,218,163,102,155,185,185,61,71,205,62,115,232,48,111,212,231,167,67,199,92,117,204,134,118,29,38,78,9,57,23,18,19,159,161,177,207,67,212,242,122,15,117,23,51,227,139,148,24,207,252,188,227,183,
+7,155,30,7,7,35,57,29,250,208,4,59,166,200,0,200,50,56,249,203,30,122,96,182,162,71,83,211,142,167,189,60,37,201,231,124,227,7,140,108,236,63,235,244,130,123,159,229,142,174,50,78,126,245,212,56,61,218,
+224,99,211,254,124,49,237,249,243,214,163,102,184,237,125,111,207,93,179,32,61,9,228,253,136,46,51,208,103,175,166,40,1,238,183,68,16,25,250,117,42,192,241,219,63,107,96,113,234,6,61,61,234,24,46,114,
+15,95,64,23,7,241,255,0,72,7,191,76,14,253,59,57,154,112,8,58,132,124,255,0,114,104,9,252,15,217,64,28,142,163,255,0,175,81,153,38,25,11,168,73,142,231,204,183,99,223,248,190,196,78,6,113,144,190,248,
+224,16,0,253,183,35,128,89,70,8,57,66,70,0,232,63,124,115,234,121,231,31,74,64,179,117,221,17,36,119,82,57,231,174,46,84,159,196,12,118,168,191,124,196,227,83,148,96,103,253,108,67,191,127,244,16,58,117,
+63,253,106,80,242,40,5,181,54,110,64,255,0,143,136,15,174,126,83,105,144,57,224,12,146,123,30,69,0,74,76,217,199,250,47,226,15,78,71,63,233,7,25,25,30,254,188,100,64,239,112,185,32,89,122,245,63,47,3,
+210,112,51,236,121,4,254,20,141,51,131,159,237,7,61,65,195,196,112,7,94,126,206,7,175,166,122,115,76,50,103,59,175,159,30,167,200,32,243,199,34,33,199,56,237,145,212,131,212,1,143,52,135,59,214,200,125,
+11,243,129,192,56,159,56,32,142,7,166,50,69,71,184,145,130,182,99,190,15,153,128,71,161,50,250,17,159,151,211,165,14,195,168,190,207,57,35,16,241,206,8,35,167,56,198,114,78,51,140,117,168,153,194,242,
+111,10,12,231,42,99,24,228,115,144,59,15,160,239,235,64,10,196,1,194,216,250,157,178,73,234,57,230,94,72,235,200,199,244,131,41,142,99,180,39,190,28,143,76,253,230,36,228,125,59,243,158,174,46,64,32,94,
+57,200,224,59,70,220,12,116,62,156,250,142,216,238,105,191,104,8,8,251,75,1,158,9,9,216,123,16,121,234,79,211,175,52,0,224,208,96,6,130,217,177,199,250,237,160,246,193,198,79,67,234,5,38,235,38,255,0,
+150,54,61,120,6,224,147,207,252,7,36,130,6,56,3,142,244,211,114,173,214,229,64,193,234,87,233,218,67,252,136,60,98,152,103,143,175,159,25,30,187,65,253,11,131,156,116,4,14,152,28,1,128,7,22,176,83,255,
+0,30,246,153,232,118,60,140,50,114,121,194,158,120,244,25,3,146,57,52,121,250,113,227,236,241,16,6,126,83,33,3,60,127,116,122,255,0,147,81,155,152,199,32,239,207,79,244,96,224,126,82,103,60,142,157,123,
+115,200,79,53,27,144,128,123,27,80,184,231,176,103,31,94,249,245,230,128,30,39,211,7,34,212,18,115,247,82,71,199,81,238,57,193,199,92,243,218,166,243,172,1,249,109,164,28,2,113,3,145,192,227,63,32,24,
+235,216,156,1,214,171,9,143,56,137,136,207,252,250,196,1,227,167,250,209,159,195,144,120,169,133,193,3,31,102,127,113,246,48,248,247,218,36,110,249,60,126,116,1,40,150,212,0,124,137,0,24,225,109,194,17,
+220,227,40,119,123,227,158,7,106,127,218,109,120,253,221,215,169,2,30,48,61,64,193,7,31,79,92,85,127,180,142,127,112,121,236,116,254,14,125,203,103,167,56,28,127,50,191,105,108,18,109,16,228,28,1,167,
+33,62,231,36,117,30,164,129,64,23,5,213,152,83,185,46,71,175,238,57,245,198,210,65,200,29,72,4,112,115,140,82,125,174,207,0,1,120,56,227,253,24,227,60,2,57,127,78,249,224,245,36,98,171,45,195,183,2,213,
+176,0,28,89,66,7,81,216,171,116,192,39,140,30,231,173,60,121,172,114,182,114,241,130,72,180,143,24,200,238,182,231,25,199,176,199,211,144,9,205,204,39,149,107,207,247,69,172,88,7,60,12,153,143,24,245,
+61,49,158,244,195,114,15,221,107,226,8,31,242,194,209,64,29,79,45,49,232,121,29,186,254,21,217,110,115,197,148,252,240,15,217,87,175,97,141,128,113,211,166,120,61,250,161,142,228,112,109,230,83,215,38,
+221,49,140,227,36,121,67,249,100,115,143,112,11,6,118,198,85,239,78,61,18,211,28,113,212,92,31,95,64,115,248,208,38,152,244,107,176,59,146,150,189,122,159,249,106,199,223,243,239,85,12,83,12,102,7,199,
+28,152,250,125,0,65,131,248,96,126,60,41,89,128,56,138,85,61,176,93,7,126,8,8,122,247,198,125,113,215,32,22,124,217,179,143,62,232,117,200,63,100,0,251,145,231,47,65,211,143,166,115,82,6,156,16,69,196,
+227,183,34,216,14,152,232,38,228,122,131,140,226,178,157,238,247,0,34,144,99,57,38,108,116,235,144,214,231,129,192,239,235,215,38,149,90,232,228,124,253,179,254,147,18,131,207,127,244,23,192,7,143,92,
+241,156,228,80,6,145,251,65,96,124,246,36,116,6,59,115,239,216,190,61,186,245,250,225,79,218,207,252,181,61,250,45,176,245,57,224,41,254,127,64,43,59,23,61,74,51,19,212,125,178,49,208,246,197,134,120,
+56,60,113,158,190,148,135,206,24,44,132,119,249,175,228,199,62,203,167,145,198,58,251,156,16,58,128,94,38,245,74,168,185,219,199,241,53,184,35,234,127,150,121,227,32,102,133,55,75,247,239,34,28,115,153,
+99,61,125,50,113,244,233,254,25,198,103,94,209,168,233,198,162,196,231,175,25,178,24,60,127,158,206,91,162,79,204,199,168,0,11,214,235,255,0,128,68,243,249,245,233,192,160,13,44,207,222,242,46,70,112,
+101,3,143,160,35,250,254,180,187,110,27,145,119,111,129,142,187,118,242,61,242,51,211,57,63,143,74,162,39,82,79,4,246,230,237,138,147,142,115,155,16,121,63,151,67,158,165,235,63,247,98,234,127,231,228,
+31,110,166,207,156,244,198,72,62,227,154,0,209,88,238,7,252,190,218,99,28,128,83,57,237,140,47,124,227,28,117,60,154,70,89,186,253,174,3,211,59,114,115,248,231,30,132,225,125,49,145,200,166,110,165,232,
+32,63,67,114,8,60,251,89,142,190,128,245,237,197,57,93,223,150,128,41,61,112,193,177,255,0,146,235,233,215,3,250,208,4,196,56,35,253,34,44,251,103,167,35,166,112,51,206,48,71,126,244,229,36,255,0,203,
+210,116,231,12,221,126,190,104,224,2,61,243,233,210,171,21,126,208,6,0,96,238,103,0,251,141,168,51,208,253,125,128,166,148,114,64,91,97,207,25,9,33,237,128,121,81,159,118,224,158,220,80,5,188,140,243,
+125,140,122,46,65,237,207,250,72,231,142,61,63,74,112,96,223,242,254,79,210,40,200,232,113,214,124,123,244,231,143,194,162,195,41,28,196,163,147,214,55,206,120,56,3,3,30,158,221,199,122,145,109,103,255,
+0,158,107,140,103,253,94,15,168,231,240,235,239,201,160,11,57,56,194,223,18,65,231,16,196,51,199,166,246,227,167,60,30,152,53,30,233,1,249,111,28,30,191,234,151,61,6,14,72,39,211,167,76,142,180,162,202,
+82,63,213,64,113,234,209,129,237,212,31,204,244,231,233,78,251,29,218,228,5,182,24,61,55,66,58,118,225,148,231,57,234,127,30,185,0,69,150,64,73,55,242,116,61,149,126,160,225,49,236,51,248,246,203,190,
+210,221,239,166,35,175,85,232,125,204,100,115,200,198,15,24,236,120,67,107,115,199,250,129,237,230,196,49,215,142,28,240,125,120,238,120,199,8,109,102,35,230,123,112,56,249,124,216,143,227,141,217,7,233,
+207,28,244,160,7,11,146,121,23,147,113,199,38,60,245,231,159,37,129,252,143,110,156,98,85,187,96,115,246,167,228,119,146,5,233,215,239,90,158,62,152,32,84,95,102,218,50,94,1,211,131,60,106,114,8,231,131,
+158,188,0,113,142,167,173,40,136,14,175,25,192,207,203,58,18,65,244,249,176,122,103,3,24,239,129,138,0,159,237,141,255,0,61,156,129,234,246,173,129,233,147,96,122,254,88,226,143,182,54,8,0,54,70,126,253,
+186,231,254,249,211,78,120,207,29,121,166,249,75,142,36,199,25,193,184,137,72,224,158,158,110,127,145,7,60,30,199,238,192,195,58,177,199,67,115,19,122,30,3,78,14,122,119,31,143,20,0,239,182,74,57,17,231,
+230,231,18,196,6,122,245,26,126,112,49,201,227,220,145,210,65,125,49,7,48,30,131,254,90,66,199,159,76,217,224,242,7,225,206,61,107,159,32,156,18,57,233,134,133,241,236,64,159,219,185,247,227,169,76,194,
+189,73,35,61,118,166,56,233,255,0,47,64,112,125,187,138,0,186,47,164,193,2,0,65,234,29,108,250,251,110,183,83,199,39,57,252,41,70,161,32,206,235,56,136,231,3,203,179,224,96,99,157,132,30,156,231,7,243,
+170,33,173,15,83,35,30,128,5,132,227,235,155,163,211,235,207,115,197,63,54,163,163,92,40,224,241,28,93,57,207,252,188,224,250,130,61,254,180,1,104,106,39,144,108,35,35,7,131,21,174,15,63,245,200,158,125,
+58,96,10,120,212,28,114,182,86,203,129,192,54,246,135,25,250,197,239,250,230,170,109,182,99,159,50,233,135,247,76,105,207,65,159,150,231,129,232,120,247,6,156,209,91,158,147,93,14,14,6,200,143,191,123,
+161,199,61,251,224,103,154,0,182,186,133,198,126,91,91,126,114,8,251,61,177,235,216,108,92,31,192,100,113,210,147,237,247,121,203,91,66,0,234,77,180,3,105,228,117,33,113,145,158,132,103,191,81,85,68,81,
+28,31,54,127,108,219,194,49,198,127,231,228,14,113,215,234,73,199,52,52,16,103,63,104,156,117,224,67,31,83,156,240,46,70,61,250,100,244,235,64,22,190,223,41,57,49,196,58,224,44,16,115,215,60,121,235,248,
+99,173,56,106,29,137,128,116,201,54,208,142,70,56,200,186,56,29,122,156,241,159,90,165,229,198,112,60,235,147,142,194,20,29,123,103,237,153,25,28,117,199,233,135,172,59,126,228,247,164,118,204,79,142,
+122,146,69,238,50,58,231,167,214,128,45,27,165,110,67,90,100,112,50,145,40,237,255,0,79,71,158,221,71,35,4,117,168,204,199,191,216,136,29,63,135,63,80,46,113,223,158,8,201,239,197,64,65,31,242,218,239,
+35,60,22,156,31,192,45,222,51,207,181,40,243,128,56,55,39,105,192,222,111,125,185,194,222,122,99,24,199,108,129,154,0,157,37,32,117,183,83,219,247,175,199,78,120,152,168,31,83,158,125,169,254,118,78,13,
+196,64,114,56,114,217,3,176,255,0,73,235,201,201,224,116,53,1,123,142,128,74,114,57,39,251,64,118,231,131,168,31,160,10,61,78,121,168,203,207,158,21,201,7,184,190,7,243,55,228,146,61,212,226,128,39,222,
+8,195,93,195,131,216,147,192,24,60,98,235,156,103,185,61,122,144,69,70,68,89,230,91,71,238,65,46,78,9,236,62,210,71,76,224,101,126,153,20,207,54,231,63,234,228,108,116,253,221,233,219,142,14,74,222,126,
+60,156,244,233,72,101,152,103,48,75,156,242,81,47,71,76,118,107,150,61,177,235,129,206,120,192,2,226,212,3,131,102,72,206,56,39,142,217,97,116,120,231,219,7,174,58,210,3,9,200,255,0,66,60,228,227,112,
+3,174,79,50,182,73,233,192,36,246,163,237,23,29,4,18,231,253,168,231,57,246,193,155,56,199,35,140,117,207,178,172,151,4,228,219,182,64,207,48,205,249,243,39,191,245,205,0,35,121,93,190,198,113,201,251,
+237,192,231,220,99,147,159,90,104,147,159,149,109,9,92,30,97,14,112,72,232,193,48,122,146,9,7,241,201,21,63,159,50,140,52,48,15,247,162,193,227,220,231,159,199,63,141,63,206,144,142,177,250,145,229,70,
+221,127,222,3,208,112,127,28,227,144,8,22,237,83,134,91,110,252,27,69,25,61,198,60,188,246,233,142,120,235,205,75,246,160,195,132,179,83,220,125,134,34,73,200,28,150,139,7,175,124,125,123,25,67,200,65,
+229,7,160,251,53,153,57,25,254,240,36,31,99,130,113,144,123,82,229,216,224,180,61,63,138,219,79,7,160,245,7,140,244,227,245,160,10,158,107,114,86,43,66,115,159,249,7,192,122,145,199,250,131,207,166,120,
+198,114,125,92,146,220,147,196,22,132,251,88,219,100,99,216,219,103,215,211,62,253,237,132,36,1,152,79,115,136,108,87,219,160,97,198,79,31,47,3,38,151,105,235,190,35,211,159,34,203,63,159,158,1,244,200,
+199,61,187,0,10,235,37,222,115,229,91,129,235,246,27,49,235,142,68,10,71,25,238,63,152,169,69,197,231,0,20,94,216,91,91,101,227,57,227,16,254,36,103,129,142,185,169,68,77,156,249,177,174,122,31,42,215,
+158,160,142,46,135,230,49,199,225,83,11,99,255,0,63,17,129,254,196,113,12,255,0,223,58,136,198,51,220,115,212,80,4,2,91,178,62,249,201,254,237,181,171,14,135,25,13,31,243,239,145,197,52,203,123,144,1,
+102,36,245,91,107,33,244,39,247,61,72,61,78,1,57,199,60,213,177,110,15,30,114,147,207,221,9,193,247,255,0,137,142,125,56,29,57,233,214,153,228,158,138,204,113,253,197,0,227,191,221,213,70,51,232,0,224,
+113,211,128,8,177,120,121,101,148,231,0,124,150,139,245,231,29,137,244,236,6,72,36,211,118,93,30,4,83,183,31,194,246,128,231,191,221,60,112,56,198,121,245,205,74,32,152,31,186,204,61,208,125,121,7,87,
+0,231,158,184,239,198,121,50,249,82,158,124,190,192,127,171,28,114,70,112,117,76,103,140,228,103,158,135,165,0,85,17,221,99,33,46,199,60,129,44,42,61,177,181,176,125,242,61,251,226,164,84,184,81,141,183,
+163,167,252,182,79,66,56,253,230,49,235,199,64,112,59,9,76,82,127,207,55,24,224,21,139,249,109,213,57,253,113,131,218,163,242,238,59,71,41,30,241,30,71,111,249,137,176,255,0,62,134,128,1,20,172,50,82,
+240,227,214,224,142,125,246,220,160,201,244,57,235,244,164,216,227,143,38,244,247,226,234,79,254,73,108,115,198,57,227,36,96,10,93,183,45,247,160,36,17,207,238,7,183,93,218,134,78,125,49,252,170,51,28,
+227,159,179,32,228,0,13,191,57,255,0,192,220,17,211,160,160,5,40,199,254,93,239,135,115,254,150,248,199,191,250,64,234,79,78,160,231,215,37,134,7,99,255,0,30,215,132,99,24,107,185,128,231,233,49,237,140,
+228,224,140,18,51,205,5,110,135,252,185,198,217,207,222,128,243,215,36,127,164,190,125,114,62,190,134,152,124,252,140,233,240,251,19,108,72,246,228,207,200,32,158,1,206,78,51,210,128,3,106,249,24,183,
+189,0,159,225,191,188,199,224,22,229,87,223,56,231,24,29,179,27,90,176,39,247,23,163,60,97,174,111,95,57,235,207,218,72,60,99,215,159,204,169,243,91,173,140,32,2,0,204,56,3,63,91,130,1,199,110,56,252,
+77,42,135,233,246,27,49,142,6,96,7,63,80,46,48,49,211,7,240,233,200,3,13,180,252,1,29,218,251,137,47,91,32,118,36,200,113,244,201,60,241,142,180,211,105,49,228,155,174,63,235,177,231,60,228,52,156,241,
+199,174,79,56,25,165,111,52,103,253,14,208,103,210,221,72,201,207,76,92,113,140,126,185,237,81,51,62,71,250,37,144,24,60,152,24,246,60,224,76,123,99,184,201,231,154,0,86,182,236,86,228,253,124,192,6,126,
+178,48,244,235,245,244,168,254,203,198,66,57,60,242,88,177,245,238,49,198,61,125,241,158,136,119,103,63,101,177,31,237,27,118,252,177,230,125,115,200,36,116,245,166,110,147,146,33,178,92,131,247,109,228,
+227,159,119,227,175,184,60,3,156,112,0,125,146,70,24,25,30,196,55,212,99,10,7,60,246,198,13,55,236,93,155,104,228,125,228,124,116,239,145,159,169,193,250,243,64,121,87,170,219,158,189,32,35,211,140,110,
+30,254,254,135,154,83,113,39,100,180,3,29,12,36,253,122,185,62,188,12,115,248,138,0,99,217,32,25,196,7,3,143,148,158,157,254,100,198,58,116,228,100,117,25,196,102,219,254,184,21,28,241,10,144,58,115,159,
+40,250,131,159,235,83,52,239,198,62,202,56,234,32,99,143,83,243,77,144,71,65,206,7,96,15,72,188,249,65,56,120,71,112,69,187,30,191,87,32,116,30,166,128,5,182,193,36,37,177,29,201,138,49,158,192,255,0,
+168,201,224,14,153,30,253,233,12,96,15,154,43,86,7,176,17,140,12,158,167,200,227,159,207,61,169,26,123,159,249,236,59,244,179,114,115,211,208,227,190,8,207,94,42,22,150,224,158,101,207,39,36,219,58,246,
+237,198,58,254,128,245,238,1,55,148,58,253,154,208,142,163,230,67,129,208,30,34,0,28,28,31,203,185,166,152,27,4,139,123,48,56,60,180,126,157,129,141,143,110,152,56,7,177,226,162,89,38,236,204,62,145,184,
+254,81,146,58,112,114,59,103,28,83,188,201,191,190,199,7,31,55,152,61,114,0,200,63,135,110,198,128,15,38,64,188,91,218,142,152,11,229,17,234,112,124,144,49,156,231,158,122,253,26,99,59,126,107,104,189,
+254,120,151,63,76,197,219,174,14,120,250,100,184,188,196,12,190,57,25,198,225,211,221,156,30,191,76,158,115,81,151,144,144,55,129,158,164,201,46,113,156,244,18,224,100,250,247,237,154,0,99,109,80,127,
+209,215,211,239,194,113,255,0,144,127,173,48,56,207,250,165,24,239,152,0,63,249,3,158,189,243,143,108,212,165,36,60,150,36,116,206,249,71,175,76,54,113,147,216,251,242,6,106,54,73,79,33,216,112,79,222,
+152,231,254,250,206,58,244,39,60,96,80,2,137,19,0,152,129,227,180,177,28,159,94,97,80,59,143,160,7,214,129,58,12,131,24,80,70,63,214,70,71,62,184,140,156,159,97,212,243,129,193,102,251,149,56,25,255,0,
+129,75,39,35,232,83,143,196,245,3,28,113,65,150,227,161,139,119,114,68,207,207,30,201,211,249,99,189,0,35,92,219,113,146,217,244,87,80,7,29,15,11,223,219,3,25,250,148,195,60,253,224,112,65,231,247,178,
+30,61,176,140,120,235,130,65,231,29,168,160,15,158,3,217,14,182,46,72,234,90,56,202,159,67,159,52,227,129,206,122,231,28,83,204,150,61,244,230,199,113,177,120,28,113,196,254,220,112,121,199,3,34,156,81,
+24,28,222,50,245,3,116,144,112,126,164,113,236,15,167,56,226,152,86,49,215,80,12,125,230,180,32,243,216,51,41,198,1,227,166,57,20,0,245,22,3,13,253,156,235,238,85,135,76,243,242,207,212,247,32,47,78,115,
+82,163,89,228,133,176,115,212,229,164,144,12,158,163,6,124,159,94,0,199,124,247,172,188,156,165,218,251,102,75,62,122,244,38,67,235,142,114,123,30,213,33,51,39,63,106,79,127,158,207,104,231,25,206,255,
+0,231,208,158,134,128,45,3,7,63,241,47,56,231,171,201,140,123,109,156,49,25,61,50,122,156,142,225,223,185,39,2,204,46,14,115,230,204,0,233,158,124,242,1,250,243,211,235,84,214,89,121,31,109,181,231,61,
+77,155,28,224,122,78,61,200,39,220,117,6,166,87,144,240,110,236,8,245,205,174,65,61,51,182,224,254,93,58,117,231,0,19,171,70,57,22,200,63,224,115,16,50,123,225,206,1,201,199,229,83,172,136,79,22,112,231,
+212,60,223,207,121,231,185,201,31,159,21,88,59,22,33,175,52,225,140,112,26,215,32,123,147,55,60,99,56,198,58,98,158,174,122,11,173,53,189,11,61,168,207,254,69,62,189,49,159,90,0,182,174,1,200,182,78,57,
+24,45,180,117,3,150,108,159,110,126,135,154,157,29,179,242,218,69,248,150,255,0,235,240,125,50,120,235,206,107,60,77,48,31,51,232,248,28,100,139,86,30,128,143,152,245,56,233,158,125,113,77,55,110,8,253,
+230,146,49,208,108,182,111,203,10,72,31,150,7,208,224,3,97,101,148,30,108,212,129,128,63,123,54,61,1,201,140,129,233,198,65,253,106,97,112,224,127,199,156,39,35,156,200,237,215,142,240,244,29,189,250,
+214,66,222,76,64,31,241,43,60,241,251,136,9,192,7,161,84,99,158,217,3,142,59,226,158,46,103,238,250,113,227,143,220,197,233,211,62,71,25,232,120,35,240,160,13,111,53,216,225,172,32,29,240,88,147,199,28,
+133,131,147,140,115,145,206,51,212,84,168,227,60,216,219,3,233,186,76,143,160,16,99,25,231,160,250,247,172,81,120,199,129,253,158,79,57,30,66,113,234,114,34,207,31,128,31,133,74,183,42,122,139,30,113,
+247,109,199,97,211,34,22,61,115,236,58,158,230,128,54,75,100,127,199,164,29,120,207,154,65,60,244,197,190,57,246,34,151,118,120,54,150,248,239,197,200,239,219,247,3,61,207,167,233,89,171,117,24,31,118,
+211,167,252,242,148,116,245,2,223,25,233,140,15,165,11,116,167,36,71,108,78,113,149,183,149,189,79,95,32,31,208,30,125,51,64,26,160,71,255,0,60,34,83,142,254,126,211,131,200,201,136,103,234,15,60,126,
+2,176,25,2,24,73,246,55,67,211,210,31,94,253,63,74,162,183,42,196,2,96,95,66,182,238,252,254,48,99,62,217,4,119,60,138,157,110,16,96,249,196,122,98,200,17,131,233,144,73,245,245,24,207,108,208,5,145,26,
+147,150,182,132,158,224,79,116,191,143,22,199,175,24,235,219,212,210,249,17,183,6,222,33,140,255,0,203,123,163,215,211,54,135,129,158,9,36,231,52,196,186,140,125,233,229,192,245,177,80,115,193,3,59,1,
+239,237,199,122,155,237,118,248,193,185,145,71,253,123,55,39,254,2,167,60,241,207,113,214,128,26,182,72,72,111,45,51,235,230,92,174,7,177,107,96,14,113,219,39,30,156,84,203,96,128,131,128,9,199,73,103,
+35,190,51,186,1,223,56,228,123,15,85,91,155,115,140,76,231,190,126,205,33,244,25,193,140,240,48,126,159,94,150,69,204,7,31,191,144,14,184,22,114,103,159,113,17,4,243,208,127,74,0,135,236,100,116,111,252,
+126,78,7,176,49,145,239,211,184,201,237,78,91,126,185,29,15,25,144,245,199,7,144,56,231,241,28,12,10,156,92,219,128,49,52,228,250,253,137,192,235,211,112,180,98,121,245,252,120,205,56,93,65,212,201,113,
+201,232,182,224,122,118,123,18,195,130,61,0,235,211,168,2,36,11,145,201,39,29,12,199,215,28,12,231,242,236,106,194,68,120,3,111,167,250,194,79,231,223,63,95,229,66,220,91,242,69,197,238,15,240,253,158,
+223,0,99,24,230,204,17,143,67,129,215,175,119,253,162,35,140,61,217,61,127,227,222,223,183,171,27,2,61,123,147,244,160,5,242,80,224,182,236,246,34,70,43,200,7,211,7,183,56,244,199,90,176,145,192,8,220,
+206,163,39,238,144,222,184,36,146,58,126,29,113,154,132,92,47,66,211,115,198,77,189,176,199,227,253,154,73,206,71,110,41,115,19,114,68,237,201,224,36,3,140,251,105,124,123,241,131,211,232,1,104,199,107,
+144,60,249,73,3,56,10,152,246,0,25,208,142,156,254,116,241,28,3,145,51,228,131,130,68,99,191,92,125,175,25,224,129,220,112,58,138,170,12,61,210,231,25,227,247,54,124,143,83,157,49,79,243,231,175,122,153,
+68,45,192,91,208,122,156,91,233,228,245,227,31,232,33,135,245,237,201,160,11,137,228,175,89,217,71,108,164,120,61,57,0,92,19,147,142,185,192,39,167,34,158,13,177,227,207,108,159,96,120,231,160,23,35,158,
+115,206,122,125,49,83,100,100,253,219,226,59,102,218,196,126,36,155,76,126,85,40,134,34,112,169,118,164,255,0,211,189,135,94,167,145,106,163,156,122,14,114,122,154,0,184,175,8,31,44,231,140,12,31,151,
+140,227,32,249,231,245,231,241,197,56,74,153,24,157,122,240,75,161,246,227,50,131,219,56,35,142,185,29,161,91,76,227,15,112,59,97,160,178,111,203,108,64,147,140,116,233,158,72,52,171,102,123,201,35,3,
+207,252,123,91,142,153,238,168,122,253,50,58,158,216,0,155,127,204,49,114,15,108,9,81,122,231,210,224,3,235,206,78,127,10,145,100,151,36,125,161,115,239,58,103,140,118,55,36,14,189,0,233,138,98,219,168,
+254,41,72,29,132,49,243,143,81,176,99,143,67,198,56,62,147,136,84,143,187,56,235,146,98,198,0,199,112,192,103,159,110,221,59,128,2,105,151,63,233,67,35,129,155,152,199,230,5,193,227,60,14,157,58,102,164,
+75,155,192,120,157,49,156,156,220,196,57,207,63,122,83,215,158,216,198,57,167,164,72,6,2,185,61,201,140,228,15,114,103,31,168,247,207,90,153,96,221,206,211,255,0,2,37,120,234,50,22,224,244,201,245,4,115,
+198,104,1,130,238,245,121,51,219,156,129,193,184,132,158,185,28,22,99,199,168,253,57,20,225,123,119,211,204,135,216,121,232,73,233,199,4,99,183,65,156,26,145,109,15,116,143,25,254,41,28,127,232,37,191,
+17,250,131,213,255,0,103,76,115,28,56,29,196,178,30,120,63,196,157,191,207,106,0,98,221,223,241,131,8,29,191,210,192,207,183,220,124,113,216,253,57,239,96,221,222,158,175,1,35,130,5,228,71,168,60,113,
+9,239,145,211,60,131,142,194,49,110,7,72,98,96,122,98,105,7,168,199,250,130,15,161,227,161,224,10,144,65,22,48,109,99,36,103,254,91,228,113,223,155,102,31,78,77,0,61,110,174,142,50,97,61,199,239,179,200,
+57,60,172,31,94,248,60,30,123,78,151,119,64,224,172,7,57,198,102,207,211,147,0,198,78,125,122,17,199,21,26,197,1,24,251,26,118,231,237,9,212,115,198,235,63,65,198,15,29,185,230,156,109,237,240,63,209,
+85,122,253,233,237,184,57,255,0,175,80,59,127,60,244,160,11,2,234,99,212,66,222,155,88,28,241,140,103,201,39,235,140,3,145,248,11,120,231,131,28,89,25,39,56,102,63,93,176,145,219,156,244,207,81,85,133,
+181,183,0,199,15,60,17,230,219,18,49,198,6,44,206,63,62,79,60,245,163,108,35,32,65,24,29,14,215,132,99,24,227,34,201,122,123,30,217,192,160,11,139,116,48,50,136,164,156,156,5,198,115,198,115,9,39,61,56,
+198,120,231,181,31,104,92,251,99,35,104,141,126,128,17,2,246,227,39,62,132,116,53,80,73,10,127,203,5,108,14,50,97,108,117,236,45,70,70,58,140,159,79,122,122,205,27,14,32,80,9,236,176,174,58,244,253,192,
+39,183,92,255,0,136,5,229,186,236,25,192,198,122,169,244,244,92,231,166,56,30,195,173,56,222,32,224,239,110,112,114,87,176,245,96,185,207,3,182,122,3,235,72,50,143,187,129,233,145,0,28,140,119,80,126,
+152,97,254,15,14,112,51,38,73,201,202,152,177,208,115,216,118,56,231,211,2,128,45,253,186,32,127,213,185,231,57,219,14,7,185,34,76,103,143,95,241,166,157,66,49,201,136,99,61,127,209,143,175,4,180,132,
+253,58,116,239,205,65,184,168,199,156,163,175,222,201,35,191,0,74,0,245,227,3,57,199,76,211,9,126,215,81,129,215,150,152,115,198,56,23,64,123,240,114,113,197,0,88,254,210,183,193,13,8,207,76,151,177,81,
+248,101,179,248,140,140,231,25,199,40,53,27,92,255,0,168,66,65,200,44,214,39,232,1,101,32,143,112,73,252,58,65,230,74,163,139,184,15,63,222,186,7,211,254,126,200,253,9,61,134,113,79,243,174,15,75,161,
+129,200,195,221,12,244,193,230,240,96,245,247,35,7,60,226,128,38,254,210,183,35,34,40,120,198,71,153,96,14,61,176,135,61,49,201,227,174,104,254,208,183,237,12,57,206,48,101,179,3,25,246,81,140,245,198,
+126,156,212,98,89,14,67,95,178,250,131,37,199,244,189,39,240,231,215,214,152,73,98,51,170,0,7,99,36,224,247,4,103,237,45,159,124,231,167,3,173,0,88,93,70,223,36,125,150,221,186,100,179,218,227,169,201,
+4,62,121,237,158,61,205,56,222,194,223,122,202,211,28,156,134,178,199,226,88,103,61,123,112,14,114,70,69,86,57,94,127,181,73,201,207,202,211,159,115,192,186,95,207,32,96,254,53,19,92,30,7,246,164,132,
+103,238,168,156,125,7,252,126,103,57,61,115,211,211,173,0,91,251,84,71,59,109,109,71,124,25,108,50,115,237,229,159,92,243,207,67,218,143,180,15,249,247,181,24,29,218,203,244,33,6,48,121,252,70,115,222,
+129,159,36,147,168,78,7,61,76,152,237,211,125,238,64,250,147,215,29,122,52,220,175,221,26,156,153,192,200,1,207,227,255,0,31,77,211,35,147,142,252,117,192,6,152,152,176,7,200,131,156,131,182,59,82,48,
+58,103,247,99,36,118,198,120,193,36,244,167,239,115,194,196,137,128,49,136,160,57,199,178,174,113,223,142,79,67,235,89,94,114,158,186,172,164,100,253,232,73,198,56,61,110,61,179,72,215,49,129,129,169,
+202,71,168,182,7,216,114,110,114,59,140,0,63,14,180,1,172,76,228,224,70,252,1,202,193,26,129,130,15,104,247,30,50,56,60,12,240,15,38,6,19,177,232,72,207,42,65,56,192,199,64,6,79,182,71,24,7,28,154,202,
+55,49,127,21,252,141,199,123,96,1,231,167,55,39,235,219,165,66,215,48,3,255,0,31,76,78,72,3,201,1,178,59,229,174,64,227,220,254,35,173,0,109,5,149,65,60,113,140,103,35,234,73,220,223,144,239,232,120,45,
+217,46,57,63,142,233,120,231,156,97,134,14,71,81,142,78,56,21,148,46,1,192,91,139,158,156,237,138,49,207,225,120,15,185,7,167,227,72,215,15,147,137,238,8,247,4,28,231,166,126,222,185,252,64,228,31,76,
+208,6,139,23,83,243,101,176,58,239,148,140,158,112,48,216,206,59,17,147,236,122,70,102,144,12,121,121,246,41,46,78,63,222,117,61,123,231,0,240,73,0,10,163,184,48,230,73,228,35,162,239,96,51,239,139,227,
+215,234,126,157,169,67,182,121,89,123,225,76,172,49,244,2,243,57,227,25,28,118,232,40,2,223,152,14,50,156,228,241,182,64,6,122,224,239,111,195,56,231,243,49,180,216,7,17,28,99,184,149,71,227,251,192,57,
+231,156,30,152,170,236,238,70,54,79,207,93,178,206,120,60,224,226,248,123,156,129,147,76,220,23,254,88,93,156,17,130,36,184,35,61,207,203,122,65,250,231,183,175,20,1,107,237,39,254,121,142,57,80,100,153,
+112,123,114,100,192,227,32,99,158,42,35,114,217,199,145,8,60,231,117,196,138,79,28,228,9,65,63,134,114,121,62,213,94,69,98,115,109,120,78,49,145,36,163,175,61,77,217,207,97,244,224,242,42,32,99,224,253,
+154,244,100,99,5,229,99,199,115,254,146,78,61,179,207,20,1,160,46,199,252,240,183,244,255,0,95,41,24,192,228,229,253,14,70,15,61,198,5,52,222,17,247,96,131,3,191,157,41,57,237,145,191,3,29,58,131,158,
+220,154,161,145,147,139,123,207,251,238,99,239,255,0,61,250,114,126,131,142,128,84,76,99,57,223,5,208,235,147,155,134,245,199,73,27,142,57,3,174,8,56,227,32,26,75,126,224,127,171,135,147,211,231,36,103,
+145,201,99,156,246,3,220,243,221,77,244,156,126,238,30,58,150,86,232,6,57,228,147,235,147,159,92,214,73,107,65,214,27,156,145,201,16,220,113,193,239,158,121,236,115,192,234,40,243,109,215,59,99,186,232,
+113,152,46,184,207,209,72,207,212,241,215,216,128,95,123,183,36,231,236,227,254,5,32,252,126,240,250,113,144,59,99,60,70,215,77,208,27,96,120,28,200,127,2,50,9,3,185,57,60,140,28,213,35,52,36,156,45,201,
+35,142,109,238,143,242,25,199,225,140,245,224,211,124,216,179,196,119,4,250,253,158,236,16,7,160,217,156,119,201,60,243,218,128,45,181,219,3,134,107,76,115,159,223,39,224,50,223,174,56,199,175,104,154,
+238,34,112,69,145,224,244,154,62,113,235,142,57,61,243,198,9,39,158,97,51,168,198,32,114,122,13,209,92,131,255,0,162,255,0,169,250,158,200,102,36,241,12,163,223,101,224,30,157,151,28,103,143,97,220,113,
+64,19,11,152,123,27,94,48,127,214,35,99,175,184,207,248,113,138,79,54,23,206,18,2,63,223,65,211,24,56,15,159,115,143,202,152,175,41,233,28,189,128,226,240,123,127,14,56,228,146,79,3,175,169,11,182,98,
+120,142,65,156,245,107,156,113,238,199,57,238,122,122,244,160,7,102,0,127,212,68,72,7,159,48,116,201,238,28,140,100,119,227,0,243,218,163,127,40,143,248,242,134,76,145,201,144,46,58,158,167,113,32,99,
+28,118,52,239,222,158,169,211,61,69,195,103,28,144,14,6,49,249,99,159,65,80,59,78,115,182,18,125,243,56,235,235,201,207,124,241,158,157,141,0,70,203,24,56,22,16,247,227,207,57,199,175,250,179,220,99,147,
+239,138,21,35,39,230,211,208,143,81,42,17,235,128,25,70,70,71,67,206,48,114,112,69,12,110,64,32,218,169,61,70,126,210,125,125,35,199,175,4,243,250,84,97,102,229,141,154,131,212,157,210,19,142,188,16,51,
+159,192,241,248,96,2,103,134,22,24,251,20,96,246,27,193,63,66,85,70,58,103,142,113,233,77,242,34,31,122,205,120,235,243,205,145,208,228,97,31,156,240,49,207,110,135,21,25,121,71,2,213,119,17,147,145,43,
+100,118,251,160,30,216,29,48,79,76,115,77,45,57,57,251,42,229,73,193,242,229,39,30,184,56,231,211,175,174,7,112,9,188,171,98,113,246,82,189,242,191,106,32,19,235,254,140,189,58,147,147,72,109,227,39,62,
+68,152,7,160,55,10,113,234,51,8,201,237,143,79,78,181,14,249,65,255,0,87,143,92,195,32,62,191,197,38,7,110,114,71,161,52,25,164,3,6,220,30,122,249,96,143,166,214,206,122,17,215,31,94,69,0,74,209,66,51,
+136,164,65,232,124,246,110,131,146,12,24,61,120,253,79,164,76,171,159,148,14,255,0,242,199,60,118,25,49,103,3,174,126,185,7,60,55,207,61,69,160,4,14,134,20,35,146,121,229,134,120,198,6,58,130,51,206,105,
+12,206,65,219,111,48,193,224,11,116,3,184,237,42,158,152,252,61,114,8,0,126,197,35,150,43,201,229,173,176,0,25,200,206,208,125,51,199,36,112,51,193,112,142,50,121,120,200,239,155,86,39,24,234,62,112,125,
+201,3,25,227,36,98,160,50,203,208,69,48,247,251,49,36,227,110,120,243,199,0,100,103,169,227,29,169,67,57,229,146,113,144,122,90,175,226,64,123,165,199,29,121,231,159,66,64,4,226,59,108,228,72,167,129,
+243,45,187,140,127,232,67,143,167,4,30,13,41,242,20,131,230,175,29,51,28,219,187,116,56,29,187,114,42,169,24,36,145,118,172,113,207,217,16,254,162,228,129,219,166,115,245,160,182,252,12,221,30,153,63,
+102,80,120,231,188,216,24,232,48,112,62,153,160,11,70,120,122,111,207,214,41,9,29,56,228,245,244,4,143,90,80,193,143,200,232,87,60,102,23,80,51,232,124,240,72,31,65,140,116,224,85,64,168,160,13,215,167,
+175,72,161,1,184,57,192,243,143,212,0,15,31,142,83,247,64,224,173,209,60,31,152,91,46,115,234,25,255,0,152,193,238,7,112,11,44,88,31,153,97,56,233,155,119,108,243,206,49,49,192,231,28,231,167,66,6,106,
+51,180,158,35,181,35,0,255,0,199,148,185,231,158,112,199,60,122,250,123,156,52,34,28,126,238,81,128,48,115,111,140,123,144,195,62,249,62,231,221,172,145,131,156,62,71,63,43,219,130,14,123,144,88,231,249,
+123,80,5,149,137,59,197,0,4,142,150,51,227,142,51,193,56,227,140,116,30,164,84,254,68,103,0,27,112,79,79,244,25,179,216,245,35,169,236,59,247,4,86,112,88,215,146,172,248,236,103,140,31,192,12,246,7,158,
+189,120,233,83,7,94,7,148,189,7,38,230,0,70,7,76,50,250,123,224,3,212,12,80,5,211,106,131,4,180,75,145,206,219,57,0,207,226,59,122,30,125,200,197,30,75,47,250,183,140,15,246,160,92,227,190,65,96,121,25,
+198,64,227,60,228,85,79,57,19,162,198,15,253,127,89,131,239,193,83,207,110,158,184,233,72,38,113,247,124,146,121,224,223,217,115,207,57,111,32,156,228,122,227,31,76,208,5,191,42,111,88,27,56,228,91,175,
+63,142,240,125,56,232,120,244,163,200,156,242,4,75,146,115,136,0,193,224,224,159,55,250,143,199,180,38,89,14,15,145,108,112,78,79,219,237,9,231,235,16,231,167,78,7,113,74,37,144,3,152,45,206,125,111,109,
+14,113,244,136,145,244,60,227,20,1,55,145,112,167,153,1,207,32,121,96,99,215,31,190,39,145,142,156,99,211,187,196,19,156,124,233,237,152,144,17,211,143,245,135,0,243,147,140,224,118,170,194,225,198,79,
+217,237,199,166,46,237,73,231,183,250,144,121,234,79,191,56,233,78,243,152,159,245,49,19,201,255,0,143,187,115,142,131,131,229,241,239,235,154,0,181,228,220,0,72,101,3,191,48,118,199,56,36,30,163,61,15,
+208,243,81,31,182,47,221,27,135,167,218,33,92,250,227,104,0,103,169,24,254,89,166,44,238,223,242,238,56,199,204,151,80,224,99,175,42,160,30,131,128,121,36,122,212,159,105,147,254,121,117,239,246,132,206,
+127,22,57,224,100,244,231,191,83,64,17,52,186,128,32,8,217,184,193,197,220,88,227,244,227,35,190,15,215,38,144,79,168,3,254,161,198,114,120,185,143,177,227,146,132,3,156,247,231,3,60,211,205,196,160,253,
+207,167,239,129,199,228,220,227,161,227,159,196,82,27,150,108,226,54,110,78,126,121,179,158,152,33,84,14,190,132,142,189,113,192,4,235,53,241,235,110,64,39,60,220,198,79,126,120,132,241,215,159,78,135,
+131,74,30,237,121,242,7,35,146,103,227,147,142,54,196,59,143,195,142,106,1,57,31,122,221,186,99,57,185,254,69,72,39,254,249,254,148,241,112,58,249,110,189,248,107,129,208,12,130,9,24,250,140,3,235,193,
+52,1,46,110,155,173,176,228,115,251,217,112,0,36,158,145,123,244,4,96,159,78,105,223,191,4,6,180,137,179,223,124,164,240,113,147,136,114,125,56,207,227,80,249,201,131,143,59,168,193,18,92,224,116,227,
+30,96,199,94,57,231,61,200,20,7,140,129,251,217,151,61,132,147,117,207,36,147,115,207,226,58,126,24,0,180,166,65,201,182,10,50,8,193,144,99,142,113,251,144,65,250,140,241,211,165,76,142,249,27,162,32,
+14,131,51,19,245,199,146,9,31,129,244,199,122,161,229,197,213,154,225,128,235,182,73,178,125,137,251,86,1,3,175,110,158,163,10,18,212,240,94,237,126,142,231,160,198,112,215,124,242,120,199,230,115,64,
+26,138,221,63,118,196,12,3,196,249,246,206,96,199,39,240,53,56,8,122,160,57,231,45,20,204,0,233,131,182,14,254,156,245,57,197,99,172,22,100,228,205,57,36,114,124,196,60,250,144,102,200,234,6,119,14,51,
+210,165,251,38,158,64,59,174,51,255,0,93,54,143,207,207,35,56,61,168,3,75,108,71,248,19,4,112,60,153,176,71,94,141,106,7,127,94,255,0,133,48,197,24,57,17,68,9,29,161,144,156,244,233,246,101,25,199,94,
+15,175,34,170,11,43,35,206,235,190,184,39,206,64,56,235,128,211,250,99,183,60,226,166,91,59,35,207,155,118,8,28,15,58,216,14,79,247,124,209,147,249,17,205,0,75,182,62,165,66,245,35,16,63,94,227,253,71,
+243,233,244,52,224,150,249,3,115,38,65,221,155,113,250,22,132,103,174,123,12,31,166,34,251,37,166,15,239,103,7,142,124,203,102,35,223,6,240,117,207,191,78,153,20,171,107,105,131,153,38,32,115,130,214,
+199,191,80,5,222,125,178,15,190,1,198,0,38,41,110,120,18,183,24,231,200,85,200,207,83,251,158,131,175,67,140,118,233,75,246,120,136,255,0,94,132,242,112,208,156,231,158,128,65,211,28,246,60,224,84,126,
+69,168,198,12,135,182,114,152,252,150,227,24,206,122,231,30,181,32,138,216,30,8,29,79,40,141,158,15,82,110,71,60,241,199,111,124,80,3,133,162,240,114,167,25,25,91,121,63,248,200,60,244,228,15,126,58,167,
+216,201,57,5,79,57,207,217,92,145,211,158,66,145,142,115,158,125,186,82,253,158,6,232,99,232,127,229,146,115,140,113,143,52,159,233,140,116,238,166,4,25,196,105,129,220,34,145,206,113,157,175,206,125,
+9,224,244,233,64,12,251,35,131,149,36,142,159,241,235,129,144,7,76,184,192,252,127,62,207,88,28,99,59,128,7,180,110,9,246,31,191,92,3,234,51,215,175,122,102,17,88,126,229,15,97,132,70,207,127,226,36,255,
+0,223,71,31,94,242,18,188,19,107,24,4,14,26,222,220,147,219,35,44,9,200,29,122,117,244,2,128,31,185,211,248,136,193,63,197,112,114,51,254,205,198,0,246,233,215,61,57,60,217,58,143,156,30,57,146,239,57,
+250,125,167,159,98,49,215,190,106,63,220,131,205,156,68,99,63,241,239,2,250,100,237,23,64,246,237,131,212,0,58,1,124,150,4,155,36,7,174,4,72,171,207,210,225,176,61,49,248,245,160,9,68,210,175,252,176,
+67,158,79,239,174,193,239,145,242,206,113,199,94,7,215,176,65,60,135,254,93,21,185,224,249,215,103,167,251,211,48,247,255,0,235,84,97,97,234,52,248,179,142,188,123,228,128,101,3,56,29,56,228,31,165,1,
+33,108,230,201,1,246,72,72,244,206,90,117,253,127,144,160,11,66,226,117,233,167,171,112,58,73,57,227,142,6,101,56,31,207,63,133,6,230,67,130,218,121,82,58,252,243,12,100,243,131,231,123,1,208,116,227,
+154,166,109,237,179,205,153,28,96,237,251,56,36,231,161,63,104,96,7,76,251,14,128,83,60,155,113,144,182,210,140,122,45,169,199,81,143,245,202,71,28,147,235,235,216,2,247,218,128,228,216,48,3,32,178,188,
+216,198,79,92,72,79,126,114,50,65,239,156,211,13,218,103,155,16,7,124,201,55,160,61,115,206,71,57,199,175,227,91,100,0,99,200,185,200,244,75,114,62,159,241,242,0,237,140,158,135,39,140,84,162,24,159,238,
+218,78,48,79,204,69,184,201,237,192,188,92,96,245,233,239,223,32,10,110,224,57,205,171,41,28,225,101,124,142,190,160,113,235,201,29,125,42,35,115,109,147,155,103,39,24,198,124,195,156,247,201,28,31,108,
+253,78,120,155,236,171,200,242,88,103,57,80,201,215,215,41,124,121,25,198,49,223,235,79,91,100,232,35,157,79,39,137,27,25,227,177,187,108,254,157,243,156,240,1,9,158,215,143,244,41,136,255,0,102,4,7,175,
+4,146,172,113,244,32,118,36,131,138,103,157,108,114,5,171,224,246,217,27,118,227,39,203,247,61,122,251,118,179,246,99,156,143,181,18,58,96,156,241,219,153,207,35,161,57,207,28,118,192,182,238,164,28,95,
+3,254,202,175,110,220,202,78,51,142,191,173,0,84,50,219,147,255,0,30,211,15,113,20,64,103,240,136,103,183,175,0,140,250,55,125,160,235,5,192,255,0,117,121,35,7,60,1,142,157,120,198,79,62,181,160,35,145,
+114,66,223,118,225,162,7,185,235,137,152,231,142,253,7,74,114,180,195,3,101,255,0,29,66,194,115,201,61,195,227,244,61,61,133,0,99,153,108,7,221,134,235,215,140,33,201,62,135,32,250,231,144,79,24,52,223,
+54,200,159,248,246,184,110,71,47,180,96,250,158,56,252,186,116,227,174,224,146,227,44,63,226,96,171,206,6,214,3,156,245,196,188,118,207,202,63,12,80,242,207,198,5,199,252,13,228,254,133,177,156,117,35,
+25,207,92,80,6,33,146,207,129,246,121,255,0,6,36,15,252,116,143,203,250,156,129,172,250,139,73,73,247,0,130,58,244,217,212,142,65,245,231,158,251,30,116,216,249,132,255,0,240,23,184,57,199,76,254,233,
+192,199,182,112,63,86,53,193,0,6,55,96,30,184,251,73,31,155,90,128,15,191,211,60,96,128,12,144,246,141,156,90,28,250,236,198,14,58,110,216,65,252,249,24,28,113,74,77,184,199,250,35,19,142,51,40,0,31,97,
+177,78,51,217,125,64,207,25,173,6,184,97,157,178,94,40,207,59,188,222,113,244,136,12,243,223,29,135,173,48,93,48,206,30,239,191,118,193,244,224,199,249,254,67,168,200,5,64,208,231,155,73,6,123,171,177,
+24,30,248,63,168,24,238,61,30,54,114,86,9,0,228,243,187,160,237,200,207,110,123,83,154,225,9,32,188,217,61,78,31,208,96,19,229,129,219,143,65,192,244,48,179,197,207,239,37,231,167,51,245,239,192,66,51,
+239,198,72,232,71,32,2,126,73,24,141,198,112,112,66,56,39,140,18,8,56,250,241,211,234,42,85,46,7,17,40,30,187,32,206,123,103,130,79,124,231,156,245,170,121,140,128,86,71,255,0,129,51,227,25,234,50,126,
+135,215,25,226,159,189,71,71,31,152,192,235,215,130,123,250,0,122,208,5,207,54,64,62,236,96,241,147,229,68,79,83,215,229,35,175,183,80,51,220,25,86,89,250,13,140,112,58,65,23,96,113,252,32,113,142,49,
+207,56,198,43,59,204,25,192,149,129,207,27,91,215,184,202,227,131,233,239,199,20,226,87,159,223,77,238,114,188,116,232,60,196,7,168,25,56,227,145,147,64,26,134,91,131,216,14,227,109,178,183,94,192,131,
+208,245,232,197,113,233,197,55,125,231,80,24,142,127,229,216,40,250,28,161,28,241,193,63,143,53,158,88,112,12,243,49,231,25,242,129,246,31,61,208,207,229,142,61,169,195,32,103,124,135,191,45,111,147,237,
+129,114,196,17,199,24,201,244,226,128,46,121,215,120,28,0,123,255,0,163,41,35,233,132,231,240,3,39,7,30,144,72,247,68,228,17,211,146,214,131,235,193,218,57,31,221,227,61,50,13,48,33,98,65,12,163,3,168,
+139,158,185,228,206,190,192,30,79,208,10,120,137,128,249,124,225,235,177,173,114,20,119,249,174,187,117,198,48,40,2,44,93,30,113,144,120,226,22,94,61,112,7,95,211,222,163,38,117,228,161,61,71,48,204,0,
+253,56,235,158,185,201,252,173,128,221,55,207,156,127,211,145,60,242,112,90,235,211,29,79,7,183,82,23,97,32,101,174,51,220,150,177,207,183,73,155,167,126,128,123,142,128,25,205,52,227,147,20,156,255,0,
+177,112,7,66,114,48,8,60,12,245,245,224,212,126,124,221,162,233,200,200,185,79,92,156,241,142,157,59,227,168,226,180,204,99,24,63,106,57,232,4,150,135,168,238,21,207,127,199,56,246,53,11,192,79,221,138,
+232,228,113,185,162,247,199,43,42,245,235,216,142,157,49,64,20,13,196,203,199,146,115,131,209,174,71,224,7,63,253,126,58,140,84,38,230,227,170,196,64,35,28,205,58,12,231,25,228,12,143,174,63,51,87,218,
+25,129,193,138,112,15,35,47,7,108,1,247,238,0,246,244,224,254,49,152,152,146,10,202,57,3,59,173,243,201,62,151,4,99,183,28,114,125,64,160,10,31,104,186,99,204,99,183,91,169,177,193,206,58,143,76,231,142,
+125,241,151,125,162,231,180,123,176,122,11,187,142,50,59,225,185,199,245,25,25,171,166,32,6,60,198,0,227,172,145,228,17,254,236,252,118,56,24,166,121,42,121,50,158,157,12,241,143,124,115,57,63,150,115,
+219,154,0,133,110,174,84,231,202,110,217,63,108,186,206,7,175,35,63,143,231,79,107,185,57,38,55,83,143,249,250,156,243,147,234,227,191,78,120,63,65,72,99,67,130,103,10,7,76,204,167,243,196,164,96,123,
+103,156,128,122,225,173,26,19,197,202,147,220,44,196,28,250,255,0,172,206,127,42,0,111,246,132,192,129,137,179,206,73,187,152,15,166,223,52,147,211,156,103,241,25,32,251,124,135,25,146,68,39,248,90,229,
+193,255,0,199,228,231,233,158,253,184,164,104,79,252,247,80,59,226,225,212,159,111,245,195,60,123,129,207,32,252,162,171,188,64,2,77,194,175,94,77,219,12,119,228,249,224,227,219,32,231,56,232,5,0,72,215,
+19,54,113,36,141,131,156,253,164,245,245,226,92,158,51,220,228,118,57,168,140,147,100,130,247,4,227,129,246,179,237,219,207,199,108,231,61,71,98,6,99,8,156,110,190,3,185,197,217,36,118,198,62,212,112,
+50,79,94,79,3,183,13,63,102,4,3,123,147,206,8,185,80,73,200,238,110,185,245,245,250,208,3,185,224,153,110,128,56,36,11,178,64,60,246,23,0,247,228,126,189,232,164,219,110,192,237,187,124,241,159,244,149,
+32,245,224,126,248,140,30,252,241,208,115,69,0,124,255,0,230,202,167,4,76,75,122,133,28,115,206,3,169,63,174,49,211,25,167,9,36,245,147,216,146,199,159,124,202,56,231,176,237,198,105,171,36,228,124,237,
+0,60,99,13,14,71,28,231,230,39,147,156,252,222,221,233,124,217,65,0,205,108,0,232,60,200,129,207,94,119,49,32,30,58,15,196,231,128,9,146,71,224,254,240,156,28,237,25,3,175,31,235,179,192,24,207,215,145,
+83,9,136,254,11,147,140,242,49,128,71,61,231,63,158,125,59,85,69,152,156,183,159,111,147,128,127,210,96,228,115,145,143,196,113,192,247,228,83,195,110,7,18,64,71,168,186,132,227,57,28,128,9,245,31,135,
+110,192,19,52,242,100,15,46,236,119,63,60,88,239,198,62,208,51,199,175,248,82,11,130,15,43,112,49,253,230,183,247,227,254,62,249,200,236,220,159,175,52,36,108,65,218,241,114,71,34,88,0,234,58,101,71,92,
+247,199,29,79,98,225,19,227,135,143,131,128,69,213,186,250,116,80,164,251,117,252,59,208,3,60,252,156,110,149,121,224,159,32,158,15,168,185,108,117,234,49,79,243,28,99,253,113,231,25,6,17,193,255,0,183,
+165,206,125,7,167,228,165,38,61,10,57,232,1,186,63,136,249,99,111,78,184,246,62,180,229,89,7,116,36,96,159,244,166,35,129,143,249,225,156,99,249,240,125,0,20,76,49,243,43,242,58,21,131,62,223,242,246,
+64,239,200,205,73,231,198,57,242,95,60,242,18,33,239,218,224,146,127,175,114,57,166,6,147,156,164,111,237,246,151,199,233,30,122,243,67,60,131,238,69,24,200,199,55,19,227,175,251,48,31,175,7,235,140,224,
+128,56,93,199,202,249,115,119,201,10,153,237,216,204,192,115,207,221,30,134,156,110,163,236,179,15,82,74,131,208,142,196,123,140,110,231,166,105,170,110,78,1,72,243,199,250,183,156,142,114,63,231,158,
+115,211,156,99,241,193,169,83,237,156,227,203,0,3,130,76,231,177,235,149,237,193,60,131,244,52,0,193,116,164,112,175,129,158,174,199,242,11,199,79,199,160,29,170,204,119,17,17,247,95,215,254,91,176,200,
+207,64,55,31,199,24,206,50,79,34,133,75,204,103,205,182,95,194,110,49,201,228,47,56,233,238,122,99,154,51,125,156,11,184,71,176,251,64,4,100,246,193,201,250,128,13,0,89,73,212,156,44,78,222,135,109,209,
+232,73,224,5,193,60,140,122,142,185,239,105,38,57,0,65,40,244,42,183,171,220,30,129,91,147,140,241,199,38,179,213,239,8,199,219,33,4,115,247,101,110,122,16,126,82,57,198,49,250,158,113,42,173,243,48,63,
+108,129,187,241,29,199,184,199,49,158,220,112,14,51,214,128,47,27,150,206,12,23,0,131,193,205,231,78,253,83,25,233,192,197,74,179,28,99,23,11,156,99,63,110,201,62,223,46,15,57,228,100,244,28,246,165,228,
+222,30,126,218,156,116,196,119,3,131,207,31,187,201,233,143,167,60,115,137,4,87,253,175,148,142,122,173,218,131,215,175,238,57,57,250,251,28,102,128,47,173,196,128,252,179,92,167,124,1,121,129,211,175,
+201,131,215,140,245,57,197,88,19,92,145,133,189,186,0,227,143,46,119,24,198,51,131,22,122,123,158,160,96,129,138,203,16,95,112,90,238,35,238,5,209,61,135,123,126,56,247,7,158,184,53,32,134,237,6,13,208,
+7,177,2,225,129,231,174,62,202,121,199,98,78,59,103,25,160,13,33,53,225,32,13,66,239,28,140,139,89,219,60,113,221,122,127,62,216,169,68,183,100,12,220,222,184,25,25,251,12,192,159,166,79,114,121,228,231,
+35,158,195,49,86,113,195,221,18,61,68,119,3,156,117,199,217,193,62,185,0,118,233,154,148,71,48,31,45,196,158,220,74,1,252,12,36,227,223,25,199,67,138,0,210,6,249,129,219,45,233,24,201,221,107,140,126,
+12,217,252,253,248,169,67,94,143,189,113,50,228,113,152,98,207,30,198,65,238,7,214,179,35,142,114,7,239,151,25,228,150,148,2,15,28,129,7,215,169,192,3,173,74,32,155,36,9,33,3,143,188,247,92,145,254,237,
+185,237,199,24,250,129,154,0,209,18,92,130,1,187,185,57,227,152,161,198,62,158,97,29,62,156,115,158,148,224,210,146,79,218,39,4,116,196,17,156,250,103,13,192,237,193,198,59,30,212,22,57,84,13,207,24,7,
+209,174,143,228,13,190,113,223,130,1,207,230,240,24,127,203,192,224,113,145,63,94,167,170,114,115,215,32,122,113,205,0,104,1,62,127,227,225,241,215,63,101,77,220,116,35,47,142,249,192,56,239,140,212,171,
+13,195,227,247,215,4,116,193,134,60,99,233,246,140,116,39,175,215,165,102,147,38,48,100,143,24,244,96,79,94,72,33,125,51,223,215,25,226,156,140,202,113,231,70,163,25,231,31,94,165,51,142,255,0,92,14,184,
+20,1,170,45,230,238,211,50,144,127,229,130,19,158,7,37,110,8,193,193,253,112,58,26,148,91,30,55,36,188,247,49,119,244,57,147,3,249,113,236,43,48,75,142,179,199,207,31,54,208,123,112,51,248,99,211,28,96,
+3,79,86,4,253,248,15,127,153,129,232,71,166,63,14,157,59,231,20,1,170,45,80,224,149,100,57,228,44,103,161,227,160,98,56,244,36,159,97,212,75,246,88,0,4,201,32,233,199,146,167,39,183,4,18,127,30,64,227,
+166,107,39,123,46,0,107,115,130,70,1,39,147,142,64,86,24,231,140,245,206,58,230,172,11,150,81,131,176,128,58,40,82,9,201,60,147,40,228,224,119,252,61,64,47,24,237,198,63,123,49,57,232,44,217,187,156,242,
+34,199,126,221,189,59,185,33,182,57,62,109,199,190,96,145,121,239,199,147,143,166,58,118,233,84,210,233,200,192,45,215,168,88,185,206,7,119,199,111,110,188,147,83,11,169,0,192,201,198,50,24,66,15,28,140,
+98,65,158,132,224,18,125,56,160,11,203,21,191,25,150,86,246,104,121,24,35,160,218,51,219,39,60,246,235,86,209,44,148,115,60,195,63,220,132,17,219,140,17,199,78,63,175,90,201,91,233,129,251,128,140,16,
+9,43,208,247,226,83,235,156,103,168,56,53,50,223,76,48,68,7,158,191,40,25,228,113,128,204,61,243,140,156,113,201,24,0,211,3,79,206,68,147,30,188,27,108,245,232,126,232,30,167,30,196,158,185,169,2,216,
+30,75,205,158,57,54,209,14,158,165,148,227,223,7,156,15,90,166,183,178,145,254,171,177,24,11,33,108,140,113,194,96,224,241,211,4,142,51,130,105,226,246,227,248,98,99,200,234,146,0,121,3,57,242,137,199,
+114,125,57,205,0,91,242,180,208,56,145,193,255,0,174,80,145,156,158,197,134,62,131,233,215,154,120,93,57,72,196,164,16,59,164,0,14,221,230,28,156,228,253,71,168,21,88,94,92,247,136,12,14,153,148,96,247,
+200,48,122,246,206,126,189,154,111,238,50,1,206,14,7,44,199,233,133,54,167,0,30,59,241,248,208,5,252,89,255,0,13,193,85,246,88,7,242,159,61,125,51,223,154,120,75,81,192,185,151,156,103,6,5,199,208,153,
+199,65,146,125,61,241,138,160,111,36,61,85,49,142,75,231,29,14,62,237,177,61,79,65,211,39,191,5,194,238,64,8,49,218,251,22,134,67,144,115,201,255,0,68,7,144,7,169,201,199,65,64,23,192,182,224,139,137,
+207,169,253,203,129,207,241,1,54,61,15,67,244,233,73,229,90,55,38,230,127,251,241,23,0,142,216,144,158,185,224,158,184,206,57,197,69,186,153,242,161,45,70,58,226,7,199,126,131,236,248,199,169,61,115,156,
+10,144,92,206,15,72,7,127,150,220,30,122,127,20,36,227,166,125,243,198,58,128,78,96,128,17,182,234,114,15,79,221,67,239,199,223,98,58,99,175,95,74,95,38,33,200,184,155,35,214,24,177,245,206,252,244,231,
+161,39,161,30,177,125,166,224,13,187,160,25,206,7,151,18,227,234,191,101,198,112,57,60,231,140,147,71,218,37,234,76,39,24,251,169,31,25,227,169,181,199,63,92,125,8,197,0,56,136,215,165,205,193,62,171,
+26,244,56,199,1,184,63,82,49,142,59,212,130,94,63,227,230,241,178,59,197,129,144,64,24,36,158,184,29,15,225,198,42,31,58,70,28,136,199,166,26,17,158,159,194,32,30,188,14,51,145,192,226,158,102,231,130,
+220,118,3,120,24,207,65,228,182,49,159,160,52,1,33,144,183,11,37,227,123,121,99,3,223,60,241,219,0,103,223,173,24,147,39,112,185,35,190,96,7,191,98,20,99,131,215,156,227,223,33,22,96,220,98,118,56,206,
+86,23,193,29,78,2,219,167,28,227,174,71,7,32,28,83,252,242,191,243,240,0,237,229,207,158,115,140,98,38,35,212,14,15,29,59,144,4,1,70,50,36,192,28,230,3,140,16,51,206,1,39,142,7,110,71,106,176,19,32,21,
+14,125,150,221,151,24,236,121,30,190,135,31,165,68,46,228,229,79,219,84,129,145,133,149,127,32,208,177,247,233,207,160,6,165,23,39,7,39,80,57,206,126,73,24,126,63,185,199,94,249,206,57,238,40,1,121,31,
+192,221,1,56,89,1,29,64,60,50,246,228,254,35,214,143,53,151,159,42,102,35,60,6,152,14,56,39,134,4,3,245,24,3,24,237,76,55,160,241,139,227,192,198,99,155,24,235,146,69,184,57,244,201,61,241,223,40,111,
+144,130,25,46,242,70,51,228,220,55,92,245,204,120,3,191,76,131,212,229,137,32,10,211,201,222,25,84,250,121,151,67,0,119,255,0,89,248,243,199,108,250,162,207,51,30,18,80,87,32,147,53,215,39,141,195,239,
+30,135,39,249,158,180,198,190,135,210,224,227,159,154,222,228,103,175,126,1,35,211,4,254,148,195,123,8,229,149,242,79,123,107,150,57,227,146,2,48,228,250,231,158,253,13,0,88,50,220,146,48,28,119,4,207,
+115,187,223,25,97,235,215,63,137,233,81,150,185,39,4,203,147,158,143,113,193,227,213,201,233,207,76,254,85,9,190,132,237,253,220,124,12,29,214,146,131,206,121,249,237,201,7,175,66,6,59,245,165,91,193,
+212,44,0,118,45,1,201,193,227,135,132,241,215,177,62,184,201,200,4,225,238,198,112,215,88,193,233,52,195,39,167,25,43,142,190,252,14,105,76,151,217,225,174,87,3,188,236,120,231,169,227,182,122,245,237,
+205,85,55,132,147,150,181,193,255,0,166,72,79,79,67,106,114,61,57,227,185,233,77,251,74,158,3,68,9,254,236,80,131,142,195,2,1,142,252,158,57,246,57,0,123,75,118,167,230,150,227,158,230,118,227,161,233,
+176,245,235,140,142,122,243,81,137,174,9,63,191,159,191,252,183,61,61,9,5,79,208,17,144,49,218,154,242,231,146,203,219,144,177,14,167,208,166,59,250,14,253,56,194,9,177,212,43,122,16,246,248,199,161,202,
+130,50,51,193,94,51,207,161,0,119,153,112,221,103,159,219,18,169,234,56,25,108,30,51,239,207,169,166,236,157,185,19,76,91,253,232,79,28,250,171,19,211,160,4,117,224,154,66,202,216,62,88,235,201,243,32,
+29,207,97,17,231,254,5,158,48,123,211,64,99,247,98,108,116,27,90,22,250,117,139,39,183,3,168,60,99,6,128,37,242,230,32,22,154,224,96,144,14,248,126,128,96,39,24,193,252,115,199,52,24,50,1,221,114,121,
+28,238,139,32,117,233,232,121,236,64,224,115,197,68,89,129,251,151,0,244,224,68,79,224,2,174,64,232,79,227,192,166,146,253,190,210,188,117,43,23,95,193,129,0,224,240,49,223,154,0,148,219,241,242,139,140,
+113,156,152,65,63,129,67,220,122,30,190,226,162,107,112,62,240,159,140,228,239,128,228,103,218,60,224,143,108,244,61,57,45,222,227,130,38,97,198,3,121,68,224,250,110,144,145,239,142,252,122,138,104,103,
+231,247,23,71,190,87,200,234,126,178,231,7,208,228,112,8,20,0,195,111,18,159,185,115,244,221,16,31,136,16,19,244,195,1,248,140,5,9,30,78,216,166,207,64,76,144,241,147,142,141,18,244,207,61,65,250,210,
+179,204,0,196,55,10,51,143,158,72,241,142,252,9,73,246,244,193,239,192,168,218,118,206,26,50,120,198,11,198,15,56,198,115,158,7,212,119,207,122,0,86,137,70,78,201,193,224,125,235,113,131,223,165,187,12,
+31,246,178,62,128,228,180,2,63,134,229,189,51,44,3,3,158,203,108,49,199,65,142,131,168,239,25,155,56,221,18,40,231,146,203,193,247,218,167,245,4,83,67,182,50,86,53,231,7,5,78,48,15,60,198,7,63,92,117,
+193,60,228,2,76,147,157,201,117,206,122,79,17,250,142,45,193,206,113,129,156,231,211,154,107,5,35,131,114,8,199,38,120,73,247,224,199,207,30,192,112,73,38,155,246,128,50,11,47,81,255,0,45,98,83,158,51,
+158,158,190,254,167,32,83,55,43,54,114,172,122,128,110,173,201,57,237,130,248,29,120,198,48,1,29,58,128,53,192,200,5,38,29,242,101,128,242,58,231,17,147,207,111,110,125,204,108,145,227,230,18,96,156,242,
+209,243,128,57,225,58,119,224,15,64,113,128,39,44,19,56,66,125,10,220,91,100,147,219,150,83,218,162,103,36,127,168,151,3,210,75,86,231,191,33,242,126,191,83,222,128,34,47,106,191,47,239,134,63,219,0,99,
+35,3,112,144,15,67,200,30,152,29,144,189,169,235,44,163,39,238,249,137,207,190,126,209,193,36,250,246,199,0,230,145,188,178,57,138,113,140,253,233,98,198,125,70,24,243,206,50,79,35,169,239,80,238,128,
+12,24,165,60,143,227,94,167,253,214,206,120,236,71,78,104,2,77,150,153,200,150,98,114,48,60,200,136,35,174,120,186,83,199,94,189,59,118,14,88,44,78,73,73,201,234,73,145,91,183,112,47,128,3,166,56,254,
+181,92,155,112,114,182,179,55,3,163,72,71,230,135,61,192,39,167,110,115,74,36,78,130,218,110,248,81,37,218,227,191,56,117,28,113,248,28,116,52,1,103,236,186,127,222,104,230,4,14,210,196,167,235,205,233,
+235,207,78,63,90,83,107,167,145,159,42,108,242,1,103,70,35,29,176,46,185,207,35,36,241,215,60,243,69,157,185,255,0,68,152,140,159,249,109,56,4,99,29,89,177,219,166,115,211,38,163,220,207,156,88,57,231,
+251,243,183,126,15,13,142,8,236,9,35,62,248,0,190,96,177,82,1,182,149,128,30,168,113,244,41,114,79,79,67,158,128,122,20,11,167,255,0,207,187,169,231,32,202,87,7,191,203,246,145,200,199,79,229,200,172,
+253,206,15,252,120,184,35,24,37,110,155,167,124,170,159,229,235,248,198,236,249,5,172,155,61,56,91,224,65,201,3,39,142,59,122,122,156,208,6,155,125,136,0,4,110,49,235,56,238,113,208,204,78,58,115,145,
+211,158,6,105,64,137,134,213,7,131,222,124,12,28,247,59,249,237,232,7,235,144,70,113,155,66,160,116,249,47,88,142,253,135,182,58,158,196,26,105,13,156,45,187,112,62,233,138,239,159,124,182,9,29,72,250,
+28,250,80,6,215,148,128,103,201,200,37,65,31,104,94,51,244,139,60,125,113,245,34,151,8,57,251,57,29,113,182,225,207,110,64,43,24,3,212,231,175,211,57,198,6,109,184,22,238,15,80,118,222,115,239,140,145,
+211,166,125,187,154,79,223,55,30,81,39,29,24,78,167,158,217,216,78,57,245,56,199,126,104,3,100,186,40,44,20,41,255,0,106,121,179,158,59,53,187,227,3,167,175,60,156,26,135,206,32,128,16,185,32,255,0,203,
+195,16,79,211,236,203,158,189,8,206,121,198,122,103,24,103,224,136,100,199,170,180,239,211,31,236,30,78,125,48,7,110,244,209,20,224,242,179,14,189,99,152,142,120,193,11,18,156,96,30,127,30,153,160,13,
+47,49,142,72,133,85,177,195,25,66,144,15,111,154,33,233,255,0,214,235,72,95,160,102,10,127,235,233,71,108,231,136,88,14,184,231,145,211,21,67,100,217,25,105,64,235,183,101,208,31,76,148,97,147,233,253,
+51,149,84,115,159,157,135,28,238,251,80,227,190,112,159,92,246,250,103,128,11,69,253,26,70,228,28,11,180,35,240,255,0,70,31,135,98,113,215,165,69,189,177,255,0,47,3,7,60,93,68,62,152,2,37,200,192,24,231,
+129,249,85,114,136,78,124,210,57,206,75,221,3,211,182,99,228,126,160,254,20,224,136,9,205,192,94,120,195,92,174,220,125,19,25,228,114,122,227,39,24,197,0,74,37,92,31,248,249,60,142,183,145,17,244,32,169,
+61,143,124,113,207,61,88,211,227,25,75,178,51,222,225,79,76,156,140,12,130,7,78,152,199,24,233,74,4,93,174,227,239,247,174,46,57,199,78,137,145,140,12,130,113,211,177,197,59,116,103,159,181,193,145,158,
+178,204,249,39,234,7,30,196,131,156,115,197,0,67,246,130,72,194,93,227,36,127,199,215,108,241,238,51,233,131,248,117,41,230,242,91,203,190,201,224,133,185,28,241,156,31,144,147,156,99,175,183,173,72,118,
+30,69,228,61,129,7,126,115,140,156,15,49,70,7,61,251,115,131,197,43,52,63,197,125,8,238,50,189,79,61,127,210,6,114,125,126,189,134,64,34,18,3,255,0,44,111,249,35,239,76,78,7,3,31,234,242,125,120,61,233,
+11,71,159,153,110,193,29,127,122,217,7,56,61,20,28,113,211,30,189,121,204,226,104,84,2,117,43,96,61,51,134,3,36,158,5,200,62,253,48,121,60,14,73,230,90,19,147,168,194,121,231,230,99,199,3,130,46,251,231,
+32,103,169,29,232,2,48,246,227,0,45,225,110,127,229,172,157,251,127,170,29,122,224,228,30,125,42,81,228,103,238,222,125,12,146,49,237,219,96,206,126,159,78,248,99,75,110,63,229,253,48,48,64,85,220,120,
+206,51,155,177,248,17,199,36,112,115,152,196,208,130,64,188,98,59,17,17,61,187,98,236,231,56,228,147,219,242,0,184,130,19,147,229,221,17,142,141,184,140,15,251,96,115,212,100,116,246,233,153,66,64,195,
+63,101,156,228,146,72,4,96,231,161,2,207,128,123,115,142,156,30,106,154,204,135,35,237,114,19,254,236,131,158,122,129,114,65,29,14,114,125,105,249,7,63,233,45,140,245,219,46,62,185,251,79,7,129,238,56,
+233,197,0,92,91,107,102,193,251,61,194,103,174,84,241,158,227,22,99,63,137,3,191,61,42,117,182,181,61,33,156,129,207,42,199,39,161,200,22,131,30,135,223,167,90,205,219,27,99,117,211,96,28,103,203,157,
+179,201,231,43,112,217,228,144,63,94,188,166,219,125,192,253,182,67,140,158,82,228,144,79,110,103,227,62,185,61,59,10,0,212,251,61,190,112,176,200,203,207,6,36,3,167,161,183,28,14,227,32,28,115,197,72,
+182,176,28,159,179,129,129,156,4,143,245,27,23,63,94,15,78,59,86,94,96,4,237,187,147,176,255,0,83,116,115,216,114,37,36,99,174,57,3,215,174,29,186,22,255,0,151,169,152,99,159,221,221,30,120,3,3,118,113,
+223,61,7,83,158,224,26,98,222,216,112,109,243,180,119,88,79,61,122,24,152,142,254,164,250,211,132,54,255,0,243,230,135,167,222,138,18,121,237,254,168,115,147,217,126,189,43,49,100,133,114,4,196,96,127,
+207,27,181,61,189,100,3,63,207,167,24,57,118,248,219,254,94,72,60,117,134,235,223,28,137,187,246,0,28,245,160,13,47,42,215,156,89,219,175,187,194,153,199,177,242,185,35,223,29,253,105,162,43,126,190,77,
+168,0,244,242,128,199,175,221,78,49,219,156,231,173,81,86,11,210,242,33,254,244,55,124,127,228,96,115,208,250,118,207,112,255,0,49,200,39,237,214,196,142,159,184,186,56,30,132,249,132,28,113,237,198,122,
+113,64,23,68,86,195,144,182,170,51,208,43,118,245,10,132,243,208,146,9,161,132,43,130,173,110,0,224,229,174,20,246,232,54,40,252,135,234,107,61,166,113,199,219,45,219,142,162,27,193,248,100,18,71,126,
+132,19,216,82,137,101,57,253,228,109,219,112,130,248,238,235,159,155,36,158,189,127,174,104,2,233,146,51,193,123,96,59,16,243,19,199,39,248,49,147,158,48,78,58,100,241,144,75,0,56,51,91,140,127,181,54,
+63,244,81,63,65,142,157,189,32,19,77,215,17,49,24,25,49,223,122,0,72,206,236,118,224,12,227,60,83,188,217,9,36,197,8,28,100,121,119,132,227,212,102,62,57,201,4,103,0,143,122,0,178,110,32,239,52,57,61,
+132,178,140,14,195,253,64,254,189,58,210,125,165,113,133,154,17,212,143,223,92,55,79,117,183,0,14,189,79,83,249,215,51,12,133,107,120,136,24,32,24,238,27,251,222,202,125,187,253,14,121,144,72,132,103,
+236,208,224,28,224,36,202,72,231,183,205,156,103,3,3,235,233,64,19,139,150,192,255,0,74,81,158,203,53,198,7,112,126,104,113,245,244,235,64,185,144,28,11,214,60,244,91,153,178,121,7,145,181,115,233,198,
+15,29,142,13,68,172,131,165,172,124,3,209,37,25,244,249,138,12,254,31,254,167,52,208,227,13,104,15,247,190,105,87,29,177,242,198,223,92,115,219,60,26,0,180,183,115,145,205,212,192,240,6,110,110,6,125,
+127,128,231,220,131,140,122,26,119,218,167,201,255,0,74,156,240,71,201,115,116,61,58,145,30,49,199,124,103,208,154,162,103,179,92,19,100,229,135,241,9,95,140,251,178,1,207,78,249,231,56,163,237,54,96,
+100,218,74,61,252,236,143,204,161,61,187,113,235,158,64,0,186,179,200,126,245,196,229,79,118,185,119,57,199,92,48,192,250,227,245,230,159,231,115,143,180,203,237,135,32,231,183,62,95,60,227,161,207,61,
+56,205,103,153,236,78,127,209,241,199,83,39,92,244,57,48,114,125,71,229,192,225,190,117,129,206,109,134,125,68,192,140,140,99,0,194,185,237,200,29,187,138,0,215,19,62,48,46,38,24,227,253,126,58,30,120,
+218,15,63,203,167,122,60,217,65,3,207,185,39,211,206,45,215,253,209,207,78,165,71,92,86,95,153,99,147,136,228,25,228,133,117,60,253,60,178,195,131,215,0,103,175,28,83,199,217,143,3,204,25,255,0,166,165,
+115,129,223,22,237,249,142,127,26,0,209,243,100,200,204,183,89,29,6,78,59,116,202,30,6,112,127,144,20,141,40,227,230,188,207,24,37,192,206,122,117,82,8,231,220,227,143,99,79,16,2,14,233,143,160,51,200,
+84,119,251,162,215,190,125,137,29,77,46,248,185,249,156,1,199,51,144,15,253,245,110,163,159,79,212,243,64,23,22,66,199,59,239,15,108,7,78,164,122,152,27,185,254,188,98,145,201,228,110,188,233,219,203,
+36,1,156,28,139,112,56,245,227,183,181,64,165,79,79,48,231,60,9,83,212,115,205,185,207,226,112,122,99,174,101,18,123,202,8,206,63,121,17,25,227,130,124,140,100,254,120,253,64,27,185,242,62,123,176,7,168,
+131,158,156,252,209,143,97,248,158,61,100,83,39,241,77,112,0,61,2,89,96,115,200,63,186,60,250,122,122,243,79,220,122,169,152,146,114,65,49,243,232,7,250,40,252,189,59,243,82,172,146,131,214,112,64,235,
+190,44,126,36,196,58,99,215,184,61,168,1,128,191,247,167,207,174,235,80,120,60,140,144,160,231,131,144,58,142,156,83,240,237,128,94,97,233,151,181,231,241,39,63,65,131,239,154,148,79,62,8,18,206,48,48,
+114,208,16,125,137,104,248,235,207,66,59,156,212,139,115,114,8,5,164,60,12,238,120,114,57,199,56,131,63,158,121,207,39,131,64,17,8,24,224,101,177,254,212,150,205,156,122,144,184,236,113,245,192,233,138,
+127,146,87,171,168,3,4,130,240,243,207,160,140,244,231,191,78,164,231,137,5,213,209,192,86,193,244,38,22,56,60,140,229,23,223,208,250,224,83,197,197,246,64,243,23,211,1,99,28,241,211,230,247,228,251,26,
+0,128,66,73,4,75,16,227,60,155,114,14,56,35,30,95,95,196,156,158,121,234,255,0,42,69,4,153,96,32,255,0,120,70,65,250,15,40,245,250,12,122,158,180,247,150,247,161,153,135,174,4,103,242,32,228,31,195,30,
+253,170,63,50,232,253,233,220,159,82,173,239,211,107,142,59,246,246,233,64,13,1,129,249,165,135,147,200,97,31,4,251,27,114,7,92,113,130,59,117,225,248,60,31,50,223,167,101,141,176,71,3,59,109,179,198,
+62,184,231,166,41,203,246,182,25,73,100,60,224,229,36,32,127,228,92,103,235,208,126,146,121,87,224,31,222,96,28,19,152,155,56,247,253,248,56,245,233,248,115,144,10,172,72,63,235,33,57,29,225,99,199,60,
+124,182,96,243,142,157,187,122,211,55,62,62,250,227,182,216,100,228,15,97,104,73,252,71,177,236,42,255,0,145,113,130,76,236,61,71,150,195,7,241,184,56,61,134,14,210,15,227,76,49,78,6,12,129,128,201,193,
+94,8,30,237,56,199,229,233,223,130,1,69,158,65,208,130,56,255,0,151,89,125,61,63,179,91,166,123,123,227,158,173,55,44,163,7,102,58,227,236,115,3,156,1,215,251,57,121,60,142,189,14,72,198,72,191,178,98,
+184,221,30,62,98,14,23,128,57,60,153,59,113,158,127,157,55,203,148,3,185,75,96,228,149,104,193,61,61,38,60,246,29,126,157,69,0,81,55,140,70,1,221,158,152,182,147,31,64,13,138,158,163,0,115,236,123,149,
+23,115,41,255,0,86,196,113,143,244,105,176,125,56,22,231,159,167,56,237,158,182,14,7,6,214,86,62,190,124,74,7,167,13,159,196,253,115,193,166,12,30,62,193,59,30,51,254,145,1,24,238,113,207,67,236,40,1,
+159,218,18,129,202,72,1,236,45,111,1,255,0,210,112,64,207,166,50,62,180,223,183,74,127,231,167,254,3,222,174,70,51,222,30,160,224,228,145,232,57,24,169,76,104,120,251,4,128,142,121,150,14,252,231,37,27,
+240,60,14,61,168,242,143,36,88,168,247,51,89,147,207,95,249,98,112,122,123,228,240,104,1,130,238,110,153,147,168,227,203,187,11,223,158,128,158,221,112,51,249,212,171,115,32,28,130,14,115,159,46,232,28,
+241,156,252,202,115,239,232,125,49,77,49,168,60,89,22,35,176,158,217,121,246,34,17,159,83,140,28,244,52,153,199,75,7,35,174,60,251,108,103,63,245,207,39,175,175,175,60,156,128,60,222,72,196,97,136,198,
+57,102,185,30,216,0,147,143,174,123,242,125,28,46,231,206,124,242,160,241,195,207,158,120,28,151,198,79,212,14,231,7,21,22,92,228,27,39,246,34,230,216,30,249,251,177,62,123,96,131,223,61,71,8,86,96,15,
+250,44,234,7,31,235,226,63,129,194,0,0,247,35,28,80,5,175,181,221,48,218,46,152,224,113,131,49,32,115,216,191,56,233,235,245,200,166,137,239,122,253,166,92,103,25,43,59,117,250,30,51,142,73,7,156,103,
+128,51,84,137,142,64,130,96,64,35,253,114,246,57,232,163,56,57,60,247,227,62,207,65,121,130,81,29,51,192,205,193,201,235,216,5,245,200,29,57,160,11,98,234,235,149,251,116,128,251,172,159,142,55,3,130,
+56,29,134,112,15,122,70,154,118,36,127,104,74,73,245,47,142,120,60,18,79,185,224,125,120,170,204,151,224,114,216,29,179,41,206,65,39,143,159,241,239,207,224,105,155,175,212,125,224,65,35,63,189,112,125,
+243,251,209,158,167,160,30,135,158,104,2,222,235,161,131,246,249,95,131,208,177,24,62,216,201,207,248,231,24,20,187,238,136,25,189,147,140,12,8,223,62,128,112,188,253,121,235,207,90,169,230,223,14,188,
+14,192,77,32,207,62,243,127,76,14,245,11,79,117,208,8,112,58,238,153,207,185,251,215,13,147,158,184,3,29,168,2,235,79,114,132,1,117,115,238,48,71,184,36,108,39,28,114,51,208,117,207,84,251,69,209,249,
+150,234,224,118,57,71,126,163,56,226,62,14,125,9,31,133,103,25,46,27,56,54,106,72,234,205,33,31,76,36,202,73,25,237,249,226,140,220,231,5,172,152,147,142,151,13,140,241,211,237,42,14,113,142,78,59,138,
+0,191,246,155,188,243,115,118,222,160,198,234,72,61,121,219,147,158,49,131,146,105,134,123,163,214,91,178,8,227,106,156,228,159,77,156,30,123,250,14,249,170,217,147,3,113,177,7,29,12,51,3,145,216,159,
+183,113,215,166,127,14,192,7,143,191,104,57,207,202,147,156,114,1,233,122,58,114,61,185,235,64,18,153,91,0,52,215,221,57,60,39,81,200,229,71,67,235,200,233,158,57,99,18,217,195,223,55,184,100,7,36,158,
+225,9,62,184,28,228,140,212,103,110,6,94,220,255,0,187,28,153,193,199,7,23,103,211,215,62,180,138,176,14,113,30,49,201,242,102,199,174,50,39,57,30,252,112,51,154,0,113,103,206,55,106,7,191,250,192,114,
+127,21,237,211,142,48,115,140,154,97,117,28,20,191,98,9,234,203,239,232,163,24,206,71,39,215,61,50,242,177,242,51,24,28,231,16,201,156,103,29,76,224,231,158,113,197,33,88,64,229,200,7,176,87,199,61,191,
+215,28,126,157,186,80,3,48,135,150,143,80,61,49,137,221,125,248,218,24,112,125,71,168,206,8,203,63,119,158,127,180,0,231,43,246,153,65,61,127,216,61,249,24,29,133,59,22,185,229,156,231,39,129,32,234,73,
+228,153,142,79,94,59,142,113,220,166,203,17,156,153,186,115,133,110,157,59,202,70,79,4,251,242,0,29,0,35,96,135,36,54,168,160,250,92,75,211,146,114,76,67,57,61,250,246,57,21,19,121,40,65,13,171,14,216,
+23,45,255,0,198,24,250,112,79,215,53,51,71,167,5,57,73,201,236,74,168,224,103,254,155,14,135,30,253,207,173,64,87,79,28,5,156,145,252,62,118,15,108,30,38,60,123,30,63,16,69,0,64,222,73,57,18,106,224,117,
+230,102,24,25,207,4,64,6,126,188,240,40,202,116,89,181,95,167,156,224,246,233,136,128,28,123,113,216,158,13,35,125,132,127,12,188,127,211,203,46,9,231,156,220,47,211,61,243,145,193,166,131,166,12,100,
+40,233,157,215,49,146,79,28,12,220,140,147,236,221,123,147,197,0,6,65,156,121,218,167,92,243,36,231,29,120,56,135,177,30,185,233,248,33,145,79,38,227,80,24,29,228,184,25,237,208,64,79,24,236,56,239,215,
+145,155,79,25,3,201,0,127,126,226,5,99,144,51,140,222,12,99,190,78,123,245,36,213,87,125,52,103,59,51,207,221,184,128,123,140,1,124,127,92,158,221,56,0,19,180,216,228,92,93,116,234,211,92,227,175,25,2,
+215,130,79,95,78,158,148,85,67,38,155,252,36,1,192,0,60,46,7,28,146,5,232,39,60,140,231,215,175,25,40,3,199,252,153,72,255,0,87,63,78,155,151,158,252,230,127,203,60,246,192,233,74,45,70,65,104,238,51,
+199,221,117,28,247,28,200,115,254,29,251,138,166,214,220,127,20,160,231,130,103,144,146,123,255,0,203,70,253,115,206,15,39,52,191,102,76,242,215,44,49,192,12,228,96,145,199,32,253,7,0,254,28,80,5,179,
+26,169,251,151,126,196,201,25,235,219,39,169,60,125,58,83,74,175,77,179,100,142,242,197,220,231,4,52,108,72,252,72,198,78,14,42,184,134,53,198,60,241,245,112,184,245,60,31,255,0,95,165,59,201,140,158,
+75,228,241,243,57,39,219,57,83,140,241,223,211,208,80,4,133,72,4,226,80,61,166,136,16,113,215,30,82,159,108,96,122,100,211,118,171,118,187,250,137,161,62,185,24,216,6,61,143,80,6,122,138,105,133,65,225,
+194,156,30,170,50,9,28,127,11,103,30,128,116,207,56,228,74,144,169,7,253,33,114,123,24,162,233,131,221,173,200,227,175,183,60,156,226,128,27,229,161,227,23,88,199,57,242,219,166,51,141,177,243,211,32,
+117,231,28,103,20,190,84,57,228,93,243,143,225,227,208,116,140,1,249,142,191,81,78,41,2,253,233,1,110,197,98,182,199,191,63,103,0,246,200,199,94,152,167,41,143,254,122,18,0,200,34,218,208,250,231,33,173,
+123,115,192,206,58,227,52,0,221,168,188,21,188,32,113,156,129,252,193,3,211,24,36,116,62,210,7,82,188,11,252,241,214,225,19,142,189,0,201,250,147,200,60,123,75,152,8,25,147,0,243,205,157,150,58,231,131,
+246,38,207,182,79,32,83,191,118,70,86,84,244,199,216,237,1,57,193,28,13,59,158,228,231,158,244,1,31,218,24,14,26,244,118,249,174,240,61,199,14,123,123,98,163,50,150,39,38,224,14,73,38,232,231,57,28,240,
+216,62,223,40,231,36,226,172,20,83,141,166,2,127,186,214,145,14,70,127,187,97,143,76,17,72,3,12,1,228,30,128,126,230,60,242,127,235,207,28,15,124,251,14,104,2,16,216,235,37,201,231,39,108,229,142,58,14,
+68,131,175,161,233,193,245,21,48,148,99,1,239,20,96,255,0,203,121,79,82,123,6,3,31,134,57,199,214,85,89,64,36,8,14,63,233,132,91,187,14,49,104,8,245,224,158,255,0,131,195,94,18,0,142,18,1,233,228,47,28,
+244,56,178,35,39,156,115,235,211,184,5,117,149,135,73,46,143,253,188,184,207,35,216,227,156,118,57,63,142,101,18,200,220,9,174,64,62,183,142,164,19,215,172,88,7,31,159,24,57,192,169,67,93,129,196,10,125,
+132,81,129,207,92,145,104,9,200,169,4,151,189,5,161,227,214,49,183,159,127,179,231,7,252,1,226,128,32,6,232,99,23,115,168,231,131,123,23,3,232,200,79,211,3,156,143,173,72,13,211,16,13,212,167,29,154,238,
+62,112,56,39,22,205,199,124,227,229,253,76,160,223,100,230,219,3,212,162,0,8,247,16,3,140,245,239,233,156,26,144,53,239,24,129,72,61,139,96,119,233,132,65,145,201,236,120,7,210,128,35,242,229,224,180,
+204,64,7,56,186,220,79,3,24,198,159,206,7,212,12,115,158,42,96,178,28,1,51,228,96,113,58,241,199,161,211,185,252,123,250,26,122,181,255,0,252,251,68,113,216,200,171,158,153,251,210,1,211,167,242,39,164,
+235,53,234,253,232,34,3,28,226,123,97,143,196,204,0,199,242,224,156,230,128,24,169,48,198,233,28,3,234,246,196,250,240,90,199,249,14,158,184,21,101,99,144,129,153,6,0,254,39,183,81,207,127,150,192,246,
+198,115,143,199,154,111,159,49,254,5,7,218,123,19,207,211,237,35,142,253,186,82,121,210,224,228,33,233,200,123,28,246,231,63,109,76,254,0,103,146,69,0,73,228,57,198,36,67,223,2,104,206,113,238,44,215,
+242,62,255,0,132,169,4,185,234,15,168,223,27,12,28,247,48,47,167,28,251,84,43,33,234,210,70,152,32,224,201,97,239,212,157,72,30,135,142,56,207,110,210,9,226,60,25,98,63,83,105,245,228,174,172,7,24,250,
+158,194,128,39,17,56,198,118,253,6,195,192,224,231,129,199,30,132,28,250,84,225,182,224,178,33,61,62,228,103,143,92,100,31,212,129,212,14,181,85,101,181,254,43,155,100,62,132,194,71,167,4,107,25,228,245,
+224,156,125,42,81,61,162,255,0,203,253,183,61,62,104,49,128,59,31,237,129,142,59,224,246,239,64,23,3,168,198,213,28,242,120,136,113,128,58,110,108,142,156,31,212,212,235,54,8,249,176,58,252,170,141,145,
+192,193,6,225,7,79,207,159,108,82,23,86,227,165,221,187,3,198,79,217,241,199,113,255,0,19,128,79,227,215,130,115,214,156,47,45,251,92,91,228,247,221,110,190,248,194,234,109,215,156,140,100,99,138,0,210,
+89,50,14,103,4,19,198,96,64,6,61,74,220,147,253,0,56,207,28,56,50,228,230,227,103,169,8,227,145,215,132,155,39,215,143,254,189,101,155,155,124,3,246,136,114,79,80,83,175,254,7,99,177,57,3,168,235,222,
+149,103,139,35,253,34,216,3,208,179,15,94,7,23,140,114,63,92,243,200,160,13,108,144,70,219,215,96,79,240,165,208,239,158,190,113,25,200,63,78,122,99,153,209,164,224,139,169,24,100,240,96,185,97,237,144,
+37,57,239,219,168,62,181,146,183,49,227,6,123,79,98,38,113,223,158,69,201,28,118,252,199,188,226,120,79,252,182,180,36,246,51,220,3,223,184,124,231,232,127,2,113,64,26,190,97,56,6,237,65,228,28,193,116,
+190,189,78,227,223,177,228,224,245,34,165,70,46,72,91,200,134,127,217,189,39,241,35,167,60,103,57,207,110,107,23,124,45,210,75,112,79,56,55,83,168,62,184,221,156,131,207,27,115,234,71,21,48,33,112,20,
+217,158,58,11,185,58,115,211,49,227,140,247,237,207,92,208,6,200,141,142,51,121,27,99,176,55,227,61,122,227,191,29,48,51,248,154,121,141,134,7,218,7,191,58,129,207,25,255,0,158,67,3,175,92,103,32,96,154,
+198,92,150,25,72,1,25,228,93,201,207,78,129,99,198,122,3,207,36,28,98,172,8,227,63,121,109,135,108,155,151,245,35,167,148,127,250,252,80,6,152,137,121,205,194,47,29,197,240,239,142,190,94,254,228,96,113,
+207,28,115,74,35,81,210,230,60,176,198,4,154,146,250,1,255,0,44,247,99,241,227,211,144,78,122,67,24,7,247,144,168,199,36,92,74,112,61,194,195,208,122,99,7,165,74,171,8,31,235,33,57,3,57,185,153,120,207,
+82,74,2,120,25,63,47,227,234,1,117,98,221,144,46,128,63,236,203,125,206,63,237,159,166,125,9,245,245,148,64,123,220,122,28,153,239,120,198,71,35,102,113,143,126,157,125,13,85,242,135,1,225,0,245,11,115,
+41,36,140,116,229,78,49,244,206,71,175,50,5,129,187,169,36,156,98,102,237,238,210,114,63,18,15,126,104,2,208,133,78,72,185,67,208,28,77,118,188,117,57,202,143,175,126,252,100,112,229,183,198,72,153,184,
+60,21,188,186,231,208,144,193,128,198,6,71,7,159,198,171,109,65,208,146,58,127,173,39,159,127,152,140,142,196,113,143,94,77,61,20,145,141,128,244,225,136,98,64,29,126,85,252,79,95,174,114,104,2,207,217,
+229,28,171,57,233,255,0,45,228,231,219,62,89,4,143,126,62,188,101,190,68,189,132,128,246,63,104,45,207,97,143,44,3,250,117,231,208,52,32,108,6,10,15,166,31,142,58,125,241,232,15,111,204,211,132,8,58,128,
+49,193,24,112,61,248,222,113,193,206,113,211,158,115,128,0,162,41,206,114,73,231,28,202,120,244,228,12,14,189,254,189,234,83,111,46,51,187,25,207,2,105,6,73,246,17,250,131,146,51,235,239,85,154,218,60,
+228,47,185,228,12,143,169,32,15,126,122,245,233,71,147,23,25,142,51,211,147,34,254,56,203,31,234,120,20,1,104,91,204,73,198,88,145,208,74,236,71,67,145,186,223,175,92,140,254,125,41,194,209,198,9,73,177,
+131,157,211,96,122,115,152,113,211,29,125,249,233,84,188,187,110,226,32,61,164,67,199,97,247,189,253,61,72,200,226,148,71,102,184,202,161,63,239,130,15,124,96,156,116,233,147,237,158,115,64,26,34,220,
+46,49,27,251,230,88,184,193,31,222,182,198,50,113,215,29,62,149,40,138,76,140,64,204,8,206,76,214,103,191,189,185,61,122,31,233,154,204,197,182,48,177,71,207,63,192,122,227,253,174,127,15,175,209,195,
+236,131,33,173,224,115,211,144,7,243,224,251,123,30,135,147,64,26,70,22,199,48,227,28,228,203,102,115,220,228,27,49,143,168,233,211,3,165,32,133,15,13,10,28,14,155,173,73,206,71,247,109,70,121,231,215,
+142,65,6,179,72,211,199,91,75,102,35,147,196,96,250,241,251,213,30,156,99,32,246,244,64,218,119,252,250,68,79,25,62,100,0,142,156,225,165,0,158,156,242,123,3,64,26,162,56,1,5,161,108,30,225,109,128,233,
+211,63,99,61,126,190,252,116,51,1,104,63,229,153,7,3,24,54,237,142,79,253,67,115,158,120,37,143,3,169,197,98,9,172,0,218,45,144,147,158,15,217,91,128,79,64,24,244,29,78,78,122,210,249,182,96,113,4,75,
+142,205,12,13,142,188,255,0,172,228,122,147,143,160,235,64,26,205,29,147,96,152,100,102,39,140,121,29,65,3,167,216,23,175,110,15,60,3,198,8,98,178,28,125,146,67,201,199,250,133,35,3,158,77,142,73,239,
+208,145,145,207,60,100,121,182,68,130,22,48,57,228,90,198,73,28,228,241,55,94,253,115,250,209,186,208,231,17,111,235,214,194,35,207,79,249,236,216,200,56,36,15,94,57,228,3,91,101,186,244,128,141,195,248,
+154,46,49,235,186,195,145,219,229,60,126,28,163,125,156,12,52,41,147,145,192,66,72,246,97,102,49,232,122,228,242,71,97,152,175,108,70,12,42,167,183,252,75,226,115,142,72,201,220,15,83,235,143,79,112,173,
+171,112,241,15,109,218,127,167,124,169,199,76,119,231,235,154,0,182,97,181,57,204,61,112,65,2,67,250,173,170,228,113,219,240,61,114,195,5,136,56,48,113,211,63,233,89,62,217,251,62,0,252,115,233,207,21,
+87,22,64,115,18,2,56,226,196,122,140,117,117,36,123,28,99,167,181,32,22,67,161,140,250,226,197,142,50,121,24,243,14,78,122,250,147,214,128,44,181,189,143,4,91,146,15,25,243,110,178,51,207,7,201,95,215,
+24,57,28,142,42,63,178,218,17,196,12,15,64,198,226,227,129,223,131,23,61,185,254,102,163,223,102,65,201,140,158,115,187,78,111,203,130,125,250,3,207,3,61,105,190,101,137,56,62,64,25,234,108,46,144,231,
+175,85,10,6,122,147,147,207,24,160,0,219,91,3,242,199,131,156,231,204,186,32,241,223,228,95,113,220,246,29,133,48,219,193,212,69,207,76,11,203,149,39,167,108,40,252,57,169,196,214,24,224,194,112,72,226,
+11,160,8,234,57,4,227,158,184,3,142,160,211,183,89,49,200,142,62,78,14,82,244,147,207,65,130,71,92,127,60,156,80,5,67,18,3,254,169,87,156,159,244,233,178,15,226,227,142,0,28,116,231,142,233,178,60,17,
+177,79,24,255,0,143,198,233,212,242,91,30,189,61,206,112,5,91,255,0,66,57,2,8,193,39,156,165,224,199,39,215,4,96,251,253,105,2,218,242,21,35,192,235,134,190,206,61,200,116,32,156,119,199,62,184,205,0,
+103,178,47,104,78,65,198,22,243,168,35,253,163,207,78,51,200,198,64,233,134,50,184,200,16,50,251,139,168,122,30,152,37,199,92,231,235,207,189,104,50,219,140,98,37,7,144,0,146,248,30,59,228,204,6,120,192,
+234,120,36,242,77,68,203,23,85,73,51,142,126,123,204,126,4,77,199,35,176,193,239,156,80,5,66,100,4,1,230,47,0,127,199,229,169,24,250,51,129,131,233,207,211,209,155,167,36,252,204,59,129,246,187,30,127,
+241,237,216,228,227,175,3,175,28,90,103,9,202,198,73,28,103,117,225,30,185,57,115,201,237,142,123,125,24,94,83,141,168,185,236,12,183,128,227,182,126,112,63,66,49,216,116,32,17,109,148,143,189,32,3,60,
+155,155,22,227,29,121,101,235,143,94,56,231,61,88,99,156,140,7,39,36,115,246,139,15,81,215,50,227,156,245,199,28,126,51,230,231,35,228,24,24,255,0,150,243,126,63,122,77,221,51,207,127,64,115,76,102,188,
+24,192,10,58,127,172,149,189,59,249,248,57,244,33,113,142,61,104,2,171,219,203,158,102,72,250,28,27,157,57,179,215,7,30,112,198,8,236,0,39,144,58,84,126,84,156,134,188,143,3,130,22,123,35,142,157,71,153,
+142,14,61,127,83,86,76,247,138,73,7,29,134,119,100,231,167,37,155,129,245,29,242,57,193,97,188,189,57,0,228,156,2,55,169,199,0,142,6,72,237,192,193,61,51,64,21,90,221,73,36,221,33,231,169,154,204,245,
+246,14,188,130,114,49,156,158,195,138,65,106,188,226,229,62,161,45,223,129,146,122,73,207,108,250,227,7,142,42,127,182,223,119,50,0,7,85,143,204,32,227,169,223,244,231,243,7,61,33,55,183,192,146,30,80,
+49,208,91,199,252,182,231,60,113,129,142,188,154,0,99,90,168,63,53,200,250,24,213,64,239,143,150,78,157,177,140,142,196,117,45,48,68,48,76,177,16,58,238,140,158,185,238,36,39,140,227,143,167,214,67,125,
+115,203,121,142,72,63,197,4,96,142,249,227,4,123,144,6,0,206,120,197,43,94,204,70,76,146,131,216,172,8,121,4,244,249,199,3,235,223,156,30,160,16,152,161,24,193,183,39,7,25,142,66,58,15,238,200,8,252,134,
+125,129,229,165,35,24,63,232,160,0,71,250,155,140,143,108,169,99,140,251,30,248,227,163,205,219,244,50,94,55,178,90,35,3,201,198,49,38,122,15,126,127,135,131,76,55,164,31,245,183,192,244,255,0,143,18,
+122,12,14,4,152,244,228,251,240,123,128,51,42,58,155,49,232,90,59,209,144,71,96,56,29,1,224,126,148,224,225,78,65,181,231,176,91,224,50,122,142,216,29,61,49,235,76,107,214,227,247,250,129,246,22,4,131,
+233,199,207,143,78,199,243,21,25,189,57,59,94,244,231,251,214,69,79,39,56,249,138,227,183,208,123,16,0,4,141,49,57,59,99,244,202,37,230,61,48,73,97,145,211,183,78,254,145,153,166,39,229,17,103,28,19,246,
+172,17,223,128,225,135,190,127,26,105,187,56,35,125,206,50,9,13,100,132,12,250,254,251,63,150,61,122,211,126,214,156,229,216,227,159,154,208,39,113,211,19,28,31,210,128,31,231,93,140,224,219,159,76,189,
+210,99,175,3,115,227,143,196,130,56,205,53,94,237,137,220,246,106,0,36,102,226,224,99,215,168,110,190,131,142,227,181,40,189,132,255,0,203,72,249,61,10,74,123,96,156,249,152,28,245,235,207,76,84,77,124,
+163,238,188,64,224,100,1,39,61,120,198,246,234,50,113,140,224,12,243,64,18,238,189,232,183,86,105,130,56,19,200,56,198,6,51,25,57,199,25,235,249,208,98,212,152,229,111,109,198,125,38,114,59,127,211,35,
+159,175,248,213,83,122,6,48,240,182,127,188,157,61,242,204,51,249,30,104,251,113,110,214,132,129,131,202,41,250,113,156,30,123,17,211,138,0,176,208,234,32,113,124,132,119,81,56,28,255,0,192,163,29,186,
+28,17,192,205,71,246,123,236,157,215,168,15,251,50,90,144,1,231,188,101,135,108,254,85,23,218,78,15,205,100,73,25,199,152,139,144,70,71,0,103,233,131,216,122,84,70,114,122,11,15,163,76,51,130,58,144,78,
+56,224,240,64,250,117,160,11,130,218,236,99,253,49,121,224,101,45,200,224,145,252,49,12,231,25,227,56,227,38,158,182,119,68,227,237,113,19,158,158,84,124,142,49,210,34,8,31,137,28,250,19,89,230,86,25,
+253,221,150,14,122,78,135,215,31,46,227,208,116,224,96,251,142,98,50,70,114,166,27,92,128,51,137,24,244,245,42,15,29,58,242,63,19,64,27,34,194,228,99,51,65,156,130,72,134,49,199,167,17,241,244,227,29,
+143,163,191,179,100,234,211,31,81,178,56,8,227,130,50,66,147,215,161,206,127,32,49,76,137,206,216,224,24,237,230,57,206,49,212,108,98,57,250,224,244,28,115,19,49,201,43,26,28,228,127,172,151,29,49,215,
+203,35,142,71,79,199,154,0,221,54,0,3,186,103,61,122,64,139,207,35,130,16,231,219,158,158,188,10,136,89,142,65,121,73,231,172,121,39,7,208,99,28,240,122,250,99,140,28,101,56,233,12,39,215,121,124,227,
+146,79,250,174,159,207,143,90,144,205,129,143,42,14,127,186,100,24,61,70,48,132,31,66,79,167,210,128,53,197,181,178,159,156,77,244,48,56,24,245,201,111,168,237,159,92,210,249,86,163,32,7,3,60,238,139,
+56,246,31,57,32,119,231,56,60,246,172,124,163,30,65,24,227,229,50,224,231,29,48,171,199,29,177,235,211,171,191,118,56,216,199,61,243,33,56,231,215,183,113,252,198,40,3,91,203,179,29,11,250,240,165,112,
+121,233,137,23,252,227,2,154,99,131,160,50,224,119,12,84,130,125,113,41,238,48,78,1,199,208,86,103,150,8,207,204,163,174,0,31,136,249,144,123,100,115,233,237,78,17,175,171,227,166,14,222,57,246,81,145,
+142,62,152,250,208,6,135,151,104,78,11,220,134,207,57,33,134,57,239,129,129,158,112,65,61,71,213,194,43,18,112,103,156,100,156,19,179,3,219,229,132,244,245,60,246,30,212,4,45,128,81,143,224,234,160,31,
+196,31,192,116,24,246,169,60,166,232,88,183,25,63,112,247,245,8,73,61,249,32,125,104,2,219,69,102,135,139,169,70,121,206,223,192,127,203,163,100,231,182,79,174,0,52,208,150,172,114,46,223,220,100,14,121,
+236,108,6,7,227,249,113,85,252,180,63,120,12,30,199,200,32,244,232,10,30,79,224,57,198,105,194,21,97,133,224,119,192,183,36,246,233,142,120,62,191,134,122,128,88,242,237,185,255,0,76,3,158,238,153,63,
+93,214,35,3,211,39,61,200,199,4,217,0,224,93,99,208,153,237,199,62,231,236,36,227,166,121,237,158,167,136,5,168,60,245,233,203,36,56,235,211,133,206,121,233,236,121,228,84,235,110,59,44,71,25,251,209,
+174,122,116,202,68,253,177,211,3,160,234,104,1,124,149,206,77,247,25,63,47,157,9,231,177,249,108,48,63,241,236,244,224,112,84,68,221,175,48,8,24,35,15,215,129,200,211,207,166,113,215,218,147,200,4,156,
+199,111,158,14,12,77,158,48,71,34,16,65,224,228,245,3,177,165,11,26,228,53,189,187,112,57,217,56,250,243,128,185,237,253,40,1,124,185,1,207,219,217,135,80,2,28,103,175,63,241,47,0,253,222,167,243,237,
+82,126,252,231,23,110,220,117,216,163,156,224,96,253,136,12,126,7,147,212,241,77,83,111,142,109,162,25,28,13,183,127,205,91,25,245,227,175,160,20,31,179,3,134,183,136,15,239,108,189,198,127,34,71,175,
+224,125,178,0,165,46,137,4,79,59,103,184,219,142,125,49,98,63,145,0,245,28,82,5,186,24,5,238,79,97,134,69,207,94,121,211,250,250,14,79,225,209,227,236,188,1,12,71,167,35,237,107,147,212,12,152,248,231,
+249,112,77,74,177,66,70,86,24,136,224,14,110,176,125,193,10,59,118,4,19,212,244,193,0,96,142,92,101,254,211,128,48,114,202,71,94,191,241,228,49,235,193,198,58,103,154,118,215,207,11,47,3,25,242,145,179,
+237,145,102,49,235,207,215,6,151,202,92,99,201,132,243,208,155,131,145,133,29,10,146,167,190,123,227,131,193,202,121,105,199,250,34,119,25,15,32,192,231,166,98,221,215,156,103,167,28,247,0,144,121,157,
+188,210,192,99,6,12,241,207,66,52,238,58,158,135,3,128,78,77,59,108,160,18,97,145,255,0,237,212,231,216,140,217,12,31,83,215,185,4,241,85,154,21,4,145,109,143,92,72,249,60,140,228,27,124,122,231,158,252,
+145,72,144,32,32,249,46,14,115,146,203,242,142,248,255,0,71,108,240,120,224,245,24,193,160,11,170,100,193,204,51,47,251,208,108,250,116,179,25,3,28,100,100,117,160,54,8,205,188,187,186,231,202,113,143,
+67,149,177,110,191,167,115,77,16,161,3,33,84,227,63,125,63,92,217,19,140,117,207,32,250,227,52,225,10,227,254,89,142,56,220,99,228,227,61,126,195,207,182,58,251,116,0,10,99,83,201,141,148,115,243,121,
+115,113,239,143,176,112,56,231,110,51,211,147,197,32,72,199,68,92,251,197,114,79,185,207,216,215,215,212,254,162,148,46,210,63,122,7,95,148,60,32,100,118,193,180,3,36,224,30,156,28,227,32,130,191,62,126,
+249,224,103,253,100,35,142,153,226,32,72,29,1,254,156,208,2,237,81,208,66,8,198,3,67,113,252,132,43,219,29,185,231,156,243,65,115,211,117,150,113,215,109,210,159,64,6,0,32,140,99,130,8,238,6,40,243,92,
+28,121,152,25,227,50,166,78,56,207,8,195,28,17,198,15,24,32,114,41,226,124,156,52,140,120,192,204,200,7,94,57,17,175,95,175,183,126,64,24,61,90,75,85,7,7,229,158,249,7,176,198,238,128,245,207,29,62,181,
+40,92,227,107,219,16,58,226,123,243,142,61,165,0,100,245,32,103,0,119,161,37,135,156,220,178,159,250,234,156,103,156,3,212,241,215,35,60,246,169,4,246,220,255,0,165,156,227,168,116,57,231,217,15,92,140,
+245,29,248,197,0,70,85,84,12,205,110,163,174,68,215,131,35,185,230,224,158,188,244,200,35,158,244,240,34,228,155,155,95,198,226,232,18,122,144,70,227,211,252,242,70,100,55,54,227,0,95,129,219,30,98,147,
+158,0,227,96,201,227,160,200,193,231,57,168,30,238,1,140,106,14,121,61,60,182,25,28,117,36,244,247,0,31,110,104,2,194,8,177,254,182,196,158,159,53,197,200,30,220,150,80,63,32,113,235,142,29,152,84,228,
+182,156,61,197,204,223,159,205,47,166,115,192,60,245,231,38,151,218,163,4,255,0,167,176,63,69,231,39,140,96,115,200,57,0,240,61,120,168,205,244,75,141,215,97,249,193,223,2,54,6,121,254,18,122,116,235,
+234,121,224,128,106,137,34,96,64,123,19,131,140,173,219,129,248,159,61,78,127,30,112,113,154,112,154,32,112,77,137,199,253,62,75,156,254,23,56,224,113,192,238,122,245,57,31,109,181,31,49,186,94,122,133,
+179,66,125,186,91,147,199,227,223,175,90,103,219,173,137,56,185,198,125,44,147,167,78,71,217,120,60,231,36,143,126,212,1,188,25,31,37,90,220,3,142,69,203,56,247,3,116,224,112,123,146,73,199,214,158,3,
+112,84,219,247,225,165,140,255,0,57,206,64,239,236,120,57,24,174,127,237,177,103,63,107,192,235,205,158,120,227,174,34,24,62,196,122,253,41,227,81,133,115,254,150,88,99,27,126,198,192,30,152,60,90,103,
+182,120,224,123,242,40,3,120,171,31,189,246,64,72,29,39,182,28,244,254,39,126,185,199,225,215,165,53,150,49,130,77,169,39,183,219,45,61,191,233,155,126,88,206,120,60,98,177,6,161,17,251,147,47,190,109,
+92,140,250,224,194,152,62,159,151,61,133,190,140,147,153,35,61,112,62,202,189,15,7,113,43,158,156,96,15,165,0,108,190,7,79,177,129,130,70,111,173,135,124,1,247,84,96,245,28,113,211,218,160,109,199,160,
+178,227,60,125,190,215,167,36,0,121,193,199,39,144,0,239,212,138,66,234,35,145,190,60,231,161,128,129,219,210,44,123,228,158,113,214,167,73,145,184,204,100,113,145,229,41,29,192,224,243,212,28,112,15,
+111,122,0,113,4,16,12,54,196,145,212,95,90,224,96,125,51,211,3,128,113,206,113,197,33,87,206,68,16,116,231,253,42,22,4,244,236,20,231,142,113,223,36,103,60,206,155,24,116,139,113,35,145,28,96,158,122,
+227,175,167,92,158,217,60,98,85,70,7,229,72,123,96,101,64,207,224,195,30,195,25,29,187,100,2,150,36,108,21,181,180,36,103,25,184,132,146,7,111,153,15,29,79,92,250,158,51,78,242,228,231,54,182,103,174,
+48,109,186,231,185,42,164,255,0,35,215,61,198,146,171,142,162,219,174,48,21,113,158,224,252,235,156,250,115,211,140,227,52,245,132,18,48,44,199,29,118,227,24,244,249,206,51,200,239,233,142,148,1,151,200,
+235,105,104,24,113,128,214,217,24,227,7,230,198,112,48,113,207,166,13,41,111,75,120,115,233,152,113,147,159,66,115,239,215,158,254,154,162,7,36,96,219,17,131,145,176,109,192,244,220,192,113,142,51,207,
+208,102,164,22,242,12,101,237,64,199,79,45,50,56,206,114,28,251,243,140,115,64,24,251,228,92,108,182,143,158,184,88,136,232,59,249,139,131,223,183,29,51,156,5,47,41,60,195,16,235,210,5,224,131,207,38,
+83,201,244,206,14,127,45,212,183,207,120,14,70,6,0,35,3,167,81,237,233,238,71,74,144,90,149,39,2,217,207,31,192,128,241,156,227,120,193,29,243,130,57,244,52,1,134,24,128,9,137,65,245,22,177,242,58,247,
+153,121,193,199,227,207,24,169,20,169,232,161,73,227,13,101,110,195,0,118,205,193,231,167,185,230,182,12,91,64,220,144,142,58,168,135,159,193,99,62,188,245,61,8,201,234,210,25,136,24,139,25,244,193,233,
+198,118,67,254,79,127,80,12,210,128,128,25,97,237,193,177,180,4,156,228,112,211,48,39,191,32,30,189,115,154,144,24,148,15,184,49,158,150,86,93,123,143,150,79,203,234,61,235,64,2,56,96,51,158,0,145,151,
+184,199,88,142,49,207,94,56,197,52,169,39,136,203,115,140,153,0,231,160,31,44,13,159,212,231,215,129,64,20,75,67,130,115,156,227,143,179,90,32,60,112,56,148,31,124,0,122,251,114,221,201,145,132,13,199,
+0,91,219,242,59,100,7,115,208,242,115,248,113,87,255,0,120,164,126,229,152,15,238,72,248,231,233,106,6,113,140,254,120,205,70,102,94,246,238,121,239,43,128,78,112,121,22,227,211,214,128,42,110,82,120,
+143,29,70,62,205,7,36,224,246,80,196,103,190,120,25,57,164,219,184,237,49,228,115,156,218,198,14,125,7,204,63,30,189,249,171,38,226,18,57,178,147,140,228,172,215,0,115,140,103,22,228,125,56,199,212,230,
+162,51,68,122,90,92,227,28,127,164,74,63,47,244,51,219,220,30,71,83,212,1,162,24,216,128,98,82,79,56,251,58,15,175,27,193,207,63,159,90,115,66,131,63,185,57,0,117,181,3,234,120,46,112,126,158,152,207,
+90,140,223,34,158,109,110,192,30,151,23,56,246,28,90,224,227,158,220,103,30,134,143,182,64,220,155,121,198,127,189,113,119,239,255,0,78,227,7,140,227,0,16,9,24,235,64,11,177,129,249,83,111,184,133,189,
+199,24,129,186,123,246,247,226,130,202,0,25,114,49,208,69,113,193,39,3,145,108,58,14,120,39,3,142,41,13,229,184,206,109,100,228,158,151,23,121,252,71,144,122,140,123,15,92,115,76,55,182,103,254,89,74,
+8,227,30,101,209,56,31,238,217,63,110,216,200,198,59,98,128,36,35,32,49,105,0,24,227,203,187,24,60,14,166,61,167,61,136,227,56,234,56,165,242,163,63,121,230,4,140,31,146,236,31,192,44,12,15,126,163,3,
+60,251,87,107,173,56,0,90,25,129,207,222,221,118,123,129,222,196,119,233,208,227,183,122,65,113,166,231,152,174,122,247,150,224,14,184,254,43,44,143,195,61,115,146,77,0,88,88,160,57,204,183,96,129,129,
+152,47,70,121,60,243,108,1,246,228,99,156,143,80,195,9,207,239,238,72,25,39,229,187,28,250,17,228,41,244,4,243,207,122,173,246,141,60,244,142,227,28,144,60,217,7,211,27,172,142,79,126,114,127,0,73,82,
+214,124,96,78,156,119,153,79,127,70,211,207,231,211,142,231,128,1,105,109,224,57,253,245,202,158,249,134,102,239,254,224,199,56,252,122,244,164,242,99,4,1,45,193,28,241,228,78,189,51,130,73,66,50,115,
+156,113,223,173,69,186,12,127,203,92,14,50,76,7,30,220,89,40,201,199,29,49,250,82,238,132,243,151,39,161,249,96,232,120,239,109,215,0,243,159,235,64,10,98,136,103,18,92,122,96,194,227,158,114,114,97,207,
+230,223,151,117,22,241,17,243,52,231,191,48,72,65,232,56,196,67,60,116,228,114,50,59,84,108,23,174,201,27,191,202,176,126,96,139,126,59,142,163,32,250,84,56,36,18,109,110,152,123,125,152,125,48,90,223,
+166,120,224,156,250,245,160,9,218,8,8,227,205,29,78,69,177,25,227,169,5,134,58,122,19,238,71,68,88,162,7,239,72,120,63,122,16,48,122,119,246,39,131,211,210,171,176,57,249,109,111,177,234,30,208,0,59,159,
+245,106,190,254,132,31,94,42,51,230,96,1,111,124,7,115,230,233,227,60,255,0,186,78,112,120,252,185,61,64,45,180,81,231,1,135,67,214,52,24,4,122,99,31,134,1,231,39,218,35,18,129,192,143,28,242,99,133,91,
+219,0,103,240,228,123,138,143,247,160,99,236,151,68,244,231,251,63,36,30,249,217,159,92,147,249,117,166,21,152,255,0,203,180,227,253,225,167,224,247,28,170,47,24,232,24,96,228,253,104,1,229,99,3,0,196,
+51,220,199,27,48,35,253,221,185,252,65,198,9,236,5,68,254,82,247,141,189,64,133,49,130,61,199,94,163,60,243,223,185,102,217,200,193,134,227,184,194,181,129,207,92,114,8,192,61,122,100,103,158,113,76,48,
+54,126,104,110,215,253,217,109,135,227,242,158,57,246,62,216,198,8,4,108,214,156,230,52,36,28,17,178,16,127,35,128,49,223,234,65,226,163,221,105,208,64,50,113,143,145,20,118,60,225,192,201,200,245,24,
+235,237,63,217,201,31,234,47,193,0,227,231,182,60,113,220,140,243,142,156,31,80,105,60,140,158,98,190,24,29,229,128,0,79,168,192,200,247,228,224,10,0,172,235,0,206,96,28,224,100,170,156,115,237,47,76,
+250,125,51,140,212,100,91,17,143,179,41,198,50,118,228,103,211,62,104,0,99,140,114,7,183,107,190,83,5,235,116,59,231,114,19,255,0,125,4,32,28,246,7,131,233,210,154,98,124,125,251,156,28,100,176,92,142,
+227,159,36,146,78,70,115,211,147,210,128,40,52,118,228,103,236,202,61,63,116,228,224,247,31,190,35,7,158,113,199,24,61,40,171,141,3,30,12,151,0,158,152,143,119,39,143,225,182,239,200,239,140,158,131,161,
+64,30,48,81,156,103,237,16,19,159,225,105,114,58,245,205,248,199,32,224,246,206,49,158,75,76,50,247,158,28,17,193,102,144,119,246,212,179,232,127,46,42,190,84,140,43,167,64,50,38,201,198,15,247,100,108,
+250,240,57,30,180,121,103,3,24,97,211,153,136,235,142,228,156,158,50,122,116,60,28,102,128,37,251,57,36,19,117,110,7,63,122,89,59,240,112,14,162,163,24,235,244,234,79,1,162,223,25,197,221,166,63,219,146,
+83,145,215,7,58,137,39,166,122,241,81,50,99,130,160,159,81,62,72,239,223,63,167,76,231,28,83,192,31,119,5,189,49,42,28,15,161,129,251,30,188,227,156,31,64,9,69,186,143,249,109,165,184,61,201,148,231,215,
+57,191,63,135,76,156,210,152,98,0,143,55,74,4,31,70,25,3,167,31,105,57,250,244,207,214,171,144,205,210,34,125,48,81,143,190,51,103,142,222,212,20,108,115,3,158,191,194,188,250,96,139,76,103,56,233,211,
+7,158,57,0,177,229,162,247,177,61,8,43,191,158,185,228,76,71,215,147,147,140,247,194,132,136,231,34,211,57,199,44,220,241,223,247,192,228,103,24,227,24,32,213,112,184,28,71,40,36,112,6,48,125,120,22,153,
+233,131,130,125,251,242,225,9,110,25,103,31,240,13,216,28,227,254,93,49,254,28,231,165,0,60,136,20,253,235,62,253,152,142,153,28,249,205,142,132,12,255,0,62,136,12,10,114,62,198,73,35,156,158,56,200,225,
+159,36,159,175,211,182,67,104,132,0,124,240,79,92,198,221,255,0,221,179,200,245,198,48,7,20,162,194,38,228,180,195,140,231,201,184,207,66,8,57,179,29,125,58,119,206,56,0,15,15,24,234,182,71,185,36,160,
+231,183,118,252,56,254,100,212,234,234,189,22,207,158,164,11,115,215,211,49,228,231,252,227,138,136,88,192,57,223,55,191,238,37,233,234,75,91,175,243,207,210,165,93,62,34,72,89,38,61,57,251,52,167,0,251,
+121,35,129,158,121,32,158,123,80,4,203,54,51,242,217,243,212,149,131,57,245,226,0,49,207,65,129,156,243,78,251,64,200,199,145,158,191,242,238,7,65,199,49,231,169,228,231,250,80,52,248,206,1,121,240,0,
+7,253,14,98,50,15,251,168,115,234,15,65,211,181,57,116,168,8,36,204,224,123,218,92,103,56,207,65,39,94,59,227,249,80,3,214,224,158,15,151,223,164,150,253,186,241,229,142,113,211,183,79,108,188,74,132,
+253,253,189,192,253,203,14,59,19,230,160,30,131,243,231,154,132,233,208,12,255,0,166,30,157,173,110,51,144,125,76,199,7,56,61,49,199,225,79,93,38,22,255,0,151,137,8,60,143,244,107,128,50,71,253,116,200,
+56,244,56,198,51,140,156,128,88,6,34,127,215,168,39,160,17,194,255,0,160,187,28,254,28,243,83,166,211,210,228,129,233,246,120,128,4,246,226,228,47,78,114,77,86,93,46,217,64,253,233,39,175,17,220,14,49,
+207,73,27,28,123,12,28,231,154,144,88,66,58,75,198,71,240,93,30,113,199,0,156,14,49,193,250,80,5,145,192,56,184,144,145,255,0,76,34,35,28,228,241,114,199,7,142,188,99,29,105,126,117,192,55,44,71,78,45,
+144,159,252,118,94,58,113,212,131,156,119,166,11,52,92,98,78,135,131,182,235,57,245,63,189,95,204,142,63,90,65,110,84,130,8,232,121,41,116,15,29,242,183,32,243,206,50,51,158,152,227,0,19,2,123,207,112,
+65,60,226,207,112,35,158,62,91,133,250,14,7,225,79,14,7,27,167,97,255,0,94,67,36,125,13,238,61,122,244,253,42,63,46,67,192,149,184,238,13,233,4,30,6,51,114,58,100,99,7,31,133,72,176,146,1,51,14,164,159,
+154,244,16,63,25,248,207,62,190,252,140,208,4,177,176,206,64,157,113,220,216,68,122,30,185,55,192,250,99,7,159,81,83,137,87,60,181,193,32,147,197,148,67,7,223,253,60,243,199,63,253,97,85,2,118,251,64,
+35,169,2,107,172,241,236,215,35,184,199,233,234,42,97,26,30,12,142,79,175,218,46,10,143,174,110,128,237,212,28,31,167,20,1,109,38,206,112,110,72,236,13,180,42,59,228,127,199,219,99,219,31,136,3,6,172,
+44,203,211,19,147,239,4,32,125,1,243,137,57,31,145,227,158,244,134,208,56,151,28,14,178,57,234,79,173,222,79,60,142,156,1,193,165,249,216,12,78,1,239,159,55,4,231,174,62,212,114,123,30,160,158,51,198,
+8,5,243,118,137,213,36,124,118,196,11,255,0,161,76,6,62,160,159,211,14,89,209,241,251,151,4,231,36,152,7,35,233,113,142,189,123,17,237,154,164,4,220,102,224,16,121,42,55,140,253,115,116,122,114,122,3,
+79,81,46,6,230,36,241,200,144,142,56,207,91,190,253,240,14,48,58,246,0,210,73,33,28,121,82,144,14,73,196,4,115,235,182,236,1,143,126,184,57,227,20,239,50,3,212,58,142,192,249,67,167,25,35,237,108,125,
+72,224,2,73,247,170,74,14,62,102,147,30,191,104,0,15,199,237,68,12,99,184,237,211,181,41,142,60,141,210,103,39,189,220,103,159,83,254,146,79,167,169,247,28,80,5,220,219,17,247,228,24,236,172,51,244,226,
+227,212,103,29,8,235,223,15,6,12,12,73,56,3,60,153,167,81,211,209,110,72,228,243,192,60,241,199,124,242,176,143,227,70,227,167,218,67,12,103,190,46,113,143,127,94,213,34,8,70,9,242,207,67,129,43,117,244,
+249,110,79,67,147,158,252,158,5,0,95,9,1,206,37,184,30,184,154,228,142,48,50,112,217,207,115,134,36,240,1,233,75,228,194,64,196,247,29,255,0,142,228,129,212,128,1,144,30,128,14,51,223,29,241,84,188,57,
+194,152,65,206,126,105,101,227,145,217,110,15,212,117,0,100,243,208,72,166,34,121,107,102,235,156,207,116,160,129,208,103,204,228,253,59,251,228,208,4,198,4,192,11,53,208,24,0,97,174,123,14,220,244,207,
+76,245,28,122,208,33,92,0,101,188,207,36,237,105,190,189,212,146,7,242,224,250,210,15,178,156,19,246,76,241,255,0,47,55,39,167,110,103,92,227,182,122,114,113,142,175,6,195,60,136,137,35,144,46,46,72,252,
+0,184,199,110,0,207,20,1,42,192,171,200,184,188,35,175,6,95,231,179,39,31,254,170,118,198,0,98,75,211,140,245,91,128,78,8,207,252,179,57,200,206,58,103,61,249,195,86,27,6,28,44,96,131,215,204,185,39,56,
+234,50,204,79,176,25,250,243,203,197,165,153,25,6,28,3,212,172,207,248,96,2,79,29,78,71,56,206,104,1,202,142,122,73,124,87,208,60,156,231,182,25,6,113,206,122,254,102,165,81,32,224,27,194,64,234,210,2,
+15,226,119,99,174,6,113,215,29,184,133,109,173,135,64,132,15,75,123,211,220,96,2,20,142,49,244,207,229,83,172,54,163,31,185,137,143,24,205,181,238,127,244,80,199,224,79,175,169,160,7,134,148,117,223,142,
+63,184,121,24,0,156,174,58,118,224,246,245,20,237,210,147,195,185,231,144,203,30,49,233,247,211,219,147,146,9,201,239,70,200,65,226,4,249,186,102,11,188,14,153,198,232,8,30,249,199,165,72,33,83,146,33,
+131,30,134,25,187,100,131,143,179,227,215,60,250,12,246,0,2,180,170,15,44,64,224,177,72,241,129,245,152,244,252,71,124,99,53,48,158,65,212,169,228,140,52,49,55,94,156,239,200,245,193,207,39,223,132,242,
+15,240,219,70,217,29,68,114,3,237,210,44,247,255,0,60,229,13,180,171,131,246,56,142,78,1,49,204,63,3,136,187,18,122,140,125,69,0,88,75,167,236,34,207,81,251,136,143,95,164,128,1,244,25,221,248,226,79,
+180,92,30,66,91,184,60,255,0,169,65,252,156,18,112,127,46,217,228,211,22,243,19,242,216,91,57,235,151,19,19,143,197,23,7,211,3,211,146,120,10,45,238,87,56,176,179,92,117,39,204,82,112,123,140,224,122,
+16,70,125,48,15,32,26,30,125,193,31,234,237,6,79,35,236,217,62,249,4,255,0,60,158,73,233,214,64,242,245,17,89,158,58,125,144,31,199,27,179,245,7,60,251,113,89,103,237,42,70,108,172,136,232,65,121,70,126,
+187,91,35,57,224,131,158,157,113,78,6,228,0,69,157,154,243,218,119,3,216,141,228,227,243,62,254,192,26,38,89,115,205,189,135,254,2,48,228,118,206,27,31,167,61,125,212,73,33,235,5,176,231,162,193,34,143,
+126,79,7,61,176,7,177,53,154,62,214,216,2,222,213,71,168,155,61,253,68,138,191,253,110,71,188,130,59,194,120,75,113,219,31,104,81,140,122,3,54,121,24,192,205,0,104,135,113,130,109,45,136,56,229,162,144,
+227,190,51,180,231,61,123,241,208,118,161,164,110,2,219,90,12,250,194,221,251,100,197,237,199,39,29,243,205,82,43,124,159,193,17,29,130,220,31,113,200,89,254,157,78,56,200,29,41,11,221,175,33,66,156,129,
+197,195,158,51,219,18,55,57,61,51,215,28,0,40,2,209,50,183,63,103,178,35,57,24,141,212,159,196,70,48,122,116,199,78,71,28,180,164,175,199,217,173,192,3,248,119,255,0,88,207,183,30,153,56,56,226,175,218,
+174,212,115,35,0,73,228,79,32,199,230,204,15,113,145,232,0,237,64,187,187,225,140,243,143,117,157,216,99,184,220,59,116,35,4,30,153,160,9,132,88,206,235,40,206,8,193,31,104,224,159,101,80,49,211,167,39,
+60,245,168,158,44,255,0,203,162,115,144,62,121,65,199,252,11,30,252,242,127,62,15,237,11,161,192,186,188,30,226,89,78,121,29,188,192,61,241,211,208,103,163,77,253,227,116,189,189,199,253,117,35,32,251,
+25,58,126,57,227,131,64,8,81,199,2,207,143,105,164,57,192,199,3,61,58,250,247,62,148,42,74,58,90,178,159,250,234,228,128,71,127,151,175,212,140,122,10,147,237,151,108,49,246,203,174,79,32,190,254,167,
+185,220,125,207,39,166,49,156,114,25,111,9,226,234,115,156,243,188,168,235,158,185,96,126,188,113,199,25,160,4,9,54,0,40,192,245,25,146,65,232,7,34,54,239,219,60,100,19,197,5,102,200,255,0,88,122,240,
+37,152,123,103,34,34,9,39,167,211,215,154,60,203,236,224,220,78,216,32,231,121,60,119,224,70,114,123,119,246,168,221,239,14,73,150,115,219,36,156,123,112,99,233,159,66,71,211,129,64,14,111,60,113,229,
+75,201,63,242,222,81,248,130,32,39,147,143,207,158,244,155,230,83,143,42,96,120,251,183,83,12,114,7,107,126,131,182,56,207,126,105,152,186,99,195,187,117,201,100,200,227,215,247,121,198,15,108,243,199,
+52,255,0,38,228,242,18,66,58,100,91,134,3,255,0,33,140,245,60,130,113,232,58,144,7,249,215,35,162,92,156,14,215,147,227,241,196,0,241,223,211,167,108,82,25,239,8,56,138,228,227,63,242,255,0,113,142,56,
+207,48,118,244,235,219,214,147,236,215,164,113,20,185,237,155,96,63,241,237,135,166,121,7,166,122,83,126,193,124,122,197,158,135,152,80,140,159,102,183,114,49,156,245,224,129,158,244,0,130,91,230,228,
+197,117,146,72,4,94,206,72,250,145,6,122,123,158,189,205,56,11,191,226,138,239,167,63,233,55,12,122,247,38,208,147,211,143,155,156,113,77,251,13,232,255,0,150,96,15,67,10,15,94,152,181,95,95,241,160,218,
+223,40,226,37,32,15,226,93,184,227,212,91,246,250,130,79,79,64,0,245,91,146,64,242,110,207,99,139,171,178,122,123,89,99,216,227,185,35,131,210,54,142,228,0,126,203,122,121,39,155,139,195,156,125,109,64,
+57,207,92,15,214,143,46,228,28,52,74,15,3,63,33,0,113,211,247,88,231,159,238,156,158,7,74,63,122,50,10,40,234,114,61,184,231,0,0,61,72,206,120,244,52,1,7,149,117,147,139,75,128,79,118,150,232,123,127,
+207,191,62,216,198,223,166,105,26,43,211,192,183,156,131,208,22,187,250,245,242,71,98,63,195,21,41,15,146,113,23,174,76,164,31,200,50,145,142,252,254,29,195,75,147,198,216,251,31,150,225,199,61,72,32,
+75,199,211,156,159,94,224,16,27,91,210,115,246,75,158,9,224,45,243,14,153,233,229,144,113,223,3,0,100,30,166,152,208,221,169,35,236,115,254,43,114,57,236,62,120,128,227,234,59,250,113,43,176,235,148,29,
+137,251,92,128,123,96,249,160,119,63,92,114,8,2,169,179,166,239,154,104,64,201,235,121,46,126,164,130,216,207,57,193,233,192,207,52,0,141,109,35,17,155,57,115,158,91,108,167,212,118,76,14,7,182,123,12,
+117,4,8,7,207,109,34,145,255,0,76,100,4,99,35,146,80,18,51,156,103,57,234,70,105,124,248,84,99,206,135,56,36,102,105,156,30,157,72,24,24,245,35,61,71,108,82,121,241,114,76,182,228,130,112,162,103,199,
+184,206,211,200,29,6,50,125,71,52,1,27,199,8,227,200,147,184,225,118,158,252,253,244,56,7,60,145,207,78,149,89,145,1,226,9,186,142,129,73,239,140,135,155,176,239,140,241,212,241,86,158,120,200,251,177,
+48,235,242,72,219,142,72,3,7,104,35,140,115,199,76,242,72,204,34,225,87,34,52,221,254,245,196,170,120,207,240,169,35,168,245,29,15,52,1,87,17,169,25,133,201,238,9,137,78,59,127,203,66,121,207,211,61,51,
+208,33,104,192,43,246,119,201,29,124,196,7,244,56,57,247,24,236,125,236,25,229,3,11,108,91,220,75,112,65,192,231,185,207,126,131,143,161,201,136,77,63,56,177,7,140,12,9,155,184,63,220,35,57,7,175,226,
+59,208,5,125,241,103,38,210,115,142,14,217,97,30,196,1,187,35,215,183,78,180,158,100,68,255,0,199,189,223,29,188,232,143,31,132,156,227,161,224,31,65,205,78,90,233,242,69,142,7,178,57,234,14,9,62,94,71,
+211,60,227,39,218,54,55,67,39,236,30,228,21,144,47,160,233,31,94,15,221,231,168,205,0,68,76,13,210,218,240,99,31,242,212,19,212,224,99,204,200,199,31,158,120,205,51,100,121,202,199,120,188,156,156,177,
+32,243,193,33,192,207,95,175,106,156,27,131,207,246,98,30,125,36,228,117,206,74,3,207,248,244,52,31,180,176,4,233,49,21,28,242,178,175,83,206,72,237,248,241,219,0,80,4,27,99,24,230,251,57,206,4,146,128,
+61,114,22,92,17,233,206,122,112,14,40,42,15,86,189,199,78,22,66,123,247,201,224,115,158,61,61,42,92,220,224,255,0,196,161,27,159,225,150,227,183,76,149,29,248,227,145,147,131,216,84,44,243,147,147,162,
+166,51,211,117,201,245,255,0,166,121,236,115,255,0,214,160,7,6,84,4,111,188,246,204,83,48,231,168,200,35,156,227,168,224,119,201,228,47,146,127,127,114,48,79,30,93,214,57,4,127,207,65,208,103,160,228,
+103,61,6,33,38,87,227,251,34,53,25,231,2,236,145,249,196,65,32,113,193,31,94,245,9,86,206,6,155,22,113,147,185,231,0,125,1,192,57,238,51,199,110,57,32,22,183,147,128,110,39,198,120,253,213,199,211,3,231,
+36,142,189,187,113,156,154,14,206,247,51,158,114,115,5,227,15,174,68,164,117,255,0,103,31,76,213,82,143,130,62,199,24,28,158,174,71,185,3,158,159,65,219,57,197,68,119,39,63,103,136,15,127,52,15,67,200,
+24,206,51,219,235,235,64,23,188,208,185,34,230,94,227,6,13,65,73,231,63,195,145,250,158,71,169,225,166,126,115,246,149,236,78,232,239,201,63,64,64,193,30,135,161,245,226,179,204,172,78,22,8,57,61,119,
+203,147,207,190,6,79,7,28,253,115,209,22,89,87,143,42,32,15,60,60,195,241,39,175,211,7,62,153,236,1,160,110,14,67,23,45,199,80,183,202,0,198,57,218,27,140,117,245,237,158,148,198,187,126,248,60,224,110,
+55,188,159,248,28,67,112,252,79,21,76,204,253,215,63,70,148,227,57,238,73,60,245,32,103,159,122,137,167,144,131,136,200,7,24,249,103,39,215,146,35,56,30,167,39,174,65,160,11,166,226,108,228,71,25,206,
+113,255,0,31,64,96,247,59,109,184,254,135,30,132,211,90,230,239,56,242,33,101,255,0,122,239,166,56,57,107,124,117,233,158,190,245,158,36,156,158,120,95,76,92,0,125,142,54,115,140,156,142,120,30,213,32,
+105,129,36,225,176,56,1,238,6,71,184,50,117,25,39,140,251,158,212,1,99,237,51,129,205,168,39,25,194,188,227,167,60,147,104,221,113,239,130,1,239,203,190,209,114,64,198,158,216,199,252,245,151,39,223,63,
+99,0,159,99,208,228,118,57,131,237,18,140,225,7,190,94,227,159,252,125,137,239,211,57,207,184,168,205,195,146,113,28,135,220,53,216,29,243,252,36,14,123,145,239,144,0,52,1,99,237,23,3,63,241,46,159,39,
+185,151,235,198,90,205,179,223,190,125,187,20,251,68,205,201,211,238,63,239,242,122,145,145,186,200,14,58,129,156,227,145,142,181,87,237,7,28,197,55,168,2,91,243,159,192,68,0,244,3,131,218,158,179,187,
+112,98,185,3,182,22,251,156,117,36,249,88,233,199,248,117,160,11,30,116,156,255,0,196,190,232,100,28,109,154,212,12,241,144,51,103,201,224,103,144,71,61,248,165,89,102,200,38,206,237,125,205,205,136,192,
+199,0,131,167,28,122,114,113,219,175,90,235,51,30,5,181,193,35,161,34,239,158,131,39,49,12,100,242,79,167,110,114,28,37,144,127,203,164,205,159,70,187,92,131,215,36,195,208,112,121,235,140,14,122,128,
+88,221,35,28,155,107,145,219,2,231,78,227,62,135,236,96,247,201,192,28,142,227,52,19,32,60,219,222,99,254,190,108,8,60,147,255,0,62,203,208,30,158,167,147,199,49,172,173,209,173,102,80,114,56,123,174,
+199,56,229,84,96,231,191,29,199,179,150,80,122,219,48,29,112,94,224,227,35,183,67,233,156,247,227,20,0,245,218,126,245,181,200,35,159,248,250,211,240,115,143,88,137,193,39,190,79,113,83,110,92,16,96,113,
+192,192,107,203,2,64,193,198,0,140,116,244,39,142,70,59,84,59,193,28,194,232,65,206,124,203,147,129,244,57,30,220,100,242,123,115,80,22,4,144,85,185,28,144,110,27,30,199,247,45,200,237,150,206,123,114,
+9,0,184,90,51,214,60,99,160,19,89,146,79,126,171,248,145,248,138,4,145,1,196,103,156,117,123,44,31,175,200,9,207,235,235,85,84,5,57,44,64,192,35,62,121,30,159,243,203,143,126,58,143,174,101,1,78,126,80,
+115,206,118,207,250,18,170,59,242,63,2,50,8,0,22,132,136,64,2,36,3,222,107,65,250,20,29,59,3,239,234,105,68,169,193,62,90,227,142,77,131,14,14,112,62,92,254,99,142,135,24,34,171,133,78,165,20,243,145,
+137,100,94,58,19,243,119,236,51,199,191,25,167,109,140,140,152,230,29,142,30,66,63,12,3,142,231,183,83,201,160,9,26,104,120,200,136,144,49,202,219,16,0,207,92,12,241,245,39,240,232,121,144,28,110,75,124,
+117,32,197,11,3,207,80,23,118,122,143,111,90,140,71,15,115,112,163,216,205,147,248,236,94,127,44,15,94,234,82,32,14,37,185,193,61,1,144,30,115,253,236,241,199,92,17,198,15,122,0,152,73,2,131,132,181,199,
+108,217,161,200,206,122,146,9,4,117,227,128,59,14,142,243,225,24,226,208,18,71,75,88,136,7,62,132,158,125,14,64,233,210,171,4,136,0,124,203,222,248,33,25,134,62,161,71,169,200,231,168,250,151,130,152,
+35,205,191,35,63,243,205,187,140,30,171,211,60,247,224,119,205,0,79,230,192,196,229,237,129,25,192,22,137,233,207,34,101,35,128,15,175,167,92,83,213,161,4,97,237,192,233,255,0,30,139,237,216,220,125,61,
+64,25,206,120,204,72,209,103,36,106,12,48,58,0,15,30,191,40,245,29,199,63,172,203,60,74,48,82,252,147,199,36,224,251,28,119,232,64,60,240,13,0,88,204,76,57,158,211,39,129,254,137,211,28,99,137,128,227,
+39,158,253,250,80,62,206,49,186,123,51,206,54,253,152,3,206,58,102,225,72,60,100,228,145,199,78,149,7,218,34,24,1,110,215,61,115,184,145,223,158,84,254,191,157,47,157,8,25,103,187,29,122,228,143,200,184,
+56,235,247,135,56,207,168,32,23,20,91,19,187,117,161,255,0,182,33,79,79,69,187,35,233,140,3,215,62,179,171,65,158,18,216,246,200,141,112,126,152,187,4,231,142,252,125,107,52,221,194,9,196,215,4,14,1,39,
+104,3,28,158,101,61,61,71,30,152,198,75,214,246,223,157,211,76,78,49,242,72,156,116,235,185,142,15,94,78,49,233,218,128,52,214,120,83,162,69,129,156,226,6,193,193,236,86,239,167,175,110,56,60,213,149,
+191,129,71,40,65,39,39,0,142,157,120,251,87,99,158,189,121,224,241,88,107,123,102,122,220,92,130,123,121,145,17,140,123,103,249,15,168,60,213,133,185,179,39,253,124,252,227,172,138,49,237,146,120,253,
+125,125,104,3,112,93,193,192,2,78,113,209,165,231,241,91,130,71,94,227,129,140,140,115,64,184,143,144,169,112,78,63,231,172,248,36,156,245,19,30,71,229,200,24,172,83,61,153,36,25,230,35,57,31,190,140,
+245,56,7,166,123,113,215,191,190,92,39,183,24,197,204,189,59,146,216,231,147,196,71,161,24,60,243,223,32,145,64,27,2,101,221,204,18,158,120,38,89,88,113,159,89,115,158,113,200,206,58,156,1,144,205,22,
+79,250,60,164,116,59,30,83,145,199,32,25,198,71,212,142,159,137,199,251,66,115,178,233,143,60,12,198,7,95,246,237,216,142,61,6,7,56,200,166,249,153,192,251,75,140,117,30,100,35,7,35,159,248,247,81,140,
+145,215,223,165,0,110,249,209,224,226,210,118,198,57,6,231,243,24,144,142,221,121,3,3,165,52,204,6,15,217,103,81,192,25,243,247,99,158,49,184,231,142,125,142,51,88,190,126,220,98,105,9,207,57,154,221,
+186,158,127,229,137,227,244,227,142,212,9,216,183,50,202,163,31,223,135,63,142,45,152,31,94,185,35,222,128,53,204,136,199,253,68,224,243,142,46,185,247,32,73,207,110,64,207,60,226,145,113,131,136,238,
+48,71,247,174,20,131,129,192,5,137,29,178,8,193,232,120,2,179,4,167,180,151,4,28,224,229,72,199,111,187,102,6,8,207,83,199,57,227,154,144,74,253,183,16,58,110,44,56,245,200,180,255,0,61,189,40,2,243,35,
+159,187,28,184,36,253,233,103,227,166,112,48,65,246,193,199,29,106,35,111,33,28,197,47,92,255,0,175,148,14,125,204,124,15,231,215,175,90,166,121,151,140,196,79,163,187,15,207,253,8,159,243,154,140,79,
+57,110,18,38,233,210,70,0,96,116,249,109,51,193,30,159,200,138,0,189,246,124,114,201,54,7,24,50,147,248,159,221,19,244,200,28,245,245,165,242,226,3,152,229,192,254,238,236,224,241,212,64,115,223,57,199,
+81,206,77,83,51,78,112,26,8,91,146,1,251,83,41,7,28,227,117,170,142,61,253,251,102,129,36,189,224,139,30,166,240,176,201,200,199,22,231,223,167,39,166,120,228,2,209,242,144,159,221,221,28,114,113,36,160,
+122,112,68,56,25,61,57,35,223,25,167,171,196,58,69,117,216,143,244,153,58,243,212,52,64,126,100,145,215,169,197,83,1,155,56,182,181,60,242,4,204,121,247,197,184,61,255,0,14,121,231,135,236,115,255,0,46,
+150,131,235,36,231,140,127,215,19,142,158,135,140,14,164,96,2,224,151,145,152,174,87,142,247,46,164,227,221,71,83,201,224,31,127,66,190,112,206,68,55,39,158,215,174,9,228,122,140,227,142,157,186,227,173,
+81,242,95,36,139,91,3,215,239,73,49,57,199,127,220,126,148,241,19,144,127,113,166,174,61,230,36,122,156,249,73,140,116,207,56,25,0,231,154,0,186,46,51,157,208,92,250,255,0,199,247,3,215,25,198,57,250,
+103,233,74,179,33,63,234,238,151,215,23,204,217,231,140,5,126,122,140,241,199,228,43,55,202,117,60,69,167,125,21,228,39,220,227,96,236,64,228,113,145,159,74,112,142,108,241,21,143,35,61,31,63,143,183,
+66,79,167,56,199,52,1,164,46,85,62,81,13,219,3,192,38,118,96,120,207,118,29,135,94,157,8,57,163,237,164,19,139,75,151,234,6,89,185,238,79,5,189,241,219,190,113,214,146,199,32,193,104,236,186,243,150,147,
+156,245,24,44,1,7,223,129,158,189,106,67,176,31,245,118,100,14,152,10,126,131,150,231,166,48,79,65,233,64,23,22,246,65,255,0,46,151,42,112,79,15,235,248,30,71,97,146,123,247,160,93,221,19,255,0,30,183,
+24,235,204,193,125,122,97,79,92,147,235,199,76,85,80,99,201,253,213,167,24,207,238,215,185,255,0,124,12,242,59,254,184,201,190,217,120,120,161,245,59,87,3,35,167,252,182,0,227,177,235,211,241,0,189,246,
+169,176,7,217,166,25,244,184,124,240,58,255,0,171,25,207,215,56,198,64,231,34,221,73,147,152,37,201,244,146,82,125,249,9,143,94,6,125,51,197,83,251,69,169,251,177,140,244,249,124,188,247,233,153,57,207,
+182,79,74,144,92,219,255,0,207,7,206,48,114,45,72,199,36,28,179,140,119,193,231,63,78,128,22,62,211,32,228,91,76,79,76,238,149,187,99,180,100,156,17,220,14,79,126,5,39,156,199,39,236,179,115,131,141,183,
+31,167,250,47,191,32,159,229,81,253,170,37,233,11,231,216,219,129,129,254,236,221,61,136,244,30,152,153,111,163,35,155,107,147,254,227,193,130,57,224,145,48,231,168,193,207,61,59,80,2,137,137,28,90,206,
+70,127,231,148,252,227,221,173,113,248,231,158,153,28,210,137,1,199,250,36,227,215,239,175,242,143,32,250,96,113,223,147,77,55,112,140,31,178,220,116,234,94,44,250,99,253,113,245,231,142,167,130,41,166,
+234,220,156,11,91,197,239,242,152,223,7,3,142,38,207,7,183,95,212,208,4,254,104,36,133,182,156,96,245,222,252,227,167,84,198,125,114,120,207,3,181,40,145,187,193,113,255,0,125,177,24,233,206,23,176,199,
+60,103,160,30,181,141,202,28,98,222,248,1,254,208,7,158,255,0,124,244,207,78,153,234,120,161,103,28,13,151,163,219,114,130,61,207,255,0,91,60,247,160,11,136,200,71,54,215,67,7,57,11,146,125,56,43,207,
+191,92,228,14,220,135,7,32,67,112,59,130,98,143,191,174,228,39,211,168,56,228,158,249,172,103,110,2,173,225,233,157,210,30,1,250,41,244,231,159,76,30,104,51,72,57,219,113,158,71,51,55,78,223,242,197,189,
+241,130,123,242,59,128,88,195,30,4,51,100,244,196,112,3,206,123,249,36,30,190,158,244,8,101,228,121,87,35,30,139,106,127,15,154,37,62,163,218,160,23,115,116,221,40,3,140,121,215,29,186,231,100,3,31,135,
+30,252,138,13,204,199,143,52,227,60,110,146,236,175,94,121,48,115,211,62,135,212,113,64,22,132,82,15,225,184,238,15,252,121,240,121,206,126,94,56,206,64,29,179,199,36,171,69,51,100,15,52,131,211,115,90,
+122,247,200,29,7,126,14,123,85,19,44,132,228,201,30,58,101,164,152,14,156,243,246,101,235,220,158,217,56,52,155,228,237,53,161,231,181,196,153,247,206,45,143,67,147,211,242,201,160,11,126,92,195,0,156,
+99,143,189,109,147,207,24,194,176,39,30,132,159,64,121,166,24,228,39,146,48,14,57,54,255,0,174,84,18,59,99,60,250,213,111,50,113,255,0,45,45,240,72,227,206,144,158,231,189,174,49,142,255,0,160,167,7,152,
+128,90,91,101,193,200,195,74,217,228,231,133,179,62,189,14,58,17,210,128,38,49,48,200,249,51,212,18,80,113,248,40,250,147,156,116,245,200,64,146,144,73,48,12,116,204,200,58,129,147,243,3,212,241,140,113,
+214,155,189,192,63,61,171,231,143,152,75,207,4,140,226,219,35,211,61,186,115,154,103,152,236,122,218,227,211,100,167,30,191,122,53,207,24,198,236,99,61,248,160,9,150,41,177,147,246,114,56,228,92,68,115,
+245,32,2,59,2,79,52,241,20,153,224,194,15,81,137,163,60,250,140,204,131,216,227,158,48,123,84,27,152,228,111,128,142,120,16,144,49,248,254,61,51,235,154,140,196,173,193,145,88,250,8,50,127,82,113,223,
+140,143,127,112,11,91,28,99,152,201,63,244,213,79,62,163,23,13,207,61,142,61,5,32,73,51,207,151,245,243,61,50,9,229,193,224,245,227,249,228,212,251,58,145,213,136,236,86,21,24,239,142,7,65,211,219,167,
+165,49,160,64,6,90,110,157,124,168,241,248,2,253,57,245,227,220,80,5,214,71,97,192,132,247,36,200,120,235,235,38,126,135,143,106,22,55,199,250,180,237,252,68,143,160,253,233,233,219,159,195,185,201,48,
+12,146,68,216,61,9,181,129,189,115,203,16,49,207,190,59,154,105,129,64,227,61,58,27,123,97,212,227,7,12,56,245,32,143,90,0,217,49,76,127,133,0,30,132,134,245,24,204,167,191,92,99,173,52,197,55,32,56,92,
+245,195,166,127,87,224,231,191,39,244,198,27,66,188,231,105,61,1,217,110,161,122,117,204,163,243,252,59,84,38,213,206,72,207,79,225,251,49,39,62,159,233,74,63,34,9,39,223,128,14,133,162,155,160,148,245,
+227,230,83,143,169,224,145,248,254,35,173,87,104,166,3,155,135,4,158,8,12,70,56,227,62,120,25,235,207,24,232,71,76,225,139,59,142,70,249,48,123,1,107,234,112,121,186,108,227,56,3,147,232,41,77,148,228,
+156,52,163,184,201,131,7,169,228,111,192,244,234,127,92,144,13,54,138,227,63,241,250,70,59,31,148,145,235,159,49,143,61,115,244,224,1,204,98,41,50,115,126,71,99,151,144,254,64,147,219,143,255,0,86,42,
+143,217,47,65,226,70,110,189,76,3,25,35,191,152,71,92,30,79,110,59,154,67,5,254,126,247,67,208,181,190,125,58,180,216,252,251,113,64,26,6,37,0,249,151,163,35,56,39,61,127,22,4,147,212,228,158,216,43,205,
+70,81,71,204,183,167,232,0,35,24,35,163,74,61,50,122,142,51,180,117,20,204,87,217,251,177,103,32,100,181,177,39,183,252,245,96,57,198,112,14,15,28,115,78,16,223,1,243,4,0,231,238,188,0,125,120,227,240,
+4,156,246,197,0,78,252,131,254,155,128,61,112,167,208,243,188,142,122,228,30,121,3,0,145,69,64,82,241,65,7,35,169,59,100,140,142,131,161,86,0,119,231,28,122,81,64,30,57,229,41,24,41,25,231,147,135,98,
+115,156,100,229,128,245,239,207,28,246,122,194,131,1,150,60,14,216,32,14,126,139,159,82,71,28,241,206,41,197,128,254,41,255,0,239,220,88,29,134,127,210,27,56,30,192,15,95,70,137,113,144,36,113,142,14,
+82,62,49,158,191,190,246,247,252,179,128,5,49,64,15,48,68,61,204,187,122,243,208,142,49,219,190,58,103,154,12,112,245,49,192,51,158,62,212,71,225,142,123,14,189,251,117,164,243,91,170,220,103,253,146,
+145,227,241,38,67,248,156,241,235,234,158,108,192,113,58,156,17,213,217,113,223,28,57,206,8,233,215,181,0,57,126,202,159,121,109,134,7,39,237,50,115,142,164,225,57,207,83,131,219,138,112,123,83,143,248,
+245,199,60,153,229,232,7,57,196,109,207,24,25,3,191,110,106,33,52,188,102,68,61,206,103,147,175,76,0,78,63,63,254,181,74,39,124,12,237,35,129,197,220,131,63,136,70,61,125,63,30,51,128,7,41,180,201,194,
+192,70,78,63,123,35,103,185,229,160,4,31,82,58,99,156,230,166,204,3,7,201,131,212,150,124,15,67,199,148,73,244,29,127,165,66,46,15,93,199,60,227,55,82,145,206,114,7,238,135,92,146,71,31,226,25,79,7,49,
+159,102,187,149,71,226,54,103,216,156,119,235,64,22,86,91,99,193,183,183,227,251,174,199,167,92,147,6,14,71,166,8,252,49,82,239,178,255,0,158,22,255,0,128,147,140,250,147,8,25,254,92,244,192,197,17,42,
+12,2,97,4,224,146,53,9,71,254,202,0,63,67,142,188,246,167,121,240,131,254,178,221,177,143,189,168,74,192,119,62,153,250,3,147,249,96,2,232,150,204,19,251,155,124,113,141,209,169,32,31,83,229,31,195,11,
+250,84,169,61,177,207,238,173,192,30,136,156,143,64,60,159,200,146,61,58,102,179,76,240,225,142,235,82,49,255,0,63,114,231,191,164,231,175,166,62,163,208,91,136,73,231,236,164,117,255,0,143,169,1,28,114,
+121,152,0,115,220,143,192,80,6,183,218,109,20,227,202,140,240,62,236,113,103,243,49,15,230,114,120,247,167,139,171,115,194,66,71,83,196,112,14,48,123,152,28,159,200,227,174,120,21,150,37,181,193,201,183,
+250,25,220,129,216,115,230,30,15,126,126,156,117,127,155,104,112,127,208,249,60,13,239,219,156,146,92,15,200,246,160,13,1,42,17,159,33,142,59,149,180,228,250,115,105,249,2,127,92,84,169,50,12,254,226,
+65,140,142,22,196,130,115,156,2,176,41,39,215,0,158,43,44,189,158,7,252,120,30,113,254,185,137,4,253,93,120,247,206,59,14,148,192,246,185,249,70,154,63,237,178,124,220,114,112,110,87,156,123,28,142,121,
+234,64,54,132,193,198,4,51,41,231,129,246,80,64,231,176,128,122,247,201,233,143,105,20,177,7,228,155,62,235,102,64,0,123,166,71,111,207,211,154,195,243,97,86,3,58,120,61,126,242,176,231,166,127,210,24,
+100,117,0,242,59,115,138,156,92,32,192,89,116,229,57,28,97,91,30,188,9,113,212,12,227,25,57,235,140,0,13,112,242,144,118,172,199,142,152,179,238,59,131,11,113,215,35,232,113,193,33,195,237,60,230,25,72,
+231,162,217,247,245,2,223,161,228,231,184,198,6,7,57,33,193,198,36,211,142,122,145,24,201,199,191,155,140,126,29,61,178,106,69,216,58,181,153,227,168,64,1,61,56,27,199,126,167,131,159,212,2,236,137,40,
+195,27,91,131,199,79,42,221,129,192,246,183,231,158,164,156,116,237,129,76,81,57,233,105,114,1,231,229,183,135,142,189,66,194,57,24,231,142,159,78,107,252,135,157,246,189,50,62,69,199,62,163,121,32,117,
+224,125,72,167,140,31,186,214,164,140,0,4,100,16,123,112,37,92,228,244,192,227,184,199,0,2,112,183,64,241,4,202,15,253,59,224,250,99,229,183,32,241,244,224,227,142,42,204,113,221,183,72,238,72,237,139,
+126,123,244,253,216,35,31,175,3,56,28,86,84,152,114,12,100,127,184,221,58,244,243,142,56,56,207,97,198,105,227,237,25,225,226,7,174,60,156,227,183,247,143,175,56,246,234,122,0,89,49,222,117,41,122,167,
+176,54,209,119,227,29,6,15,61,112,78,57,230,145,97,186,227,43,124,8,28,3,28,99,57,228,112,16,254,3,190,112,7,74,69,55,64,99,204,132,245,233,111,39,61,58,158,216,246,234,125,170,64,39,36,228,193,237,251,
+185,128,56,237,143,47,131,252,253,120,205,0,42,199,38,48,82,240,145,220,198,188,19,147,146,22,14,189,57,253,8,197,72,99,155,105,59,53,18,51,146,81,16,128,7,111,245,11,236,50,72,32,244,167,42,200,51,184,
+67,211,180,119,25,35,60,115,180,15,175,7,212,99,60,78,168,203,247,97,139,158,219,37,231,56,61,208,118,235,211,215,138,0,172,20,140,18,218,146,241,233,26,227,159,104,215,30,157,120,199,229,44,108,23,254,
+91,106,91,79,81,231,1,158,191,244,203,158,249,199,189,89,62,104,233,109,0,192,24,207,153,147,129,158,209,63,233,207,94,5,76,158,113,228,91,91,251,124,210,140,30,167,164,11,235,254,25,160,8,149,208,30,
+103,212,198,79,67,51,14,196,127,207,44,16,65,193,244,200,235,134,204,194,104,115,254,182,241,187,31,223,129,146,123,16,233,142,216,35,156,242,121,53,48,107,160,56,181,131,211,25,151,30,185,229,9,199,28,
+3,200,231,20,158,124,152,203,91,218,143,83,137,91,142,156,98,50,71,25,61,190,153,198,64,35,243,96,234,76,191,86,150,54,57,62,152,92,231,63,90,114,92,89,231,156,183,110,93,129,29,15,37,19,61,241,146,63,
+74,153,14,224,72,130,38,200,232,18,102,231,142,184,133,128,29,121,198,122,123,83,182,185,249,126,202,14,120,12,145,203,156,30,216,48,130,15,28,227,3,142,6,104,1,86,230,200,122,3,199,33,221,178,71,179,
+197,129,245,253,113,79,51,216,30,70,220,245,63,49,3,175,252,4,30,79,126,58,247,52,223,45,213,177,228,48,56,239,111,43,142,123,127,171,39,232,49,208,224,226,128,37,57,2,218,67,232,4,18,129,238,71,238,207,
+94,157,59,15,226,38,128,23,206,180,57,200,143,216,150,194,156,140,14,72,1,114,51,157,160,243,200,201,53,34,189,160,231,228,25,7,238,203,43,15,79,225,108,31,95,76,211,23,237,32,127,199,180,251,122,0,45,
+229,56,235,131,159,47,191,160,235,199,29,106,85,19,103,38,11,164,111,85,180,156,145,201,227,38,32,7,3,229,57,56,61,122,98,128,20,27,62,120,79,196,92,30,56,244,110,195,28,231,158,159,73,84,91,0,14,232,
+114,0,198,26,64,70,115,144,3,200,72,235,192,207,124,250,154,140,165,192,193,43,118,65,231,6,214,99,142,58,28,145,233,128,0,28,99,35,128,105,2,200,65,13,246,156,241,128,109,164,198,61,198,51,159,92,146,
+15,167,114,1,56,16,125,71,170,57,57,29,127,137,137,39,174,59,231,159,122,157,86,212,103,230,153,78,71,73,157,113,255,0,143,28,99,167,76,15,110,244,150,57,15,83,40,231,157,214,210,1,142,156,18,6,51,140,
+158,113,156,126,50,121,114,47,70,36,116,230,218,67,141,188,245,89,20,14,61,64,57,25,61,168,2,232,107,97,156,73,114,188,228,102,235,211,61,137,0,113,223,57,226,157,186,28,228,92,93,122,255,0,199,218,17,
+131,237,156,118,236,50,51,234,14,41,168,108,141,210,141,196,227,152,28,12,245,228,249,231,143,212,1,233,82,172,140,191,199,27,17,215,228,144,99,30,167,205,110,56,3,24,20,1,100,48,7,43,52,248,231,173,194,
+47,231,151,99,158,51,145,235,211,181,73,230,174,126,105,229,198,7,91,133,235,215,232,113,236,51,250,212,2,103,206,3,198,51,158,237,211,212,15,59,140,231,211,7,7,138,113,148,224,22,146,48,65,7,60,0,57,
+231,57,144,147,235,232,62,156,80,5,161,60,96,127,175,220,72,227,124,192,227,146,59,140,122,241,199,92,142,245,58,221,48,81,137,98,81,216,11,172,100,251,1,129,207,24,62,160,28,28,115,159,231,73,252,55,
+17,131,216,13,132,19,207,97,112,15,185,199,7,7,35,213,226,73,7,222,184,132,247,0,43,228,117,224,145,112,120,237,211,183,83,138,0,186,110,228,3,253,100,100,158,132,221,103,166,56,224,143,231,252,169,5,
+204,164,253,251,96,122,252,242,73,215,183,204,9,63,175,212,129,85,68,175,131,251,212,110,125,31,39,223,38,67,142,196,14,120,253,94,183,14,184,196,138,14,56,218,123,28,103,166,0,199,67,156,126,184,160,
+11,70,230,224,103,18,216,17,142,20,205,49,7,158,224,128,8,29,249,61,123,158,105,223,104,148,247,211,177,223,239,114,120,231,150,192,250,147,142,79,165,87,23,151,28,140,185,25,231,14,234,59,116,249,88,
+103,63,81,207,3,209,223,107,155,188,108,222,191,233,28,227,158,197,20,227,161,32,247,199,52,1,58,207,46,120,109,44,244,206,124,227,129,200,232,6,51,143,175,183,173,41,145,185,222,218,96,60,16,9,186,255,
+0,208,118,244,224,96,112,7,165,86,55,172,48,10,72,15,168,185,83,142,252,3,32,28,99,140,99,183,57,3,17,125,169,253,46,7,166,38,7,183,24,2,64,126,92,241,140,208,5,224,224,31,150,109,44,255,0,187,246,176,
+65,236,57,43,206,51,216,103,182,105,222,100,216,202,201,167,251,145,246,166,60,119,229,176,58,224,113,223,29,205,81,91,158,120,243,178,71,87,184,60,17,142,72,243,198,15,174,63,26,86,184,224,110,105,14,
+57,226,228,175,127,95,56,227,160,247,250,241,64,23,24,200,216,203,217,242,70,74,52,163,161,235,243,18,71,28,244,29,193,25,56,46,216,228,255,0,175,179,3,174,50,91,60,99,24,57,24,199,168,60,96,122,214,89,
+188,234,1,159,220,27,228,227,211,172,156,156,243,147,212,14,252,26,85,185,147,170,25,186,96,237,188,131,39,57,224,102,97,128,57,227,175,61,0,28,0,106,24,164,224,249,246,125,15,100,25,25,199,82,159,204,
+158,253,56,205,103,132,3,204,177,251,21,88,88,0,58,227,13,207,183,3,233,85,141,212,217,3,23,36,244,249,111,97,199,31,89,187,142,50,73,200,227,6,152,110,28,31,187,117,145,211,253,50,2,57,228,158,38,239,
+142,163,28,31,165,0,88,107,108,228,9,241,255,0,108,147,7,242,254,127,161,168,30,209,137,36,72,167,168,251,131,158,57,56,98,49,159,212,251,210,11,153,70,48,110,64,24,255,0,151,168,136,228,116,194,202,64,
+207,94,72,207,36,140,83,133,197,195,227,6,99,234,13,196,120,231,241,126,153,228,158,15,160,192,160,8,126,199,32,224,75,220,156,121,112,158,59,31,154,54,199,108,250,227,173,53,173,103,61,102,114,61,4,22,
+189,58,17,147,110,73,63,152,53,99,206,184,198,223,159,142,57,186,207,61,15,202,168,71,60,142,9,224,244,38,152,210,221,156,5,220,64,236,102,103,32,122,99,202,7,182,113,156,158,248,232,0,42,27,18,65,45,
+43,103,167,250,155,80,195,35,185,54,153,61,135,126,166,163,251,30,57,89,164,92,240,127,119,105,147,207,36,226,200,159,126,199,144,51,86,90,107,222,233,33,32,147,243,121,196,100,245,228,46,57,250,122,113,
+192,167,9,47,27,239,67,145,220,121,87,13,208,100,231,16,246,3,185,247,234,104,2,147,89,177,251,210,73,32,235,242,219,64,73,192,246,177,111,208,118,252,4,31,101,193,200,251,64,206,127,229,128,29,187,5,
+211,199,185,227,158,188,86,137,55,0,12,218,144,14,79,54,247,135,35,56,57,11,110,113,156,99,211,184,24,168,202,204,221,32,69,250,217,223,147,142,122,98,1,235,254,114,104,2,175,217,219,24,83,112,7,78,109,
+230,60,140,156,140,89,243,211,235,207,173,53,173,92,12,17,41,61,183,91,76,7,94,114,77,144,62,188,114,51,197,89,49,92,127,207,40,201,28,128,108,47,206,15,208,219,128,1,227,161,201,35,3,28,84,76,147,47,
+222,138,46,15,95,177,94,144,9,239,194,18,59,140,247,3,166,104,1,130,25,23,25,18,144,58,133,134,227,142,123,98,212,125,8,56,235,198,122,82,144,227,254,126,193,255,0,102,43,238,153,255,0,102,16,61,250,128,
+70,49,64,66,70,74,160,35,63,118,202,252,140,224,231,254,88,156,250,243,207,243,168,154,54,99,157,185,25,232,52,219,179,211,167,45,24,254,67,174,56,160,4,96,70,114,183,237,142,155,83,82,80,115,199,63,187,
+30,157,123,254,148,132,145,146,162,255,0,56,233,141,71,185,231,37,135,63,135,215,234,20,61,10,1,140,240,108,37,3,242,60,143,174,49,205,70,74,131,192,4,142,255,0,99,113,129,237,242,18,57,227,158,227,175,
+38,128,21,150,66,51,179,80,60,255,0,207,45,64,126,91,99,56,25,199,92,245,28,142,51,89,247,143,224,212,179,208,16,151,253,120,207,88,6,51,156,19,219,7,145,205,72,206,196,144,89,241,130,115,246,121,136,
+207,124,128,139,158,188,245,3,145,142,69,55,205,199,2,86,24,237,246,89,142,49,201,24,198,123,112,127,145,234,1,17,103,110,113,169,122,158,47,179,212,250,71,158,184,206,70,48,122,118,17,58,250,197,126,
+121,254,47,180,169,231,60,2,214,228,231,175,13,248,241,82,53,195,130,75,72,197,121,198,45,101,3,223,162,158,121,56,62,217,230,171,181,226,175,241,224,250,139,107,130,115,238,22,35,199,124,241,211,233,
+144,7,238,35,56,130,251,158,51,190,127,166,71,250,40,235,158,254,164,122,138,99,16,192,126,226,253,179,215,62,119,95,81,155,51,156,245,25,224,241,207,28,52,106,9,215,204,112,64,60,155,107,210,59,119,88,
+58,30,189,113,199,80,41,31,83,35,24,145,198,50,114,45,111,6,73,193,255,0,158,42,125,72,227,175,76,140,208,3,120,7,155,91,211,212,140,231,219,131,186,203,131,235,200,246,237,150,109,126,2,217,220,227,31,
+196,145,158,71,7,173,170,227,182,105,70,173,32,28,201,46,125,162,189,31,150,35,239,143,66,126,184,166,157,82,108,241,44,231,140,253,205,71,190,122,98,3,233,237,237,64,15,196,137,255,0,46,119,28,227,129,
+28,103,183,39,34,215,215,158,58,103,30,134,163,50,184,60,219,220,40,199,67,176,96,243,208,125,156,127,137,35,161,166,157,74,225,190,236,183,160,129,216,106,32,115,159,72,58,113,156,115,216,245,166,13,
+74,227,159,222,94,30,227,119,246,137,193,227,25,220,188,253,56,233,216,226,128,38,243,100,199,16,203,236,74,196,221,120,198,124,180,24,246,206,58,211,132,210,46,63,114,235,159,88,160,110,157,122,131,201,
+235,156,123,103,214,177,213,46,135,34,91,160,51,207,55,216,30,248,24,28,227,211,158,248,166,29,86,228,31,154,123,158,114,126,89,111,184,199,94,173,208,127,159,96,11,198,229,187,70,216,245,17,219,12,245,
+56,249,113,200,234,115,207,108,224,83,13,203,143,249,236,167,176,242,224,108,227,24,200,50,30,131,167,176,25,233,205,97,170,220,31,249,109,116,123,100,207,120,0,207,76,159,52,113,216,96,12,1,201,238,20,
+234,87,63,243,222,92,146,48,60,235,198,235,142,127,215,244,29,15,7,24,228,224,112,1,56,188,153,115,243,72,185,206,126,88,151,241,32,72,113,234,112,61,15,65,82,45,236,204,48,110,37,29,121,13,8,61,207,121,
+73,245,227,6,168,155,219,131,207,155,56,25,25,203,220,156,158,157,174,58,12,247,245,29,7,86,181,204,173,255,0,45,27,63,237,125,165,177,244,255,0,72,233,199,183,243,160,13,15,181,77,131,186,226,99,201,
+231,237,48,169,235,211,229,201,237,239,129,219,21,19,94,204,56,243,228,61,134,110,178,58,142,224,128,122,147,192,255,0,235,231,253,170,64,112,100,76,122,21,185,62,185,63,235,137,221,235,140,142,115,130,
+41,62,215,131,243,73,107,192,255,0,150,145,77,192,245,230,83,131,211,169,7,28,140,208,6,128,187,148,231,247,228,145,156,15,180,49,61,134,6,214,227,184,224,142,121,199,60,71,231,78,73,59,223,39,130,22,
+119,25,233,219,119,113,219,208,244,232,42,139,94,175,36,73,96,65,61,224,147,175,108,97,137,199,78,65,57,247,60,212,127,109,32,147,230,88,31,97,13,200,199,60,112,1,92,3,233,156,147,158,58,80,6,153,145,
+207,4,146,79,81,246,201,199,182,126,82,0,25,57,200,110,221,69,70,114,14,54,55,61,9,188,186,250,127,207,66,184,231,169,62,158,181,67,237,200,65,4,89,253,66,76,50,125,112,99,39,159,126,189,77,40,188,29,
+163,182,3,216,74,79,126,131,104,207,79,243,145,144,11,167,126,49,177,8,199,27,174,238,65,193,199,112,73,36,156,247,7,140,142,49,134,18,71,252,179,136,159,79,182,206,64,199,4,12,163,28,224,118,239,206,
+59,152,62,219,34,243,177,14,71,0,7,198,7,4,125,245,111,114,54,231,29,129,24,165,109,69,151,157,137,211,60,9,249,39,145,210,66,57,227,147,143,67,238,1,33,118,232,32,132,103,60,27,169,79,81,239,22,78,121,
+35,208,119,239,77,50,56,4,24,173,143,29,222,70,32,99,215,203,250,245,28,227,190,5,67,253,163,48,231,201,76,113,200,51,129,211,3,157,252,19,247,113,142,163,57,200,197,60,106,51,48,255,0,84,192,116,192,
+55,184,207,60,28,56,28,227,174,225,142,220,98,128,39,89,65,200,49,219,227,142,66,185,35,235,199,124,117,231,175,76,231,47,243,20,227,42,131,160,32,70,195,24,233,214,35,142,185,31,49,233,216,26,173,246,
+249,137,192,142,231,56,206,229,55,156,12,244,255,0,92,61,120,252,5,61,46,238,219,36,45,232,3,56,44,110,142,73,3,60,25,206,15,29,129,235,212,228,208,5,133,146,53,206,85,7,24,36,196,79,29,135,250,158,121,
+62,190,185,245,167,249,201,216,197,128,63,231,216,146,56,227,147,30,48,122,242,49,211,176,193,128,220,92,129,214,240,130,123,35,251,245,221,47,39,57,231,147,236,1,166,155,139,174,198,243,169,235,28,135,
+166,1,32,35,55,229,220,208,4,255,0,107,0,241,36,64,122,125,141,70,8,228,96,180,56,63,215,161,200,201,167,11,246,24,1,227,61,192,22,17,177,231,142,241,244,198,58,1,142,126,181,2,207,116,57,243,238,84,156,
+228,121,51,245,206,121,36,158,63,15,113,216,83,140,211,30,13,228,251,143,111,179,57,60,247,63,187,60,251,159,174,122,208,5,175,182,72,216,255,0,85,147,192,45,166,70,65,29,71,221,76,231,36,240,79,181,56,
+79,49,31,50,192,217,193,227,75,97,199,94,6,59,116,198,113,211,138,168,26,224,242,183,211,14,159,242,193,120,246,32,219,231,143,126,188,254,50,129,113,183,254,66,50,231,191,238,35,227,215,254,93,207,94,
+131,159,234,64,4,166,224,231,254,61,212,131,212,255,0,101,77,250,109,94,63,46,255,0,141,11,112,199,59,109,215,211,35,75,184,231,219,24,193,255,0,190,120,231,159,155,152,194,220,176,0,106,13,223,173,181,
+185,56,199,3,152,129,199,94,220,123,226,164,88,110,88,255,0,199,250,131,147,247,173,96,35,145,207,68,238,61,207,215,208,1,76,243,14,5,170,31,99,164,204,113,219,159,145,121,206,56,36,231,29,120,229,4,215,
+100,141,182,176,140,143,186,52,201,243,143,124,140,3,233,128,15,31,82,84,195,115,156,155,184,125,191,209,97,7,25,31,236,17,158,59,131,216,116,197,57,98,156,158,110,34,238,50,99,64,49,244,17,242,125,8,
+3,28,14,57,160,0,73,126,127,229,218,49,215,7,251,54,110,79,126,144,182,14,51,215,62,153,167,131,168,30,126,205,27,99,211,76,184,207,230,45,200,239,143,240,205,56,64,237,214,234,223,234,85,6,48,125,10,
+175,211,35,62,254,180,190,68,192,252,183,48,55,169,9,31,124,156,147,230,3,199,62,253,59,18,8,2,237,212,78,115,106,189,51,129,166,92,130,127,242,92,28,123,99,255,0,174,210,154,136,36,136,72,7,29,116,203,
+174,167,147,201,128,156,122,242,0,206,56,34,165,22,247,4,0,38,133,134,9,192,142,44,96,31,247,207,161,235,220,231,234,211,12,138,126,103,141,135,115,229,71,142,123,96,72,57,60,228,227,190,59,226,128,16,
+197,125,142,84,131,131,210,194,227,174,49,192,242,64,227,175,24,29,253,1,85,138,255,0,143,152,14,121,205,132,221,8,193,227,200,3,249,159,175,20,193,27,147,192,24,224,100,44,75,219,28,129,38,113,142,51,
+140,103,154,145,109,221,134,118,185,231,63,40,80,7,174,78,224,57,39,167,210,128,23,200,191,201,38,116,28,112,13,132,189,62,158,73,25,247,192,61,169,190,77,239,221,51,167,167,252,121,79,131,201,60,102,
+50,6,121,193,228,244,250,137,76,14,58,9,56,254,233,140,158,49,207,50,12,12,31,92,113,145,64,86,82,70,233,179,239,229,142,70,56,255,0,88,196,128,64,201,61,15,56,52,0,223,179,93,142,5,194,19,233,246,55,
+63,142,26,50,63,30,191,64,106,61,151,74,114,110,99,4,12,31,244,38,192,233,217,80,117,57,193,32,244,60,244,169,153,73,201,204,231,175,221,17,48,35,36,255,0,207,80,61,72,4,125,121,38,152,3,130,65,91,159,
+167,151,9,252,72,243,122,244,39,147,216,140,3,64,17,254,252,128,12,221,48,50,182,204,163,167,251,153,199,174,49,158,216,164,34,96,71,250,79,76,127,203,38,29,243,221,79,65,142,191,208,102,80,101,29,97,
+187,97,234,18,17,199,231,248,245,228,247,199,20,201,91,0,49,182,187,231,251,200,152,245,39,114,129,207,208,242,65,237,208,1,68,142,188,189,200,60,100,110,183,97,211,182,74,140,245,228,12,3,206,65,28,211,
+190,212,195,131,40,110,7,72,55,18,61,115,146,121,227,159,195,189,87,243,122,102,25,253,254,82,127,148,216,57,227,158,199,60,118,167,135,0,145,178,85,3,161,104,217,187,250,100,228,122,99,241,227,128,1,
+55,219,25,121,18,50,247,4,90,128,127,32,167,60,99,167,78,48,112,5,56,222,182,51,230,76,227,218,2,58,140,241,251,163,129,233,242,243,199,99,80,121,168,1,37,79,76,157,214,175,140,142,156,137,57,206,78,78,
+7,56,237,197,70,110,32,234,200,135,166,73,183,148,126,91,100,235,140,113,142,190,157,40,2,232,191,147,140,25,7,82,67,71,142,122,228,126,232,116,206,122,130,7,78,58,135,81,151,63,242,212,250,0,24,247,231,
+129,15,76,244,224,12,30,252,145,68,92,91,246,17,142,255,0,241,235,112,127,44,62,79,35,212,119,247,5,69,197,182,238,124,144,59,230,210,232,126,155,206,59,114,7,62,217,228,2,250,106,18,18,62,91,147,129,
+131,130,227,183,83,136,71,191,39,167,76,245,195,190,216,204,126,104,174,200,193,63,235,229,193,233,219,104,239,158,72,245,60,213,85,186,182,255,0,158,208,244,25,255,0,69,189,24,193,224,224,28,15,110,79,
+62,180,11,171,60,224,220,192,50,71,222,182,189,63,158,64,61,57,231,160,252,128,5,223,183,56,24,17,221,15,65,231,202,113,239,192,29,122,131,244,207,112,90,111,164,36,124,183,96,118,255,0,72,153,58,227,
+168,0,147,201,234,49,200,207,165,86,251,69,161,198,219,155,99,158,230,211,80,4,126,67,28,30,156,250,242,56,169,133,213,191,24,186,183,192,25,207,145,169,14,61,49,180,140,142,123,245,233,236,0,27,166,99,
+243,27,241,233,254,147,114,64,238,64,192,198,15,191,185,193,205,61,110,72,199,239,46,135,24,230,234,236,243,144,57,3,3,35,215,159,228,2,27,152,79,34,230,220,231,145,251,157,68,117,207,64,84,15,200,112,
+120,7,168,0,184,140,18,68,177,244,234,167,80,25,232,57,82,125,51,193,193,199,224,104,1,230,233,186,249,215,36,250,181,213,201,94,61,137,31,231,145,198,114,255,0,180,202,64,196,211,12,240,113,44,167,145,
+192,56,46,114,51,159,115,235,234,145,220,198,220,121,209,231,158,2,223,158,157,143,39,166,57,228,231,244,50,249,138,120,89,80,250,124,183,235,142,184,7,229,108,254,28,224,113,220,0,1,103,151,130,102,152,
+228,96,100,185,201,3,158,224,158,50,15,81,239,198,106,95,54,82,48,89,246,142,78,253,195,161,228,96,74,121,239,208,142,160,142,213,92,145,187,169,62,191,53,239,35,35,160,17,228,14,56,39,56,198,49,200,203,
+112,164,252,209,6,227,169,123,190,158,131,114,123,159,78,212,1,105,90,76,159,222,16,123,102,55,97,199,35,7,204,233,208,131,156,250,243,154,149,94,80,64,105,92,131,211,16,19,140,12,112,75,176,60,244,24,
+207,61,42,178,68,185,37,97,110,252,15,56,183,78,185,37,73,252,136,7,7,62,143,49,190,127,227,222,92,118,57,60,18,48,70,90,96,127,95,113,236,1,120,51,16,62,121,241,219,17,48,36,247,60,56,3,143,83,234,6,
+104,46,195,171,72,122,17,156,130,58,158,50,88,118,7,174,64,230,170,14,219,225,155,143,238,180,124,140,142,48,110,0,227,29,243,206,104,0,99,136,238,135,61,91,236,238,115,236,90,102,199,174,40,2,226,150,
+39,24,153,193,199,66,192,116,62,227,183,29,120,237,193,205,60,71,147,254,166,82,223,237,77,40,31,172,128,117,237,143,110,121,170,129,72,4,236,184,3,142,54,219,231,167,253,124,103,177,244,56,199,67,64,
+69,198,118,221,140,103,0,8,0,25,207,92,220,99,223,161,35,233,192,0,184,96,220,112,214,242,224,99,63,233,51,240,113,254,204,131,39,167,95,79,166,16,195,24,39,247,19,131,158,113,115,119,211,142,135,237,
+29,250,140,129,131,233,85,178,185,31,37,227,0,7,27,45,72,31,80,110,1,25,224,31,195,30,239,86,29,161,187,233,156,4,180,7,241,31,105,52,1,41,138,17,130,82,101,198,121,55,119,100,251,252,190,111,25,30,252,
+242,71,106,113,75,124,124,222,118,0,206,12,247,67,60,244,27,167,28,147,211,60,119,192,231,49,249,174,79,16,223,14,184,4,89,16,51,236,110,127,150,63,90,140,207,32,124,121,55,100,117,193,91,33,233,223,237,
+71,143,167,61,14,15,82,0,242,45,179,128,24,100,240,30,234,113,233,206,126,210,14,56,228,31,229,154,97,91,114,72,99,0,3,179,94,206,73,246,32,220,17,142,196,127,58,85,153,251,219,220,0,79,117,178,60,115,
+211,253,35,61,186,228,227,211,52,227,35,127,13,189,201,207,124,89,30,231,179,93,175,3,158,163,39,31,141,0,11,29,183,100,181,233,195,121,242,54,59,255,0,207,82,115,244,56,206,72,28,230,165,217,8,82,75,
+219,1,142,190,100,167,24,235,214,67,216,118,60,118,170,229,229,193,205,172,231,254,217,89,6,35,169,231,237,160,131,159,67,215,218,144,201,42,143,248,244,186,0,123,91,124,195,240,188,35,3,158,122,116,160,
+9,193,132,16,4,182,167,219,115,158,167,28,6,127,208,10,113,54,231,1,167,182,7,29,149,178,62,128,201,199,97,236,15,185,205,97,35,182,113,109,113,211,60,155,80,7,168,63,233,63,208,243,158,221,24,76,163,
+165,181,222,57,201,223,106,0,250,226,241,78,61,72,7,244,160,11,222,101,176,36,25,224,227,215,0,159,252,136,15,32,241,142,122,116,235,74,37,182,227,107,195,207,60,5,39,142,231,51,147,244,36,30,185,231,
+173,81,14,79,6,218,232,158,188,155,102,245,207,63,107,3,29,58,118,207,214,167,1,71,88,166,231,140,5,180,61,115,158,151,185,231,211,211,143,168,4,198,88,114,7,155,24,233,140,176,80,79,160,10,217,231,174,
+1,198,105,225,144,255,0,203,104,71,29,9,148,227,35,158,153,192,61,0,7,31,204,192,8,207,202,183,64,103,142,35,3,242,23,93,186,103,61,206,15,83,65,201,200,204,227,140,224,146,59,231,60,220,242,122,250,122,
+245,160,9,200,137,177,186,88,207,25,192,138,76,103,142,248,29,122,100,118,245,29,32,62,79,3,206,80,0,237,20,167,243,61,65,231,174,125,179,198,74,124,223,221,144,240,112,68,141,250,98,102,238,127,3,76,
+43,32,193,11,40,231,27,132,142,51,223,144,58,12,245,249,189,121,160,4,100,140,224,249,200,222,229,100,206,7,92,17,140,2,59,227,191,95,68,242,225,228,25,211,233,185,135,190,112,65,4,231,61,179,215,25,25,
+1,249,185,3,229,50,158,167,27,152,253,120,36,158,135,3,57,254,116,121,151,195,128,146,18,58,19,128,58,123,156,156,240,1,218,121,28,113,205,0,65,136,58,25,149,142,78,0,152,231,174,122,136,203,14,188,99,
+29,58,1,76,101,183,110,12,185,110,6,4,210,19,193,227,57,133,134,65,3,177,231,146,58,85,175,55,81,199,7,111,174,125,115,234,188,144,57,29,48,14,61,133,53,228,212,27,254,91,149,61,14,31,3,182,49,145,233,
+158,8,4,251,10,0,169,229,196,120,222,74,140,140,52,146,47,94,196,11,76,156,113,142,113,233,129,197,39,147,15,25,49,158,115,143,54,108,243,142,153,181,233,193,39,57,246,29,105,206,218,128,24,23,146,103,
+156,254,245,176,49,238,172,14,58,114,49,199,173,52,54,162,62,99,116,113,207,6,92,224,159,64,204,59,118,199,7,241,32,1,172,32,95,188,177,103,218,86,56,60,129,140,90,12,115,215,36,231,212,140,226,54,48,
+17,145,26,158,120,34,121,0,233,232,182,216,199,225,207,90,155,125,239,121,167,108,100,97,93,84,19,211,130,93,219,29,123,103,145,140,231,134,25,239,64,198,251,192,122,12,62,64,35,61,0,31,142,114,49,156,
+3,208,16,6,101,48,112,174,61,150,121,8,231,235,104,15,24,231,39,24,31,90,107,58,140,103,127,108,102,105,56,252,13,177,232,63,14,113,206,120,148,77,126,127,229,173,192,232,121,221,223,215,44,163,166,113,
+215,182,48,49,78,105,47,8,195,60,185,234,121,56,239,147,134,144,251,103,160,206,114,57,228,2,176,151,184,89,78,50,15,204,237,143,169,22,248,201,193,198,121,252,104,47,184,125,210,72,57,221,251,204,129,
+216,28,90,128,7,63,204,244,36,7,179,72,65,38,105,179,211,114,205,24,29,7,111,55,147,199,175,248,213,119,144,3,134,154,228,245,255,0,150,171,207,28,0,124,195,193,244,193,28,142,7,112,5,249,134,118,179,
+12,117,201,144,96,146,51,187,22,227,57,245,200,250,241,69,70,100,81,209,174,137,3,39,50,156,123,156,42,31,234,59,96,81,64,30,62,183,51,49,249,90,44,115,210,73,14,115,216,143,177,244,31,80,58,129,210,159,
+231,220,113,185,163,219,199,1,164,227,235,155,113,252,185,250,112,103,99,156,97,176,72,206,4,112,33,31,247,205,168,227,242,207,98,122,81,178,70,31,44,175,142,156,45,191,215,254,125,212,240,126,159,74,
+0,136,220,74,7,31,76,6,124,31,206,2,7,169,192,3,63,133,47,218,31,169,7,160,254,25,89,121,30,214,196,240,50,115,158,61,58,10,120,142,78,50,238,199,63,47,203,142,253,14,200,135,60,142,156,28,100,247,37,
+251,100,233,137,120,198,72,46,48,122,117,242,250,118,244,235,215,173,0,71,246,131,145,215,24,207,18,76,189,176,113,155,96,15,61,179,129,252,149,102,35,24,45,215,188,204,163,185,56,6,53,110,121,232,56,
+239,210,165,80,248,225,25,179,156,229,177,199,124,230,46,120,31,135,32,227,188,128,55,82,138,0,61,220,131,207,175,238,9,244,29,122,117,29,48,1,23,218,91,128,75,128,50,64,23,88,7,140,231,230,133,192,247,
+224,244,231,20,9,193,198,123,227,172,168,127,12,152,20,30,131,35,29,178,121,60,77,201,251,170,156,103,254,90,5,0,96,158,65,131,158,135,183,56,56,197,28,142,171,16,192,206,62,210,185,56,244,253,200,39,
+183,255,0,88,230,128,32,50,227,60,70,57,231,116,136,71,39,156,129,14,64,199,97,158,70,59,212,162,225,127,185,11,125,88,17,250,196,9,255,0,235,244,24,169,134,8,224,196,125,154,118,199,183,240,0,61,128,
+227,60,10,144,3,156,249,150,184,61,188,217,91,241,226,34,7,208,254,156,96,2,169,184,95,226,130,216,224,143,249,231,158,51,129,254,172,146,58,242,71,7,28,10,95,180,41,57,48,218,96,242,160,164,39,25,207,
+32,148,200,245,235,159,231,87,0,24,255,0,93,111,220,124,178,206,61,178,64,183,57,35,25,200,252,51,221,225,80,158,110,32,200,28,3,35,245,231,169,107,96,125,250,246,246,205,0,84,89,34,207,49,89,103,158,
+8,129,58,115,140,112,79,62,140,6,125,121,169,50,135,172,54,120,57,192,81,3,47,126,251,79,95,76,231,145,235,83,24,243,210,230,219,57,28,121,228,31,252,121,23,175,166,56,167,172,108,57,19,65,219,145,56,
+227,175,78,23,249,143,78,123,128,87,13,26,142,35,179,239,247,162,182,36,253,6,194,115,207,28,115,219,165,74,175,8,59,76,118,124,127,15,216,227,63,168,128,103,215,245,35,166,101,216,71,91,164,245,255,0,
+94,196,14,157,183,100,224,227,29,185,252,106,68,112,152,63,105,235,215,108,146,17,158,48,70,215,7,30,248,245,31,64,8,131,195,255,0,60,236,240,122,21,181,136,17,142,122,152,88,31,251,231,175,74,112,218,
+196,1,20,12,121,225,45,225,7,142,249,16,40,25,233,140,117,227,138,152,77,187,24,157,139,116,27,77,193,239,199,33,201,25,224,224,100,99,62,156,184,201,32,25,221,43,96,157,184,251,74,231,160,234,65,231,
+29,249,35,29,56,205,0,48,66,196,255,0,199,190,7,168,134,216,246,62,176,130,121,245,56,231,52,224,128,99,48,184,227,175,217,237,136,28,145,218,2,123,116,199,60,113,79,89,142,48,126,208,71,63,197,114,0,
+199,39,170,175,114,49,253,41,219,199,99,48,231,248,158,115,216,115,147,133,199,57,234,0,160,6,121,45,193,216,48,217,198,109,209,49,219,157,150,164,126,120,200,224,103,146,100,16,237,25,4,14,58,8,201,35,
+183,69,181,99,199,183,126,120,52,159,105,64,64,243,27,168,192,45,40,245,3,39,190,7,30,191,161,46,91,136,206,119,72,216,232,118,180,153,24,61,241,159,111,175,228,40,2,69,218,184,46,199,140,156,249,114,
+14,126,130,209,70,58,103,156,243,206,0,21,46,245,32,225,151,61,201,89,198,71,60,127,199,169,244,29,113,254,44,243,225,61,38,117,24,201,56,113,198,58,128,87,146,123,99,158,252,12,83,132,138,192,21,185,
+144,140,228,96,191,56,224,117,78,79,24,234,51,64,14,1,88,140,58,158,50,115,230,12,116,255,0,167,124,146,115,140,17,199,124,242,77,148,136,28,31,49,49,200,60,204,121,247,34,216,243,216,113,234,61,234,183,
+152,72,35,237,50,159,171,241,207,166,73,233,211,24,231,175,168,165,10,1,220,110,37,239,199,99,192,228,109,29,184,245,231,62,130,128,52,4,92,15,223,68,15,99,139,144,63,31,244,34,14,63,250,222,148,255,0,
+33,207,252,183,180,99,232,86,231,159,127,150,208,15,211,255,0,173,64,48,83,131,116,234,72,254,38,97,140,245,39,228,235,142,222,216,231,173,63,206,199,91,233,7,29,156,28,147,142,6,80,254,24,228,116,197,
+0,91,16,28,157,207,102,71,3,165,202,250,158,8,179,28,103,60,2,49,200,250,200,144,32,60,139,126,56,200,107,174,217,232,13,186,253,58,243,199,106,170,183,39,24,251,117,201,207,28,54,209,211,217,56,199,110,
+231,216,83,197,195,227,31,106,185,61,242,102,101,231,161,0,4,237,206,113,199,94,56,160,11,126,73,7,33,109,249,233,151,117,199,208,178,109,227,215,57,39,28,99,57,62,206,199,144,150,217,207,7,114,183,78,
+228,149,32,117,246,233,192,206,51,87,237,13,255,0,63,51,145,206,1,158,81,219,174,118,119,192,29,70,61,13,2,226,227,28,92,78,71,253,124,202,51,223,160,140,116,232,50,123,115,64,23,5,173,192,32,136,237,
+142,123,225,115,233,253,204,103,142,58,254,99,139,43,12,248,25,134,209,123,3,133,28,140,115,207,3,61,198,56,29,250,26,203,51,185,0,63,158,199,182,110,165,0,99,212,24,155,168,35,128,65,250,228,80,37,4,
+255,0,171,147,36,99,155,233,7,124,142,150,140,115,145,235,198,71,20,1,174,34,144,129,242,89,3,223,10,14,61,248,35,160,228,228,243,199,181,48,161,4,238,138,219,254,2,16,99,167,92,221,167,234,58,253,106,
+146,205,179,159,46,79,252,24,200,167,147,208,3,103,140,14,252,145,201,245,169,150,112,78,12,115,103,25,192,212,73,61,120,31,241,234,156,114,123,224,122,116,160,11,24,139,141,201,108,51,255,0,76,227,35,
+191,7,23,131,57,239,212,253,123,185,76,32,127,203,161,35,0,228,68,49,245,205,240,238,78,123,231,169,53,10,203,24,25,54,243,49,28,101,181,7,32,251,228,64,70,71,35,175,110,71,38,156,46,33,24,221,102,222,
+156,234,18,119,193,63,242,234,121,39,57,199,56,233,142,69,0,79,186,53,251,173,98,115,156,110,251,49,35,142,156,223,254,185,57,230,156,179,236,57,7,79,252,18,211,57,246,2,232,224,251,231,142,58,241,81,
+45,197,183,24,178,114,70,14,69,235,156,115,255,0,94,163,57,237,130,15,78,157,228,23,8,126,97,101,49,238,7,219,156,122,246,251,63,81,142,185,56,245,245,0,155,237,59,121,2,199,167,83,29,168,28,158,121,251,
+80,228,227,169,56,24,235,197,72,47,118,128,67,233,234,73,236,45,115,215,167,252,126,1,156,116,0,227,158,252,212,34,117,60,27,41,249,232,26,240,227,223,4,194,58,118,39,223,29,205,72,38,98,14,203,121,23,
+216,221,110,39,7,7,147,24,207,30,153,239,205,0,56,223,19,128,101,177,30,131,101,161,227,142,153,189,62,227,160,250,113,64,190,56,225,237,27,142,66,165,176,206,120,228,125,184,115,200,228,12,115,212,99,
+20,7,145,186,69,32,35,166,100,200,252,203,38,9,232,7,127,90,113,89,15,252,179,96,15,114,195,175,28,114,227,62,252,119,254,46,224,15,91,246,28,121,150,105,142,159,241,239,244,237,120,196,126,103,174,51,
+197,60,106,18,156,15,62,215,28,19,196,32,113,143,250,120,96,61,72,193,227,147,207,72,140,18,14,4,113,224,246,50,1,142,121,39,7,3,156,231,175,94,149,31,150,196,96,172,10,121,200,222,152,61,57,56,25,231,
+39,35,63,78,115,64,23,127,180,153,71,51,193,199,28,44,39,143,248,12,157,57,3,142,189,189,222,53,105,114,7,158,188,116,216,188,114,51,158,38,29,49,216,99,168,235,85,22,222,98,6,36,132,103,7,253,99,99,60,
+117,198,222,58,243,223,240,52,125,138,236,242,37,131,31,245,241,40,0,113,201,37,177,248,231,208,114,48,104,3,69,117,41,14,15,218,25,129,207,67,38,125,123,79,128,78,50,121,192,238,115,65,212,92,96,139,
+167,94,185,204,147,3,145,147,213,110,51,208,100,103,28,12,156,227,34,154,89,78,7,205,44,57,228,113,57,60,247,193,109,196,244,232,9,252,49,138,151,236,78,195,253,100,93,199,50,227,39,208,1,19,12,250,123,
+227,156,226,128,38,55,242,17,145,115,59,118,27,101,187,32,143,248,20,253,243,158,7,62,252,96,251,116,156,3,45,207,61,139,77,206,58,12,125,163,60,158,253,241,223,131,81,27,23,199,250,213,36,2,48,36,224,
+243,142,79,145,146,49,211,31,83,131,209,203,102,163,230,50,194,49,199,51,0,125,15,31,103,36,227,219,142,49,212,208,3,197,236,224,113,52,220,17,247,141,198,49,145,219,205,36,231,212,103,220,83,95,80,184,
+232,101,148,251,15,56,243,233,143,48,122,243,142,125,122,98,156,109,99,234,39,133,78,6,72,156,156,30,223,242,228,217,207,208,227,25,228,245,60,133,25,2,100,56,61,4,172,64,231,60,131,96,51,211,175,99,201,
+4,224,80,4,107,121,116,221,29,135,39,4,199,114,79,111,250,106,163,223,57,239,215,213,5,213,231,76,130,51,159,245,51,142,224,117,107,160,57,29,122,116,237,83,125,156,112,124,225,248,52,217,30,255,0,242,
+14,254,191,141,35,65,142,124,210,65,238,76,188,99,220,217,0,115,131,199,29,123,156,208,2,121,183,196,228,20,255,0,129,66,71,211,173,209,239,234,163,249,154,140,201,123,212,136,8,35,178,124,160,245,228,
+121,163,24,31,136,235,219,128,197,143,227,7,31,237,76,115,248,173,162,143,234,125,122,83,90,51,198,36,66,121,201,47,57,199,229,106,79,167,167,233,154,0,67,53,225,207,250,130,51,206,33,46,7,208,9,51,250,
+245,244,57,164,19,222,224,29,144,250,127,199,184,198,71,160,222,78,125,78,122,250,98,163,100,144,96,121,208,140,100,28,189,215,56,24,232,45,134,79,61,122,250,82,252,248,193,158,0,49,198,227,122,15,190,
+72,183,198,56,198,7,76,28,245,160,9,90,107,227,202,164,124,131,192,132,140,243,206,48,195,129,129,198,58,250,156,83,26,75,254,133,19,60,109,83,19,116,61,73,0,177,247,199,212,158,188,192,243,186,127,203,
+123,115,206,56,55,164,103,211,254,61,200,61,14,58,145,223,190,97,107,169,23,172,240,12,240,65,91,238,153,255,0,174,61,199,175,25,193,200,57,160,9,204,151,224,255,0,168,67,216,159,44,145,211,176,39,60,
+99,29,56,193,57,165,51,94,96,102,5,35,3,59,98,136,12,158,188,49,4,3,192,238,125,112,70,13,83,125,38,127,215,219,15,95,221,223,30,189,56,40,63,144,247,197,39,219,79,123,139,108,113,129,139,142,163,211,
+56,62,191,224,104,2,99,113,116,63,229,217,58,156,225,145,71,227,133,97,145,236,115,237,218,144,220,221,131,197,182,62,132,254,28,8,27,32,224,243,206,61,121,166,11,213,28,25,172,201,232,63,227,225,79,65,
+215,32,251,100,103,158,58,103,137,86,249,1,229,160,233,201,196,152,7,28,240,202,71,92,242,64,233,147,201,160,8,205,229,226,244,133,142,115,203,70,206,7,183,17,168,30,157,61,123,145,150,125,182,240,182,
+12,89,43,215,247,46,0,231,182,64,60,241,212,140,116,226,165,251,116,57,255,0,95,108,14,122,128,192,131,158,191,42,103,215,184,227,61,122,82,253,190,2,127,227,238,33,223,11,246,146,78,123,127,169,97,192,
+4,17,206,122,247,197,0,64,110,238,24,124,200,128,158,126,104,137,238,63,83,239,140,123,224,212,77,44,199,5,210,216,251,180,29,113,232,118,251,250,156,143,74,184,111,45,72,230,231,241,2,231,211,212,192,
+160,145,208,14,114,115,216,82,121,214,172,192,155,151,224,240,73,157,71,191,34,44,103,175,5,178,113,233,212,2,137,155,32,133,75,126,189,161,29,126,134,44,12,123,227,61,7,74,64,249,235,229,46,48,78,97,
+143,7,255,0,33,30,7,126,159,78,213,164,62,206,220,45,206,79,97,186,232,126,63,115,255,0,173,223,52,121,81,100,102,226,65,223,0,203,233,254,210,131,223,175,79,126,162,128,50,136,28,149,49,31,95,221,166,
+9,235,211,201,63,168,254,98,140,100,140,172,36,96,114,4,67,147,219,155,113,140,254,64,158,164,147,90,45,20,67,39,237,18,142,223,55,152,217,244,231,105,192,57,255,0,56,53,9,183,221,210,230,82,56,56,30,
+96,32,17,142,172,167,29,129,192,200,233,64,20,93,66,146,60,184,152,15,246,98,227,158,50,124,161,192,233,198,7,94,49,197,87,43,9,63,52,112,131,234,12,11,236,48,60,179,142,253,135,60,245,173,54,179,4,31,
+244,169,84,112,57,18,96,227,184,27,15,60,158,112,115,215,62,144,27,4,201,2,234,114,79,39,228,147,4,116,234,200,70,56,255,0,60,10,0,162,97,182,60,136,80,145,223,205,136,99,143,65,111,234,125,113,131,159,
+74,104,134,46,72,137,115,200,249,100,76,99,211,6,3,200,62,167,235,216,85,182,211,151,169,150,83,145,215,203,140,12,116,39,50,5,199,94,221,135,208,212,15,98,132,101,89,186,247,142,216,116,35,35,150,192,
+200,232,0,36,246,224,26,0,140,44,107,143,220,182,121,4,249,136,51,255,0,146,223,143,24,193,199,214,144,136,207,252,178,200,29,252,224,49,207,36,254,224,116,233,146,71,56,237,145,72,109,29,115,181,163,
+83,219,119,217,6,112,71,39,11,159,76,101,186,96,227,140,82,253,154,108,127,173,81,208,150,18,90,128,58,117,200,192,235,216,142,189,0,205,0,70,197,71,43,16,234,114,12,231,63,79,185,143,110,49,158,164,230,
+154,229,143,72,213,65,235,150,126,188,117,194,17,143,76,254,135,172,134,25,7,6,233,120,255,0,167,155,48,1,246,199,110,184,228,158,192,96,230,154,35,124,243,113,25,193,239,121,105,159,195,145,143,254,184,
+193,192,160,10,197,152,100,121,136,50,78,126,254,7,182,124,188,103,183,56,25,245,166,41,102,63,241,241,24,3,214,57,114,51,145,215,202,35,183,92,244,252,133,195,25,234,103,140,15,79,182,218,0,49,238,20,
+250,142,252,142,217,205,51,10,189,102,183,207,57,221,119,108,192,231,234,167,56,247,207,110,153,160,8,179,34,156,139,165,110,248,11,112,58,14,216,140,17,248,224,142,122,246,97,150,101,231,237,29,121,229,
+102,35,156,142,141,17,39,158,163,57,247,226,166,47,24,56,18,194,73,199,252,189,65,223,166,210,189,248,236,65,207,0,14,148,9,161,36,6,146,50,115,140,125,173,23,39,60,113,215,158,48,87,211,35,61,192,32,
+51,202,58,221,3,207,117,152,115,244,16,16,61,242,125,169,166,123,140,252,183,8,73,31,194,210,131,219,35,111,217,241,253,114,49,214,174,153,32,198,239,49,0,227,254,95,163,25,245,251,201,215,57,235,233,
+142,120,203,90,75,114,62,102,140,116,227,237,177,190,73,227,28,142,7,35,175,95,194,128,41,121,215,92,31,58,64,0,39,134,7,7,184,1,173,179,215,223,183,230,223,180,93,1,196,174,112,7,222,49,169,199,7,143,
+244,83,233,219,255,0,213,96,155,44,224,136,255,0,240,38,17,235,220,14,156,255,0,94,105,158,101,161,60,149,99,206,49,115,158,121,192,0,68,123,19,235,156,99,57,34,128,35,251,108,185,229,201,199,7,247,232,
+184,207,183,216,248,7,61,78,58,241,138,119,219,164,3,27,93,186,240,46,227,24,231,143,249,96,15,76,243,159,174,48,1,113,54,39,239,68,164,245,226,124,159,83,128,96,36,103,175,42,114,71,65,197,69,139,28,
+147,228,51,122,102,83,208,227,174,96,78,158,167,28,250,102,128,31,246,249,7,63,100,145,190,183,128,100,118,254,12,96,244,237,140,230,162,58,131,147,143,177,57,244,205,220,103,28,250,148,35,61,50,121,237,
+220,80,198,211,5,68,82,46,57,194,179,131,211,217,127,167,234,41,22,59,113,144,177,205,192,207,51,62,49,223,27,144,128,127,28,142,189,197,0,55,251,65,136,255,0,143,108,127,219,212,7,244,202,17,245,200,
+228,254,33,166,253,249,197,176,199,94,46,98,206,79,80,65,155,24,250,103,185,61,106,216,142,34,126,85,113,129,128,76,136,120,231,25,249,65,35,35,240,166,152,198,73,59,128,207,247,208,140,116,238,71,30,
+221,251,230,128,42,139,231,61,109,144,100,245,55,17,146,56,57,31,44,184,61,137,207,230,78,5,59,237,171,242,230,24,186,227,153,15,7,29,6,217,199,30,254,160,98,172,108,78,75,58,129,233,149,63,76,101,206,
+15,94,153,207,60,208,22,30,130,76,125,89,61,49,198,79,215,143,127,174,64,34,55,100,242,35,128,14,216,51,158,216,56,197,210,143,92,244,235,211,213,198,125,195,253,78,9,28,127,173,35,143,97,120,15,183,110,
+160,224,226,164,242,237,207,222,105,24,145,129,205,179,99,3,182,238,220,119,35,31,205,66,219,0,6,231,24,206,64,134,216,129,233,247,115,239,207,124,231,154,0,136,18,196,124,156,141,220,136,167,200,235,
+143,249,125,236,70,6,79,28,158,188,83,194,18,120,200,207,0,136,166,252,207,250,89,227,241,252,169,195,203,31,118,118,24,231,43,29,190,125,242,48,125,125,48,127,58,120,97,140,9,165,61,57,242,109,198,121,
+200,235,25,24,24,35,140,103,60,243,138,0,104,130,76,141,172,237,244,130,95,195,165,214,126,152,169,76,19,99,163,177,227,63,185,184,199,81,201,253,241,36,3,219,32,159,81,71,155,30,0,243,28,28,119,75,97,
+156,241,208,38,120,252,15,229,154,103,152,160,143,223,62,15,96,176,12,19,244,140,159,126,8,234,57,160,9,214,25,57,220,143,142,192,69,57,199,95,89,193,228,100,117,231,220,211,188,133,199,40,199,61,132,
+55,7,166,15,0,204,195,39,158,113,144,70,62,149,126,209,26,1,153,156,28,140,229,96,193,244,57,104,201,192,206,120,231,56,231,25,164,23,40,73,62,108,132,116,0,121,32,118,193,226,220,156,159,92,241,223,156,
+26,0,182,45,209,112,124,137,7,112,126,206,253,206,73,3,113,4,146,8,207,113,197,53,173,251,132,144,15,120,0,29,123,3,215,145,128,126,163,36,244,128,204,15,33,166,32,255,0,182,15,211,254,89,129,244,199,
+110,156,82,155,141,167,143,63,61,112,89,115,223,159,245,4,126,188,80,4,134,1,219,32,122,24,72,60,118,200,78,184,231,169,233,193,237,79,17,99,248,1,35,214,34,51,239,202,103,25,30,158,184,239,85,197,211,
+103,59,165,24,236,101,69,250,112,98,3,62,156,30,115,238,41,226,232,144,9,105,27,211,108,145,147,211,182,21,115,128,65,35,140,12,231,138,0,152,46,8,38,52,39,158,118,224,122,114,76,68,113,156,245,28,118,
+165,206,50,60,152,71,60,150,9,131,192,227,238,231,161,228,129,248,244,170,198,120,248,59,167,30,226,69,94,167,160,198,65,252,73,227,165,40,150,62,8,146,124,31,89,17,143,228,98,56,255,0,190,135,67,207,
+114,1,41,97,145,136,173,58,255,0,211,60,227,31,239,113,212,117,28,122,116,203,184,235,228,91,118,60,21,7,166,63,132,55,39,32,251,117,24,28,136,124,216,199,27,231,61,70,7,148,65,252,208,14,127,76,244,56,
+160,50,28,252,211,99,159,227,132,123,14,68,103,7,7,175,56,235,64,18,179,206,15,238,224,140,3,142,124,193,211,145,206,97,57,252,248,39,175,122,114,205,118,51,149,10,63,132,11,151,83,211,184,0,14,220,252,
+216,250,147,76,1,123,121,216,199,57,146,50,63,244,1,200,233,199,60,113,79,70,42,127,229,166,15,28,188,29,126,141,19,113,198,72,31,134,40,1,226,226,241,79,220,24,56,249,190,221,46,113,220,109,35,29,189,
+79,124,230,164,19,221,144,113,25,110,49,147,122,217,7,25,199,61,49,159,167,112,41,155,212,241,146,1,234,60,216,7,62,184,17,169,235,219,63,78,212,21,92,113,189,143,80,4,145,125,59,238,28,244,198,58,126,
+20,1,39,157,122,48,124,180,239,242,181,228,156,247,61,24,99,216,247,233,237,74,46,238,248,204,49,131,220,139,201,207,7,61,63,122,123,30,223,74,174,99,7,7,203,148,123,137,211,131,216,18,20,129,215,240,
+226,151,12,163,30,91,158,121,63,107,137,78,50,1,4,24,184,31,137,207,166,122,128,76,110,110,9,39,100,93,51,205,244,234,115,233,196,135,242,35,219,138,114,93,220,140,131,18,129,142,49,127,112,73,24,245,
+109,221,241,219,3,223,138,140,202,84,175,238,164,81,215,229,188,183,7,128,79,25,140,246,7,167,224,105,194,228,175,34,57,206,14,79,250,93,176,3,182,121,136,129,142,231,215,214,128,38,55,23,4,228,3,238,
+5,228,167,130,70,58,241,145,223,63,142,69,39,218,46,24,227,4,96,146,113,112,173,193,199,36,153,1,232,63,207,66,207,180,225,73,196,131,183,55,182,204,62,156,198,0,207,60,127,142,105,5,209,32,252,178,115,
+220,79,100,6,123,18,68,64,99,158,64,199,160,206,104,2,99,52,221,177,158,159,241,240,15,232,37,192,201,63,194,72,199,110,41,128,204,79,33,115,208,131,50,28,241,215,30,112,7,167,98,50,62,188,70,215,68,130,
+113,39,212,220,90,147,131,207,221,8,61,189,125,70,106,35,59,156,224,73,220,31,222,64,114,122,255,0,115,140,30,123,126,4,208,5,146,178,231,149,92,117,207,152,164,96,118,192,152,140,115,140,3,207,181,48,
+110,224,241,200,57,57,67,223,31,197,33,227,158,160,245,199,181,86,55,50,253,221,164,231,57,207,217,134,120,39,169,140,247,247,62,181,40,154,86,3,14,84,123,24,142,127,31,32,128,115,232,127,14,115,64,19,
+136,217,128,62,98,243,143,189,228,100,131,199,202,75,31,92,241,219,154,81,9,239,60,96,247,249,161,206,121,227,174,126,188,245,252,42,47,58,70,206,89,243,198,8,242,193,57,60,112,177,130,9,245,199,110,125,
+156,90,111,249,233,38,0,31,197,219,184,192,219,239,199,30,135,35,168,4,171,110,167,147,117,131,142,131,203,207,29,50,122,243,219,28,116,207,36,82,11,117,61,110,164,56,39,143,144,15,94,238,51,158,112,71,
+210,171,17,33,39,150,32,99,36,200,202,120,232,72,50,40,25,206,56,192,235,128,41,194,38,206,118,185,200,207,18,177,7,30,194,94,189,179,144,58,208,5,161,103,27,116,152,144,61,100,135,215,166,3,31,199,142,
+189,121,52,130,197,73,63,190,60,118,223,3,117,231,141,204,167,211,182,125,59,83,86,60,103,247,114,115,142,12,215,0,247,201,0,72,6,73,192,238,127,19,73,181,112,126,75,145,147,252,13,112,64,35,169,220,101,
+36,145,158,63,67,140,80,4,159,96,65,214,102,62,160,249,36,227,4,228,128,228,119,238,120,39,158,244,239,176,66,48,68,139,199,80,198,16,70,15,176,56,247,235,147,201,60,154,68,72,192,25,123,176,120,60,188,
+223,78,20,204,8,199,63,81,219,61,108,32,132,143,191,120,49,142,68,151,28,140,156,241,231,184,192,24,36,146,115,158,7,90,0,140,89,167,4,76,160,14,187,76,100,14,122,144,20,17,235,198,113,235,214,159,246,
+88,240,9,184,198,122,237,99,199,3,209,191,12,113,199,0,140,212,204,99,255,0,158,151,152,255,0,107,237,7,147,199,123,149,0,28,241,147,249,26,140,200,157,67,204,6,70,78,101,7,183,247,174,72,253,112,70,121,
+232,40,1,190,66,0,49,114,248,39,212,251,103,39,126,120,30,248,231,211,20,245,0,103,23,19,183,39,160,35,145,223,153,66,227,234,217,61,135,53,31,157,14,112,102,145,115,143,238,158,114,50,6,110,73,61,122,
+30,220,122,226,85,104,182,228,79,140,15,226,32,159,124,133,185,28,96,156,252,163,61,8,38,128,19,56,235,112,227,158,85,136,4,96,247,11,57,239,147,235,158,8,224,26,147,206,140,96,53,227,42,227,56,2,82,7,
+110,54,203,156,244,206,122,112,1,3,52,195,36,106,70,47,151,29,131,36,190,157,50,38,3,4,100,255,0,119,175,56,52,198,154,34,121,190,135,39,61,20,147,223,35,6,224,96,228,140,113,159,195,52,1,48,185,182,192,
+205,230,238,156,17,114,79,95,105,185,61,59,31,211,149,23,118,163,36,221,69,199,0,52,55,76,78,9,236,204,71,94,131,61,234,33,44,96,113,123,25,25,232,200,163,211,158,102,7,212,103,242,224,83,214,229,23,165,
+205,185,200,227,5,7,124,118,156,158,248,0,251,140,154,0,152,93,219,31,187,119,8,200,224,125,154,225,112,61,120,112,79,39,140,0,77,47,219,173,137,25,190,135,176,25,183,185,24,252,230,25,247,198,122,254,
+112,139,149,7,63,104,182,3,158,178,47,39,223,50,19,250,224,250,83,190,208,141,140,207,103,219,248,147,166,58,146,100,31,204,251,80,3,218,246,219,60,94,90,156,100,31,244,121,200,24,255,0,122,86,233,158,
+79,210,151,237,176,30,62,217,99,140,128,51,109,33,39,161,233,156,253,122,251,142,105,235,115,16,24,51,90,131,208,237,146,35,215,219,205,239,232,9,247,169,132,200,121,243,96,218,64,193,18,128,113,235,149,
+151,244,29,240,61,77,0,48,220,218,31,189,119,166,142,195,125,148,204,70,72,31,220,110,50,123,31,212,210,249,214,167,165,214,150,221,7,26,109,227,31,252,118,220,129,248,31,161,198,77,73,231,133,24,221,
+6,49,159,190,24,158,128,117,98,188,12,126,56,199,188,130,224,19,203,69,219,248,163,63,66,1,97,223,35,129,216,224,158,148,1,84,201,8,192,75,141,32,228,247,210,239,243,239,247,108,216,250,113,233,131,158,
+130,158,36,227,2,109,45,65,224,149,210,175,178,125,1,63,99,4,142,199,145,219,241,178,37,35,59,94,44,243,208,68,49,248,239,3,223,36,127,133,35,74,195,131,53,186,116,206,94,48,127,71,57,35,233,129,130,79,
+78,0,35,14,135,173,198,156,78,56,206,159,114,189,113,199,207,102,49,158,59,224,254,20,252,142,162,227,75,3,208,217,77,199,61,72,251,49,207,229,239,143,72,204,128,228,139,139,113,211,24,40,220,158,252,
+176,228,253,71,233,76,14,138,14,249,224,7,174,64,94,71,63,244,212,245,253,123,224,208,4,225,3,17,251,237,45,177,198,62,197,48,57,30,223,96,36,158,157,219,167,62,206,17,41,56,45,166,158,132,237,178,184,
+57,207,76,15,236,213,199,215,61,184,61,72,169,230,192,160,159,180,197,159,105,17,6,61,241,40,206,121,207,94,167,220,212,79,45,185,255,0,151,177,146,79,11,114,157,126,166,98,125,128,232,7,74,0,209,242,
+176,56,91,94,79,85,177,186,99,192,56,206,219,33,142,184,200,231,129,81,20,112,216,83,109,142,224,89,223,134,56,28,100,253,153,72,0,241,140,142,190,156,214,99,61,190,115,246,214,29,112,162,104,219,56,57,
+227,51,116,235,146,62,188,247,99,180,4,12,222,114,120,59,101,131,167,124,102,85,36,254,36,140,250,1,128,13,66,179,0,7,250,50,251,152,174,134,123,131,134,135,235,193,61,177,235,72,203,49,0,25,45,187,142,
+33,148,19,199,127,147,167,177,199,160,24,34,177,74,65,128,126,219,47,78,130,75,80,122,243,255,0,47,4,3,201,237,143,64,71,20,221,150,248,201,186,152,159,83,61,169,224,115,206,91,35,176,251,160,99,185,206,
+104,3,100,64,221,76,208,143,111,34,64,121,62,200,122,242,56,61,112,125,50,52,50,227,2,75,124,14,65,16,187,28,243,220,168,39,219,211,29,248,7,27,116,3,129,52,135,232,208,28,253,0,0,112,15,76,244,207,76,
+212,169,36,93,124,203,140,114,57,150,221,122,14,217,153,127,76,14,195,154,0,190,99,184,29,39,133,57,233,228,200,167,60,115,204,109,248,224,140,12,117,233,77,217,56,206,110,83,28,227,108,12,196,96,112,
+79,202,167,166,48,7,66,49,201,170,155,226,251,203,45,200,207,111,54,221,137,245,63,235,201,244,254,189,13,38,21,177,134,152,175,108,249,45,140,245,200,23,32,30,121,198,7,167,24,160,11,44,103,206,126,212,
+227,167,252,186,48,95,79,239,15,127,199,169,233,76,99,63,123,193,145,211,22,237,193,250,135,35,60,119,36,250,115,80,121,64,142,179,224,140,113,12,7,183,168,186,233,220,113,142,120,235,71,148,184,226,78,
+135,144,109,237,193,28,247,34,232,159,110,188,244,231,184,4,202,39,231,55,65,135,61,33,140,140,242,48,11,6,228,247,231,167,94,77,49,146,227,254,123,177,3,28,8,45,199,7,176,37,50,123,18,78,123,122,211,
+60,181,237,41,250,8,35,56,30,184,91,174,189,176,14,61,249,160,133,31,198,56,227,155,105,0,207,61,118,92,55,60,28,224,241,233,197,0,48,172,128,125,231,227,60,152,97,30,189,132,109,198,6,122,231,173,51,
+47,219,115,96,144,73,133,1,29,121,3,201,193,231,176,61,127,89,11,129,146,68,100,244,24,181,152,159,64,48,46,51,199,83,234,126,181,27,109,234,202,195,211,22,247,24,35,143,91,165,25,228,244,207,28,147,232,
+1,11,43,100,134,86,233,255,0,60,81,78,6,113,140,0,122,96,99,28,245,201,20,158,91,55,72,89,198,56,59,0,253,2,255,0,79,199,165,60,180,124,128,24,17,255,0,78,243,147,249,125,165,135,208,243,199,165,48,161,
+35,57,92,115,195,91,78,172,120,244,18,31,161,231,131,140,116,160,6,48,96,63,227,204,3,254,217,199,227,247,65,244,25,228,117,252,25,178,82,216,54,80,242,115,213,78,121,234,1,7,142,184,60,103,166,123,21,
+218,65,192,117,92,116,219,5,193,237,220,249,184,199,60,126,67,20,210,31,254,123,46,50,112,12,115,46,79,191,205,206,59,227,159,113,64,19,8,220,3,254,129,17,56,35,56,83,129,248,47,228,63,159,64,84,123,220,
+30,37,28,103,27,62,208,49,216,129,137,87,167,0,231,168,231,32,113,69,0,121,198,230,228,137,20,18,56,200,139,140,30,126,93,202,7,167,175,94,7,90,110,102,25,43,42,103,128,112,145,103,143,92,56,247,244,237,
+244,171,102,105,136,201,91,177,232,4,234,14,48,113,144,169,207,174,122,113,200,168,217,216,159,153,46,137,3,144,110,28,19,207,61,17,184,246,32,240,64,4,80,5,66,103,61,100,70,199,98,49,249,237,184,81,158,
+189,69,10,215,28,2,168,125,14,3,99,61,243,246,163,250,99,36,242,106,215,152,135,131,21,209,198,73,255,0,73,126,221,71,54,228,254,68,122,99,129,75,187,57,196,55,44,8,234,110,219,191,174,109,48,6,125,71,
+31,128,52,1,88,139,150,234,169,131,143,224,32,126,27,110,127,17,199,96,51,138,54,78,122,164,92,30,241,73,250,102,224,254,64,246,235,208,25,247,18,8,48,92,144,56,226,236,115,131,239,110,73,3,244,199,74,
+96,70,36,98,43,144,9,199,252,125,191,78,131,129,30,73,252,61,0,160,6,136,228,200,253,196,36,156,240,80,128,120,198,64,51,227,62,189,177,158,157,151,202,127,249,227,10,131,199,220,79,175,241,77,235,223,
+63,175,20,253,178,46,127,119,48,7,159,154,229,219,3,232,209,14,131,185,247,239,76,253,254,114,20,18,63,233,188,100,255,0,227,197,121,207,98,58,243,154,0,97,138,76,255,0,169,137,143,177,140,12,118,192,
+243,142,78,71,167,79,173,74,17,199,5,84,122,13,177,245,199,82,75,54,58,245,227,61,113,73,251,238,11,34,15,118,152,15,204,43,129,131,216,156,228,116,35,57,17,48,221,252,48,18,15,83,40,57,61,248,220,217,
+227,241,28,253,104,2,101,86,224,109,95,83,144,131,31,147,15,175,76,117,3,61,172,44,103,214,49,147,201,223,2,254,56,36,227,31,151,212,243,89,193,194,183,11,106,50,57,218,67,31,78,70,245,35,63,128,199,65,
+74,29,9,203,8,151,143,238,176,57,244,31,189,60,142,58,48,198,6,51,64,26,37,20,17,254,144,128,245,229,160,32,123,2,6,61,123,231,129,211,154,93,137,206,111,57,224,225,94,219,7,220,147,144,57,56,57,231,175,
+181,81,243,45,243,146,209,227,161,99,27,28,118,239,46,72,234,61,143,208,102,69,146,205,113,153,162,3,61,124,185,142,50,125,4,164,125,0,227,245,160,11,155,80,240,111,8,3,213,173,56,207,226,15,98,113,232,
+7,4,26,81,12,71,31,241,49,11,255,0,2,179,206,7,124,100,159,97,248,85,113,53,135,39,207,66,59,98,41,177,140,244,193,148,158,189,14,122,28,147,201,167,45,206,158,122,204,164,31,250,101,48,31,137,243,24,
+227,29,128,231,62,212,1,51,69,1,35,254,38,25,7,129,134,183,252,190,80,125,49,130,6,59,100,102,158,182,118,237,255,0,47,108,216,4,12,24,137,245,207,42,122,246,227,215,61,0,164,89,116,190,187,208,159,80,
+151,68,96,227,178,131,250,158,113,199,188,162,93,36,17,153,80,100,119,142,239,242,249,136,3,60,30,135,24,234,40,1,191,217,176,30,126,211,146,121,25,91,124,142,14,114,48,184,244,235,250,83,211,78,139,57,
+251,78,64,56,56,88,49,193,25,207,223,0,118,255,0,245,115,50,75,165,117,18,160,0,99,238,222,96,228,246,1,192,199,57,244,239,222,173,36,186,97,231,205,92,119,200,189,29,61,67,74,123,247,61,9,24,20,1,71,
+236,81,241,251,220,242,49,251,152,37,200,244,3,202,199,94,50,49,223,145,222,101,180,80,126,93,231,177,34,210,5,237,147,140,68,64,239,243,100,158,106,230,253,52,28,137,160,207,95,154,89,135,225,243,54,
+122,251,140,227,219,52,225,61,134,114,37,182,221,220,249,147,100,227,190,85,185,252,251,231,234,1,0,178,3,24,82,65,199,223,183,140,14,58,253,216,57,235,212,227,190,115,79,91,33,158,86,223,219,108,65,79,
+208,228,2,126,156,243,215,181,77,246,187,80,113,230,66,70,71,221,107,150,245,198,119,49,31,161,28,245,167,253,174,18,127,214,64,157,62,243,79,215,223,130,58,117,231,129,198,40,1,171,111,180,31,221,196,
+222,191,37,185,63,170,22,233,143,127,92,156,212,130,54,37,127,209,211,3,24,219,111,15,7,168,249,188,182,237,206,8,25,237,154,5,212,67,57,158,213,177,208,239,147,167,212,140,251,125,59,224,226,148,93,198,
+189,46,173,199,184,102,193,233,212,16,49,254,121,192,228,2,80,164,103,48,129,212,255,0,171,140,99,56,234,48,48,56,207,110,63,10,126,226,49,184,168,0,227,132,94,7,24,192,30,131,169,201,235,140,30,149,16,
+190,140,159,248,250,181,207,253,119,117,0,241,232,167,223,158,112,71,94,41,226,243,63,118,230,28,140,12,45,203,30,15,0,253,207,192,119,233,220,230,128,39,85,70,4,238,29,58,148,139,146,120,7,230,65,206,
+115,212,158,156,250,83,196,81,159,249,108,188,246,17,219,140,159,76,147,142,15,36,103,215,168,24,168,126,223,42,12,27,152,199,31,243,244,217,32,247,32,71,158,164,243,215,142,185,205,56,106,114,228,98,
+237,14,127,233,230,115,208,227,10,60,156,123,131,156,10,0,119,144,167,254,91,168,239,146,209,126,60,1,143,203,62,131,173,32,182,79,249,248,28,245,1,147,29,8,233,144,15,255,0,171,211,21,32,212,166,60,249,
+185,206,49,139,153,114,71,212,199,183,249,117,239,82,46,165,32,206,38,65,234,26,114,115,255,0,144,135,168,24,247,235,154,0,129,32,76,156,92,73,211,156,20,199,3,29,4,163,128,122,1,159,124,224,26,144,91,
+198,127,229,238,80,49,213,119,46,72,207,247,101,95,195,158,191,164,159,218,14,122,201,9,235,128,103,127,92,231,1,84,142,127,0,70,59,96,72,183,197,127,134,216,251,238,147,175,185,206,123,30,78,59,156,138,
+0,143,236,113,54,9,190,110,56,249,166,153,127,51,246,181,29,242,1,198,122,14,57,165,251,2,28,237,212,122,145,140,92,92,31,76,100,27,227,158,156,250,231,184,171,67,81,144,156,121,80,176,62,146,191,35,167,
+118,63,129,254,88,230,117,187,115,207,217,161,28,100,159,62,60,246,234,24,28,227,166,121,253,40,2,136,211,144,224,125,176,177,232,127,125,115,207,96,127,227,231,4,254,60,117,244,204,191,217,255,0,119,
+23,4,175,56,38,226,241,115,245,43,116,9,56,201,228,131,144,126,181,105,174,143,123,72,15,169,102,140,131,233,243,121,68,113,244,36,145,143,106,81,123,30,66,253,154,212,28,245,38,53,231,142,230,48,184,
+199,174,62,131,176,5,63,177,20,60,202,8,35,248,175,53,28,30,51,140,11,192,49,146,7,28,116,169,82,215,60,22,66,79,31,235,245,54,193,25,56,230,243,142,115,128,70,51,218,174,173,196,60,19,107,107,207,7,111,
+217,216,100,146,57,12,6,62,160,241,199,29,169,198,116,57,255,0,69,183,3,183,22,231,39,7,61,87,191,182,114,9,35,181,0,64,32,85,0,114,121,35,137,53,63,207,38,233,128,198,120,7,241,21,97,45,208,143,245,108,
+71,175,157,168,119,207,65,231,158,249,60,125,121,160,72,135,31,232,176,177,198,14,4,88,237,193,202,46,79,249,207,36,212,202,203,212,89,193,216,128,4,36,224,122,228,96,119,233,145,64,13,22,209,131,254,
+169,136,207,121,181,33,233,199,202,224,227,29,121,63,142,104,16,196,15,16,55,94,210,106,67,159,198,66,58,244,57,111,173,89,243,65,31,241,231,17,235,209,162,92,147,158,254,89,28,113,201,207,214,154,64,
+39,38,202,34,220,245,120,216,117,228,113,110,122,113,237,236,59,0,53,98,28,1,111,63,61,196,186,134,63,60,31,126,73,246,197,76,17,84,228,67,48,35,61,102,190,92,250,242,195,211,223,6,161,42,185,0,88,65,
+158,122,49,207,182,2,192,6,51,216,31,233,81,114,15,54,80,142,252,60,171,211,167,88,128,7,35,143,76,112,70,104,2,240,3,35,139,129,158,163,237,23,74,114,121,228,110,206,49,192,227,0,231,131,193,167,133,
+206,48,151,121,39,35,55,23,164,131,236,119,119,231,147,158,49,239,84,66,200,217,31,98,143,29,14,101,144,100,99,254,185,55,229,238,50,123,148,242,100,36,255,0,161,69,140,31,189,43,227,25,233,254,172,99,
+166,70,0,226,128,53,144,50,231,11,118,79,61,110,110,128,193,244,59,115,237,201,231,235,154,86,50,183,252,179,186,32,96,127,199,205,199,29,186,152,201,252,115,207,61,69,100,27,87,57,31,101,132,117,231,
+205,155,3,216,31,44,156,125,6,59,119,200,127,216,110,14,8,142,17,239,186,83,159,111,248,247,36,245,56,7,168,207,106,0,209,34,110,166,43,156,100,255,0,203,123,190,125,1,194,99,212,16,61,9,56,168,75,77,
+156,253,158,97,142,71,239,110,88,129,158,227,203,3,0,243,211,62,254,180,254,193,112,79,40,167,29,192,145,186,122,131,8,60,119,227,62,189,232,22,19,18,112,163,240,141,206,79,63,222,76,117,62,132,242,123,
+208,5,131,246,179,210,222,83,206,56,107,131,158,253,5,187,103,215,161,231,140,208,13,194,240,240,92,1,192,35,51,231,7,191,54,170,8,233,199,160,252,226,93,62,244,125,213,200,192,193,48,18,56,247,11,233,
+208,140,122,30,121,10,44,181,5,60,54,211,219,253,25,137,36,228,224,102,18,56,237,143,233,64,18,25,165,29,32,155,30,230,225,125,241,242,218,224,246,250,17,140,117,168,154,105,177,147,107,33,60,96,22,185,
+56,199,160,22,156,245,206,65,29,253,48,39,72,53,0,72,61,115,212,89,72,1,224,250,91,224,143,92,30,159,157,56,193,169,14,228,17,198,77,148,160,125,56,183,110,7,61,27,159,65,64,20,141,197,198,120,181,32,
+116,193,107,161,156,31,123,108,126,184,238,123,138,107,220,92,145,197,171,228,158,161,238,127,60,253,157,123,30,135,235,219,141,37,135,84,4,18,224,99,24,31,97,155,245,255,0,68,124,250,99,61,122,130,50,
+41,64,212,84,14,85,186,99,117,140,164,253,1,251,22,123,123,99,219,173,0,99,121,247,57,249,162,101,200,29,90,232,15,199,247,35,29,123,17,220,115,154,22,105,241,252,92,103,159,244,156,113,206,62,104,79,
+61,178,114,71,191,109,119,125,64,16,90,52,62,187,172,238,215,234,126,91,67,235,232,48,70,62,141,243,111,73,24,142,221,120,234,214,215,231,25,224,158,44,91,7,255,0,173,156,80,6,111,157,112,56,27,179,206,
+112,242,140,113,220,253,148,246,206,125,14,58,26,81,52,184,232,221,242,76,239,215,39,61,109,126,188,156,115,140,122,86,153,107,252,100,139,46,223,242,199,80,94,159,247,15,3,215,160,193,60,114,106,31,58,
+235,163,27,28,175,76,69,168,231,166,112,51,97,143,199,175,228,40,2,160,153,201,251,203,239,251,233,58,247,231,201,3,140,231,24,232,14,7,106,92,204,192,141,208,145,142,243,92,228,129,235,136,176,125,251,
+251,226,173,125,170,224,112,126,199,156,30,145,94,146,79,76,255,0,199,176,232,125,122,12,28,129,140,134,230,124,17,190,200,112,9,15,29,231,92,96,231,106,175,111,65,200,0,116,224,0,84,30,113,63,43,66,15,
+253,116,185,254,176,127,250,169,118,206,115,204,71,174,70,233,177,142,48,112,208,140,31,97,235,207,53,49,158,112,113,230,233,170,7,253,50,212,24,99,182,10,196,121,200,35,29,176,122,211,30,226,81,195,77,
+167,241,157,216,181,191,35,28,245,102,65,208,28,131,255,0,215,20,1,22,37,231,62,64,227,188,146,1,237,202,198,51,216,159,234,121,167,133,36,114,176,156,228,124,179,76,50,15,184,219,140,247,193,255,0,10,
+136,221,55,56,154,199,168,233,5,240,39,183,67,30,125,62,152,239,75,246,146,188,153,173,50,121,32,219,221,143,92,96,152,59,28,115,159,127,106,0,148,42,231,30,68,68,103,56,243,110,48,9,30,190,104,39,62,
+221,199,65,201,48,186,169,192,22,240,12,158,210,223,28,114,49,255,0,45,185,60,125,121,35,4,117,95,180,22,234,240,145,254,204,87,4,245,228,124,209,47,39,143,79,126,188,68,215,113,131,200,82,65,61,34,147,
+35,130,58,24,207,57,245,193,207,61,168,0,49,129,146,35,85,39,131,176,234,0,156,103,128,68,199,63,95,83,236,41,133,24,244,143,104,236,12,218,152,231,185,192,153,78,61,112,8,24,20,243,116,172,1,84,115,254,
+236,19,31,110,201,248,131,158,122,247,168,205,209,60,121,83,119,225,45,231,60,123,130,167,223,35,156,113,211,184,4,68,48,233,30,78,127,134,109,71,57,207,95,158,110,72,250,18,57,199,160,136,163,158,76,
+121,246,243,110,216,128,50,71,252,182,200,247,32,130,63,74,156,220,144,56,134,235,29,114,34,117,32,112,122,109,97,223,208,119,239,192,103,156,204,127,213,106,29,59,91,146,57,61,121,64,63,62,120,237,212,
+0,66,99,102,5,153,49,158,185,123,230,56,239,192,115,140,251,103,243,52,223,41,0,200,85,24,227,174,163,145,215,176,39,56,199,79,194,158,88,147,204,87,249,25,198,98,113,216,158,126,65,129,255,0,215,199,
+186,31,59,3,17,95,129,140,13,176,204,195,243,1,72,253,113,235,232,1,11,68,58,133,3,25,35,43,123,219,142,172,59,30,113,128,125,120,168,76,36,100,41,25,199,113,54,51,244,101,4,255,0,245,255,0,26,153,196,
+252,254,230,248,231,174,109,167,92,156,245,229,192,39,29,248,3,176,166,21,187,199,17,222,175,60,98,43,142,7,56,4,9,199,24,236,61,120,231,20,1,16,141,193,193,147,29,191,213,177,192,62,187,135,7,159,124,
+243,144,57,164,242,159,166,245,35,212,161,252,56,13,219,191,61,251,224,18,242,183,141,146,82,240,99,31,49,134,227,130,58,28,9,199,57,60,156,240,123,250,179,203,188,36,231,237,61,115,204,23,24,4,244,201,
+107,163,237,158,160,103,29,40,2,39,142,81,156,20,99,215,2,54,224,115,129,254,176,250,12,224,12,250,113,81,52,19,30,128,131,142,118,171,2,72,207,82,31,142,1,252,125,56,171,152,188,232,60,252,12,127,13,
+200,3,191,69,159,168,207,24,244,239,76,97,123,131,130,121,206,55,125,177,187,156,227,247,248,39,57,207,76,227,3,60,138,0,168,176,202,48,112,78,122,227,206,66,123,245,18,175,176,231,190,122,145,72,209,
+191,80,141,220,125,235,134,201,60,142,151,4,19,198,50,125,106,86,75,212,35,33,61,78,126,220,158,135,230,38,237,120,227,159,199,4,242,3,73,186,57,202,68,14,79,204,191,109,97,211,222,252,12,227,175,81,158,
+113,222,128,32,97,113,128,66,202,6,115,247,231,3,183,39,253,35,145,233,145,219,232,106,50,178,246,50,3,142,8,105,71,60,250,51,113,159,229,212,246,178,103,156,12,31,47,56,35,253,85,214,58,147,212,234,28,
+31,79,151,147,158,122,211,90,121,143,83,6,61,10,206,190,188,255,0,199,233,39,60,251,251,80,5,63,223,140,143,50,67,199,121,174,71,174,8,192,32,240,49,145,208,147,223,171,25,102,39,4,74,75,115,205,197,222,
+58,245,36,167,31,128,201,231,182,113,127,207,144,117,146,223,24,207,250,187,130,61,114,115,125,212,228,254,61,112,5,52,204,224,241,53,178,243,247,140,50,96,227,147,207,219,135,83,211,175,29,250,80,5,15,
+46,108,224,172,131,254,219,220,54,125,249,140,228,127,129,226,148,69,42,156,252,248,244,50,179,113,142,152,48,147,206,120,57,207,76,30,43,64,92,72,51,254,145,0,192,235,178,111,81,215,23,141,129,212,117,
+235,131,210,163,107,169,79,6,234,5,227,178,74,115,208,30,183,71,191,29,59,125,104,2,161,59,72,0,243,147,247,254,97,198,57,255,0,82,125,62,158,188,10,99,190,62,82,241,41,61,70,17,115,215,168,107,118,207,
+113,206,122,116,198,69,91,51,73,140,141,66,216,113,143,245,77,159,95,249,248,200,244,233,159,210,144,77,42,156,127,106,219,130,120,255,0,82,196,224,250,159,56,247,227,159,195,142,104,2,146,204,20,125,
+248,135,92,129,28,25,60,245,201,177,57,62,156,243,212,119,167,11,128,112,26,88,134,14,50,86,1,158,135,156,88,129,128,61,49,212,1,237,112,79,112,15,26,165,175,78,241,190,209,235,159,222,143,168,233,206,
+121,193,197,40,158,237,250,95,89,182,49,252,4,118,227,147,33,193,252,7,79,81,154,0,174,110,70,48,38,183,39,61,214,16,56,255,0,104,91,158,199,158,49,192,39,189,61,102,7,157,214,251,186,253,216,51,248,127,
+163,250,243,142,188,244,206,77,73,254,152,220,155,219,79,79,188,65,31,129,144,255,0,47,79,90,82,183,157,239,173,48,56,229,148,142,125,126,102,207,32,231,241,239,212,1,22,116,80,3,73,110,7,56,202,196,122,
+245,229,97,207,160,199,249,14,51,6,224,77,7,108,126,237,115,144,79,32,136,51,223,191,80,57,244,166,175,219,129,195,94,89,227,158,75,114,7,177,35,62,128,114,113,219,167,14,111,181,114,5,245,162,156,246,
+0,228,140,231,239,14,115,223,216,115,64,9,231,96,129,246,155,113,235,130,83,158,123,108,24,56,61,56,35,57,61,72,163,112,126,126,217,0,201,233,231,159,167,86,92,125,71,255,0,170,162,104,110,137,7,251,66,
+219,175,66,87,167,29,132,67,29,248,207,56,7,35,53,17,142,96,72,55,22,143,142,167,39,57,234,56,85,32,28,31,97,250,228,2,214,115,192,186,86,231,254,126,31,167,190,16,119,7,25,235,211,140,98,145,151,35,38,
+117,231,29,101,152,3,206,7,32,113,146,115,158,62,163,138,172,81,128,230,91,114,79,28,70,204,123,123,99,31,92,119,200,233,74,8,32,169,104,142,63,233,138,145,156,122,21,61,15,190,49,192,62,128,18,249,99,
+24,47,23,3,145,230,202,15,108,115,230,169,227,156,228,103,24,231,130,42,63,41,14,14,21,177,199,19,73,199,79,89,14,71,183,203,249,113,81,149,143,145,251,145,193,255,0,150,112,129,199,92,226,35,142,157,
+73,227,158,113,154,96,10,50,126,78,252,136,226,0,30,59,152,185,199,0,80,5,175,42,48,55,124,188,14,71,153,39,215,251,216,232,49,215,52,195,12,12,58,237,25,227,37,216,119,228,147,38,56,231,177,239,158,188,
+87,46,6,0,192,29,6,216,225,193,35,61,114,23,235,242,240,7,166,70,0,225,79,40,217,56,227,101,184,238,59,23,206,73,192,207,229,207,52,1,100,91,67,156,177,4,158,251,164,7,208,156,137,6,59,247,30,152,198,
+106,83,107,11,96,0,172,64,198,50,236,122,118,30,118,115,232,64,207,81,207,25,161,189,249,34,2,192,244,200,181,228,103,158,11,168,231,161,57,252,185,169,146,71,28,27,1,158,58,37,145,206,49,216,220,142,
+122,243,206,59,80,5,145,101,129,242,196,140,123,3,19,158,59,100,153,135,56,207,126,15,225,82,11,12,255,0,203,180,89,56,193,49,14,189,123,204,51,142,135,234,122,117,166,199,44,216,249,108,177,199,252,242,
+179,199,28,115,155,208,49,215,243,244,167,23,152,96,139,37,3,161,37,116,229,61,199,0,223,147,219,142,70,65,206,64,232,1,42,217,50,158,45,161,207,180,113,2,57,193,82,126,210,184,231,161,233,223,131,86,
+86,206,99,128,45,212,224,122,68,61,198,79,218,92,0,122,12,103,211,168,34,170,3,49,31,53,140,100,1,158,186,118,120,233,128,53,12,122,240,51,159,210,148,52,199,173,148,96,118,0,105,227,167,175,252,76,70,
+123,103,32,231,211,138,0,187,246,59,163,255,0,46,209,143,175,151,145,234,56,152,96,241,207,35,130,71,97,77,251,21,208,228,218,198,115,254,194,176,29,187,92,14,7,92,158,152,231,4,243,92,77,34,96,11,96,
+164,30,126,93,60,142,167,63,118,252,251,119,193,30,164,83,141,204,167,143,179,199,215,146,97,178,3,232,8,189,237,236,59,143,74,0,176,45,110,134,236,90,196,123,243,24,7,56,232,63,210,113,219,212,30,220,
+147,194,125,138,227,3,54,113,130,123,132,126,73,25,207,23,184,39,175,65,201,237,200,204,31,108,100,36,27,91,81,219,47,21,169,206,7,28,139,172,140,253,65,207,83,222,151,237,5,250,193,105,211,180,81,112,
+114,58,143,180,237,254,99,131,205,0,73,246,73,148,141,214,81,183,110,97,151,191,94,69,201,60,126,61,78,115,197,56,194,70,127,226,95,1,199,4,24,231,24,63,237,98,117,254,121,192,239,206,107,180,160,15,245,
+112,46,112,112,22,32,48,113,199,14,195,175,61,73,246,206,106,51,43,115,145,110,184,7,31,50,40,234,79,57,29,199,95,240,20,1,103,203,110,214,54,203,193,200,41,115,215,142,187,46,199,94,157,120,30,189,228,
+242,229,110,126,197,108,7,56,34,59,245,3,39,175,23,140,164,123,129,219,3,175,20,150,96,122,52,88,237,182,108,17,142,70,54,169,239,223,160,7,167,122,121,117,207,44,152,25,227,206,118,31,129,218,15,249,
+24,207,56,0,156,193,32,57,251,37,176,30,190,93,247,95,98,110,20,18,122,228,31,112,40,242,100,111,249,117,183,206,73,24,142,239,140,127,219,217,30,132,145,140,30,181,16,116,239,34,174,71,252,252,17,130,
+79,25,220,185,255,0,199,123,119,165,45,17,35,247,136,121,60,155,204,19,159,92,5,30,252,142,63,80,1,39,151,34,100,24,32,28,240,113,114,184,62,191,241,248,71,215,250,84,44,179,17,145,12,35,211,13,57,62,
+253,111,125,199,29,123,241,205,72,191,101,57,4,198,199,28,1,124,128,240,113,144,15,7,61,58,31,98,77,56,44,39,133,84,30,226,246,16,122,245,206,15,62,135,129,200,228,99,36,2,177,89,215,145,12,56,231,254,
+90,78,0,231,176,55,36,131,207,28,254,124,82,135,187,192,30,92,96,1,130,5,196,232,127,47,180,241,199,126,216,29,106,114,177,130,14,229,233,222,254,216,159,78,164,130,113,131,207,110,59,244,65,36,59,176,
+100,135,223,117,245,175,248,227,31,136,234,125,78,64,27,186,237,127,229,164,96,19,130,4,242,17,207,99,254,158,9,30,197,70,71,60,142,168,30,96,71,239,130,242,62,236,179,143,204,139,166,207,225,223,160,
+169,55,218,245,50,91,177,193,192,23,186,123,122,227,25,153,78,127,34,115,208,113,78,15,1,0,1,9,25,255,0,159,155,0,191,250,52,142,135,252,226,128,35,47,33,201,243,193,35,24,253,252,222,253,204,196,158,
+121,235,255,0,214,21,166,254,41,56,227,165,205,214,15,167,2,110,216,207,28,14,49,82,6,180,201,12,45,120,61,126,215,167,247,206,57,243,121,233,245,36,208,94,208,228,255,0,162,143,64,111,172,0,238,72,226,
+86,244,237,232,57,28,224,1,160,184,201,243,149,121,237,61,247,65,159,73,113,193,30,185,206,71,97,137,3,231,143,180,161,237,134,146,253,129,201,224,114,196,17,236,127,46,42,31,50,215,32,109,181,201,192,
+226,238,208,243,255,0,127,120,28,0,59,103,212,131,78,38,6,232,214,171,219,254,63,45,115,158,227,2,82,78,7,176,235,210,128,44,109,3,172,177,16,59,143,182,142,223,222,195,96,228,227,129,208,224,154,149,
+93,83,159,58,49,206,126,245,230,15,92,131,251,176,115,207,176,234,112,114,113,72,121,4,115,45,182,49,146,62,215,31,3,105,57,56,147,24,62,231,184,3,0,138,112,75,62,51,37,187,244,224,92,196,58,245,201,50,
+145,131,198,71,231,233,64,26,43,60,125,238,34,247,253,229,215,161,233,251,188,12,142,71,191,111,86,180,202,112,62,213,17,200,3,150,186,0,14,188,145,111,215,60,103,57,198,48,42,167,151,106,71,15,110,56,
+28,9,237,178,1,30,228,142,221,201,207,106,4,113,2,118,188,60,100,100,92,219,247,231,140,3,249,19,142,120,160,11,203,56,92,129,113,7,61,140,215,56,199,81,195,66,79,108,99,185,207,97,79,51,47,241,75,106,
+121,206,3,204,164,245,193,200,80,72,227,158,128,158,189,106,151,149,3,0,12,208,112,114,73,189,183,28,30,163,5,91,39,215,25,30,216,167,44,48,224,237,158,216,16,78,49,115,9,198,61,213,123,116,250,103,185,
+56,0,186,46,98,0,102,91,126,228,17,51,144,78,51,209,136,39,29,14,51,156,156,142,180,191,106,140,131,254,147,14,59,98,89,54,254,3,112,83,193,198,58,140,85,51,18,100,102,123,112,122,15,223,64,71,3,56,1,
+144,114,72,252,206,126,138,177,46,56,150,28,143,246,237,199,229,128,6,15,115,158,252,2,15,0,22,150,230,15,249,248,136,224,118,150,101,31,158,15,7,29,143,184,28,96,168,185,136,176,83,113,10,228,247,185,
+153,113,255,0,125,46,58,123,227,39,175,97,87,99,113,251,200,91,174,127,121,27,30,248,28,112,63,3,219,222,156,84,39,83,111,207,66,94,19,142,61,113,158,51,142,160,122,100,224,144,11,98,226,16,79,250,100,
+13,147,198,102,114,188,19,142,64,110,228,247,29,201,61,194,249,202,121,23,80,224,130,70,37,206,122,116,202,118,228,242,72,228,1,210,170,111,227,27,237,113,146,50,36,69,254,92,117,244,4,224,231,61,41,202,
+204,7,18,218,49,231,143,57,242,51,201,35,105,81,140,242,70,63,159,0,22,22,118,206,126,211,17,3,178,200,51,128,51,142,23,146,58,115,156,247,226,166,251,67,177,31,188,192,0,131,254,145,25,207,126,241,182,
+79,183,94,164,117,170,102,70,231,112,180,97,193,7,204,184,97,215,168,196,153,25,235,198,49,143,74,64,237,247,130,89,174,50,50,141,119,156,250,147,230,130,122,247,0,115,142,113,64,23,188,254,159,233,50,
+38,115,194,207,24,25,28,227,136,243,199,211,39,57,61,233,12,234,188,155,230,231,128,12,136,121,29,7,250,145,233,215,215,235,84,154,225,128,251,208,241,254,213,208,29,189,102,94,252,158,157,58,245,195,
+69,212,188,16,240,99,146,9,146,227,142,189,54,205,156,156,250,117,39,222,128,52,62,215,24,31,241,252,248,61,196,177,175,254,58,96,7,63,143,227,193,160,220,169,7,23,14,216,57,230,123,65,233,216,196,167,
+219,131,252,249,165,246,167,7,5,237,201,29,114,215,109,199,31,244,216,115,198,56,7,191,60,112,255,0,61,200,7,205,181,0,1,140,11,158,131,220,156,142,224,251,122,80,5,181,184,36,128,39,184,36,244,43,45,
+169,56,232,8,224,103,211,25,239,248,212,130,232,141,219,165,187,32,99,146,240,1,156,127,215,65,130,61,9,232,112,49,145,84,62,215,32,255,0,150,150,253,192,32,204,57,252,115,142,58,100,254,30,129,186,155,
+24,18,192,7,80,68,140,50,79,77,192,169,110,122,159,175,4,98,128,52,77,230,8,201,188,108,140,143,154,34,14,61,8,155,156,143,127,95,173,39,218,227,206,124,187,198,61,48,89,72,31,249,49,252,199,175,96,43,
+63,237,183,91,113,246,136,6,123,134,36,227,158,185,24,4,125,8,244,62,172,251,101,199,123,184,1,7,32,171,54,79,30,160,99,142,131,7,215,158,128,0,106,253,166,48,78,33,155,241,5,240,79,24,200,149,177,158,
+220,231,243,205,53,174,226,3,31,102,184,35,167,49,184,207,166,63,125,215,210,179,190,223,117,130,78,160,0,231,143,51,3,191,92,100,245,224,2,71,24,247,194,11,219,134,199,252,76,99,7,167,250,197,59,143,
+76,158,65,227,24,227,0,96,228,242,104,2,219,93,160,255,0,151,75,128,51,252,43,131,193,29,132,224,231,183,61,121,231,189,49,175,79,27,109,39,61,142,232,156,243,233,145,120,160,1,212,99,32,15,81,214,21,
+186,156,128,90,246,35,140,28,249,139,143,110,67,103,159,114,70,56,164,107,153,255,0,231,246,1,199,222,14,71,28,158,196,255,0,79,195,173,0,60,223,149,235,111,42,227,174,18,67,159,248,8,188,61,121,207,36,
+241,237,154,105,212,206,1,40,192,115,141,208,63,215,140,206,73,201,28,103,159,127,88,126,211,112,63,229,246,48,7,57,51,48,28,122,5,112,126,159,46,127,12,97,13,236,217,3,237,224,12,117,87,149,177,143,251,
+108,157,79,169,30,128,26,0,147,251,93,129,192,69,0,127,211,25,125,249,59,101,192,199,99,145,156,83,70,173,57,28,188,107,156,99,247,51,15,212,202,63,19,147,215,210,155,246,169,79,252,191,22,200,224,21,
+148,131,147,223,23,201,239,212,247,233,199,41,231,49,3,125,203,19,232,162,227,223,251,186,145,57,201,192,245,239,197,0,47,246,172,227,254,94,35,25,207,6,27,130,121,62,210,229,186,114,115,211,147,71,246,
+171,131,134,187,77,189,120,180,148,224,228,142,173,39,110,15,81,200,0,244,166,9,184,32,77,63,168,249,110,241,233,222,252,12,245,7,146,61,71,162,25,88,156,249,199,232,203,118,51,215,28,253,188,251,142,
+163,167,214,128,30,117,108,40,205,220,99,254,221,88,28,100,28,255,0,173,97,200,206,58,253,0,2,133,213,128,0,139,228,94,199,22,82,55,234,51,130,126,189,65,235,140,212,94,107,131,128,199,28,255,0,203,59,
+211,158,157,10,234,7,57,61,58,242,61,78,42,54,188,43,215,112,108,159,225,188,0,250,16,90,255,0,39,215,183,20,1,112,234,69,142,127,180,99,0,119,251,44,202,122,243,144,16,140,129,159,226,201,250,83,90,248,
+49,255,0,144,154,30,160,131,103,63,67,219,36,1,239,207,225,158,13,103,155,214,36,144,199,175,119,145,71,190,119,106,39,61,51,144,115,207,25,169,5,225,199,204,115,223,10,204,196,241,215,39,84,25,193,245,
+24,227,183,20,1,107,237,125,75,95,46,51,156,45,180,128,30,114,49,150,92,147,142,7,211,7,158,83,237,17,55,91,151,32,30,134,218,83,158,189,62,118,25,193,25,233,142,113,233,80,173,210,177,192,239,158,91,
+98,156,250,238,58,175,61,58,117,61,251,98,67,49,201,200,132,244,193,51,42,147,245,205,243,15,175,60,118,207,4,128,52,207,106,167,37,153,243,216,91,73,207,110,74,190,79,83,140,17,73,246,155,31,249,231,
+140,31,249,243,152,158,224,245,115,215,166,73,227,168,35,36,211,154,113,208,8,249,255,0,110,54,30,221,46,8,61,50,9,60,251,211,124,197,0,228,195,156,244,51,64,63,246,224,17,249,99,175,113,192,4,127,105,
+178,3,38,55,110,188,125,150,84,199,126,192,231,175,36,245,232,14,69,66,215,214,225,190,85,101,201,0,98,41,253,179,213,57,252,201,30,156,98,173,9,83,251,214,252,250,75,108,61,122,230,108,254,163,223,210,
+144,201,30,57,104,6,49,141,211,218,140,245,60,110,156,147,211,241,244,197,0,87,23,75,128,2,49,80,51,128,179,174,122,114,126,80,58,243,253,104,169,183,12,241,44,11,200,200,243,180,242,63,47,56,147,244,
+35,25,224,156,209,64,28,71,150,7,95,63,61,193,186,141,113,198,120,221,108,9,227,159,207,181,39,150,7,121,113,239,125,23,78,120,56,136,116,224,231,63,128,170,97,227,114,127,210,227,39,161,33,109,193,39,
+211,31,104,32,242,61,9,165,5,115,197,195,147,237,29,185,39,167,60,207,207,61,142,79,166,6,69,0,89,41,23,57,118,7,169,255,0,76,135,158,248,32,32,235,198,58,253,123,211,15,144,14,55,51,12,100,226,237,71,
+79,95,221,99,31,143,99,207,60,66,71,203,146,206,121,234,18,208,30,73,3,165,218,143,240,238,122,101,152,36,18,36,96,112,79,204,182,222,157,201,191,3,57,231,177,36,156,230,128,38,205,182,56,220,59,156,93,
+68,115,219,60,66,217,192,60,123,254,140,47,110,79,12,19,61,115,50,31,110,71,144,49,207,66,9,30,157,240,195,231,109,25,155,10,56,57,104,1,192,237,197,243,227,183,24,232,71,168,20,128,220,168,32,78,224,
+18,8,2,88,128,237,217,110,79,110,8,224,142,51,215,20,1,32,123,113,144,103,140,28,142,60,198,35,240,11,11,129,223,184,239,143,103,226,19,140,78,156,103,0,110,98,115,244,132,103,28,99,168,245,170,95,190,
+61,110,28,96,255,0,207,72,142,122,224,243,113,145,198,58,119,246,167,230,127,249,236,231,232,203,215,234,37,99,244,192,235,198,69,0,78,194,30,243,16,0,56,2,22,3,62,249,128,123,254,127,83,81,131,22,112,
+46,88,127,219,6,108,15,248,12,121,233,237,211,156,154,102,38,35,253,124,128,246,196,199,129,212,145,182,97,140,243,156,210,129,116,49,139,166,35,147,204,236,49,233,156,221,127,78,79,190,104,1,255,0,185,
+29,110,9,231,239,125,150,66,120,239,204,121,28,30,152,206,56,234,64,166,183,150,115,139,158,9,228,155,89,177,244,32,68,79,56,60,227,240,224,101,66,220,177,255,0,143,148,207,28,155,144,15,94,248,184,200,
+245,228,253,70,58,184,125,168,0,62,208,156,227,145,116,196,123,158,39,32,118,199,24,246,39,168,4,126,84,109,180,139,176,6,63,231,210,86,28,118,193,128,17,249,254,185,167,8,97,235,246,164,98,14,14,108,
+103,4,117,199,252,176,192,30,192,158,185,237,82,249,119,36,141,211,66,221,48,77,227,247,231,251,228,118,231,184,246,230,156,45,38,96,15,155,110,73,56,255,0,143,198,39,175,25,203,31,200,31,195,212,1,139,
+28,57,7,237,41,199,97,97,49,227,212,157,138,0,7,175,4,84,152,182,24,196,188,158,132,88,186,253,14,74,174,1,250,253,77,72,182,82,145,131,52,11,158,205,117,43,126,120,147,25,244,233,223,129,210,164,26,116,
+248,56,150,216,140,242,67,49,231,131,129,243,247,57,224,244,35,147,154,0,132,8,123,92,47,29,67,64,170,79,211,46,113,142,224,145,158,220,211,151,201,234,215,22,170,9,0,239,17,131,215,253,240,115,198,0,
+235,235,232,102,22,23,71,63,188,182,35,32,224,238,207,234,73,206,51,211,140,116,233,154,148,105,247,189,164,183,7,28,229,98,63,143,204,51,236,15,29,129,236,40,2,48,150,237,156,93,90,30,156,129,25,250,
+253,233,71,127,175,108,211,246,64,115,251,251,97,211,157,150,220,118,60,9,193,193,207,61,123,99,189,73,246,43,193,128,242,219,243,192,202,70,65,192,231,183,235,159,83,158,134,164,54,151,67,4,75,1,234,
+50,45,99,31,200,114,15,124,231,175,110,132,2,178,197,108,115,153,237,240,79,117,181,45,198,56,201,184,224,15,108,242,57,61,51,96,71,106,49,150,183,96,49,252,22,158,188,143,248,249,56,56,57,35,29,7,181,
+39,217,110,187,203,111,232,11,64,58,12,243,128,135,215,156,125,61,42,85,182,186,80,63,210,173,215,156,140,91,169,31,170,14,72,62,131,220,17,197,0,47,151,106,113,131,0,3,158,22,0,122,96,227,247,163,212,
+126,25,207,108,72,33,182,56,204,209,241,207,221,128,118,246,112,0,227,156,118,39,166,121,104,130,112,127,227,234,12,245,7,236,144,3,143,66,124,179,129,233,211,39,34,156,97,184,228,11,184,15,168,54,214,
+253,14,122,254,232,227,183,65,207,166,9,160,5,251,36,57,5,36,65,147,156,16,14,125,78,60,229,28,115,216,253,56,193,153,45,162,95,189,36,36,142,191,186,140,140,117,235,230,30,222,255,0,133,87,88,103,24,
+204,240,54,71,76,66,132,17,193,224,65,147,250,244,35,182,106,95,45,242,50,109,143,191,154,128,131,199,39,247,0,227,212,130,62,190,160,19,8,237,241,130,98,35,39,229,16,198,15,167,81,48,193,35,140,156,129,
+235,210,147,201,182,7,62,82,18,7,123,84,98,115,158,254,121,63,152,60,142,135,138,140,110,7,24,183,62,222,123,159,192,98,48,63,64,61,185,167,9,51,199,151,30,122,12,92,57,62,216,45,1,232,121,228,17,199,
+92,226,128,29,254,136,49,136,99,7,167,252,123,117,252,156,129,211,175,39,215,32,10,152,61,183,4,66,72,233,145,11,131,216,12,96,131,235,158,14,64,199,174,98,12,67,100,171,96,28,28,93,21,30,191,116,91,115,
+143,108,227,61,58,83,134,252,252,170,63,240,36,147,146,48,79,54,71,235,193,227,57,236,112,1,104,77,110,0,253,209,30,159,186,159,56,32,14,131,39,245,227,63,137,112,154,46,161,72,29,64,242,238,65,237,193,
+7,159,99,145,248,213,80,95,186,177,235,242,249,165,135,190,79,217,51,140,123,99,184,235,145,34,190,211,204,82,240,57,217,36,170,59,244,197,151,228,223,94,49,208,2,199,157,23,0,163,176,207,64,38,233,232,
+11,72,0,252,136,226,156,179,196,63,229,147,140,142,121,3,182,48,114,112,72,237,201,0,122,224,212,75,112,51,133,138,235,142,128,253,165,241,142,255,0,241,234,0,247,35,244,171,11,115,255,0,76,239,48,56,
+12,18,98,64,207,109,214,196,146,15,126,49,212,118,52,0,190,124,24,192,142,80,73,61,227,56,28,143,69,25,207,3,219,35,147,154,80,96,35,113,142,231,174,63,229,150,222,79,169,66,7,76,247,25,235,83,45,192,
+63,117,239,177,198,115,191,140,31,250,243,30,189,248,224,103,60,211,133,192,39,137,47,142,123,249,74,70,123,224,189,147,19,206,56,234,112,49,207,36,0,143,200,199,203,246,128,7,111,220,15,92,243,229,128,
+115,142,50,125,200,207,2,112,145,185,31,61,200,7,147,204,36,119,231,36,168,199,94,222,184,168,178,207,141,178,94,146,120,195,91,161,25,238,50,45,70,121,237,219,156,244,229,193,38,25,249,229,30,160,217,
+147,199,211,236,167,142,127,65,232,40,2,97,111,24,228,189,207,3,56,99,111,234,113,140,56,39,60,117,200,201,228,227,52,190,74,28,1,246,134,36,127,11,90,15,167,6,67,159,78,8,25,34,161,15,63,67,44,216,28,
+241,103,183,39,211,13,10,31,81,199,115,218,165,71,152,140,121,210,246,227,236,68,16,120,228,157,157,190,164,113,208,208,4,139,24,7,24,190,207,160,123,46,189,62,232,148,99,167,108,14,15,74,95,46,16,71,
+203,120,79,185,179,63,76,254,248,254,121,234,51,210,133,243,206,113,119,58,250,3,104,48,58,246,41,142,59,241,158,189,248,169,4,87,71,131,124,112,122,22,181,133,78,56,25,249,176,122,224,100,12,253,104,
+0,9,23,79,46,240,240,113,150,135,215,212,92,40,43,211,160,231,233,78,88,212,114,177,94,12,113,208,17,129,200,225,46,191,49,131,199,175,66,162,41,79,222,191,0,12,227,116,113,96,245,199,241,100,228,118,
+237,252,212,169,78,183,177,128,120,249,161,12,122,115,140,72,167,25,56,207,57,244,0,80,3,67,96,140,69,117,208,125,232,229,39,28,231,31,233,139,215,168,247,250,211,204,219,115,251,155,156,103,157,209,75,
+145,193,238,215,216,235,142,48,61,59,147,74,133,206,118,222,199,143,83,108,56,237,218,117,207,167,231,142,156,79,137,56,205,250,225,79,79,179,160,235,140,15,158,228,245,236,7,167,225,64,16,11,133,192,
+196,114,129,211,38,34,49,211,63,242,242,125,59,228,103,190,73,167,253,164,116,217,56,207,253,51,126,7,28,241,57,60,122,99,142,6,59,84,228,160,225,181,15,174,34,181,94,185,232,173,48,30,157,78,58,100,245,
+160,36,44,57,191,97,193,201,242,236,72,246,249,69,200,63,215,216,241,64,16,137,129,193,197,206,51,158,35,147,24,231,158,31,39,62,205,254,52,255,0,59,147,204,216,35,156,161,39,35,61,140,231,24,30,163,56,
+224,246,196,198,40,54,255,0,199,234,140,231,172,118,171,223,29,69,224,4,116,206,79,183,212,11,109,200,55,145,255,0,228,179,30,58,0,62,217,232,71,4,140,115,142,228,0,66,46,10,240,60,239,95,185,23,244,148,
+183,124,242,71,184,164,55,7,145,230,76,59,253,197,7,167,78,95,244,250,116,205,77,182,197,120,107,161,187,212,121,3,159,109,183,196,231,60,227,110,121,61,115,202,145,98,114,69,201,61,58,172,0,245,57,224,
+223,15,229,147,215,56,24,160,10,230,118,56,255,0,73,184,0,100,96,36,103,242,44,79,81,211,56,198,9,244,160,58,147,147,115,114,126,162,216,143,199,229,57,227,29,79,95,80,77,76,22,14,139,114,227,35,160,91,
+64,122,30,71,252,76,50,51,215,63,204,14,84,170,15,249,111,40,200,231,113,180,25,28,140,131,246,163,248,100,228,119,207,96,8,124,197,193,30,117,216,39,3,42,109,199,63,140,68,122,116,35,131,193,228,211,
+188,196,239,37,227,140,127,211,6,56,29,240,98,193,56,228,12,227,61,113,217,219,226,200,43,114,235,129,222,107,65,207,182,46,137,30,157,191,158,31,251,188,143,244,183,39,156,143,50,30,8,228,140,125,176,
+142,158,223,135,74,0,136,76,14,0,91,236,99,32,249,118,188,246,237,24,62,254,185,32,246,163,207,244,142,235,234,99,128,3,143,83,181,73,235,220,243,239,131,83,170,169,200,55,79,131,208,121,145,156,122,228,
+125,168,231,245,227,215,173,35,52,64,143,244,153,126,190,124,42,50,120,232,103,57,29,7,81,245,61,192,43,9,78,115,229,221,129,234,18,49,142,122,124,185,207,60,2,14,125,15,28,188,203,33,1,76,87,36,117,201,
+66,73,25,28,252,128,131,142,135,56,227,166,7,53,41,242,75,99,237,4,14,188,207,17,227,3,39,62,122,227,168,201,39,156,142,120,197,38,212,96,74,220,17,239,246,164,3,229,28,15,150,232,241,223,24,198,120,61,
+78,64,43,239,148,19,139,121,115,207,88,193,60,247,56,113,236,127,206,105,12,178,130,51,104,237,219,13,6,112,123,30,103,83,193,228,244,227,161,233,79,40,131,147,117,140,147,146,46,129,207,231,113,219,32,
+158,184,247,238,210,35,200,6,233,114,115,199,218,73,31,164,132,14,189,115,199,24,199,20,0,121,247,92,109,177,92,28,243,246,108,31,92,31,244,192,9,207,95,195,29,40,18,221,176,255,0,143,84,0,159,226,132,
+17,234,58,222,30,127,206,7,20,134,40,8,255,0,143,168,115,130,57,157,183,17,223,147,56,201,245,36,100,251,240,105,166,218,2,63,227,226,38,235,193,149,200,62,159,242,208,143,199,215,185,230,128,28,223,105,
+28,11,88,114,65,39,22,224,19,248,139,130,120,250,253,50,1,195,10,92,183,222,182,132,14,121,48,176,237,192,35,207,29,122,30,113,158,228,245,132,219,219,169,36,60,36,244,230,227,3,241,224,224,30,153,237,
+142,113,80,188,118,135,141,208,158,255,0,241,244,115,219,184,207,35,30,221,62,148,1,97,150,78,134,214,12,240,48,45,212,242,71,7,155,174,122,227,142,62,156,208,17,192,255,0,143,88,48,127,233,206,2,127,
+28,220,15,230,123,213,22,138,221,176,60,200,87,168,31,233,108,71,110,57,136,142,159,143,115,238,213,130,0,113,230,64,51,208,253,171,169,231,175,200,191,95,192,228,208,5,239,45,137,207,216,224,25,206,63,
+208,173,199,29,121,253,249,39,7,160,236,123,246,167,249,76,65,38,27,96,7,64,108,208,158,79,10,118,200,70,56,237,147,211,29,43,49,149,23,144,208,30,48,15,158,132,247,207,37,14,113,215,158,131,158,122,211,
+55,48,201,95,39,174,70,46,34,28,243,220,41,224,113,219,62,152,160,13,19,9,232,45,109,184,239,246,117,83,200,246,201,253,7,67,146,15,86,125,153,185,38,214,44,19,252,40,65,198,120,56,17,28,147,156,122,113,
+199,124,82,119,148,176,111,221,125,62,211,14,50,15,60,180,56,231,39,174,113,244,21,3,74,224,28,178,142,248,91,187,81,158,195,143,179,158,121,236,49,212,140,12,208,6,139,90,176,39,109,180,67,216,65,27,
+31,204,199,147,207,183,245,52,195,111,32,57,251,58,1,158,155,80,126,67,97,61,48,49,200,24,228,244,172,215,186,42,0,220,203,130,114,5,229,177,25,247,2,221,65,231,147,219,25,250,209,246,217,15,5,201,60,
+146,62,209,0,29,184,57,69,3,24,61,15,211,138,0,188,214,115,16,54,194,171,201,254,20,237,245,76,255,0,65,206,59,229,5,172,221,224,140,159,82,83,31,145,132,159,196,30,191,142,105,139,233,63,190,0,235,205,
+196,13,252,227,63,128,206,58,244,226,157,253,161,39,82,241,17,145,140,201,1,227,140,14,128,30,253,199,20,1,100,219,204,56,41,8,207,164,146,99,174,57,217,106,122,143,81,192,252,234,35,110,227,59,150,217,
+70,7,89,166,228,159,92,217,100,19,215,57,228,143,81,76,58,139,176,192,104,113,140,17,152,219,36,246,226,76,113,199,65,215,36,122,6,181,252,132,1,136,176,15,93,193,79,95,247,212,15,200,250,208,3,30,223,
+158,68,7,215,18,63,4,117,193,107,93,221,7,7,140,253,50,105,190,76,132,14,35,92,131,130,37,67,128,112,58,155,99,233,233,215,56,233,78,251,99,30,2,197,193,234,28,18,126,191,189,219,249,99,183,39,154,105,
+186,57,31,234,135,115,159,47,158,114,51,139,129,140,129,235,223,144,123,128,39,150,66,157,205,7,61,119,24,88,115,234,126,203,131,223,167,174,51,205,68,87,28,7,182,62,184,104,198,50,120,224,65,145,199,
+39,249,129,205,76,46,152,30,144,100,143,239,63,60,103,248,47,71,95,203,159,198,131,122,236,122,64,79,25,6,75,140,28,3,206,126,221,142,56,239,245,29,232,2,139,166,58,53,182,7,168,221,198,122,255,0,199,
+191,211,219,215,29,153,130,191,197,111,200,228,4,0,254,25,132,118,207,62,189,1,235,87,141,224,232,203,0,61,128,154,236,14,252,146,183,189,255,0,159,175,21,17,186,66,114,198,21,199,164,215,188,251,103,
+237,163,143,233,158,185,160,10,111,230,31,185,246,126,122,228,133,199,166,0,132,147,219,24,24,245,238,106,34,146,158,63,112,221,184,144,228,227,211,253,27,60,251,255,0,141,93,107,164,32,128,99,11,140,
+3,246,155,192,7,29,179,122,0,35,183,127,192,26,143,207,255,0,166,138,125,25,111,46,70,6,48,64,63,110,32,119,227,104,233,142,7,80,10,139,109,113,201,95,47,212,227,97,227,158,72,242,148,246,227,57,0,245,
+4,82,121,23,125,3,71,198,7,240,130,1,207,28,70,51,146,122,245,24,235,220,217,251,66,156,102,86,193,57,56,190,155,3,254,251,188,206,79,108,100,126,180,52,177,242,124,249,151,129,149,251,100,152,198,121,
+201,23,39,211,208,246,233,197,0,84,107,107,178,6,100,85,201,60,100,112,48,71,100,235,200,228,125,71,168,128,219,222,12,129,34,16,59,157,163,211,187,39,248,253,58,10,186,210,67,255,0,61,36,60,244,23,243,
+103,111,190,37,198,79,191,81,156,31,69,18,67,142,178,30,123,94,76,114,56,234,89,143,191,124,251,140,242,1,158,109,175,251,176,3,57,255,0,91,17,30,167,254,89,18,7,78,249,227,243,112,181,212,6,8,145,50,
+59,121,176,231,142,152,38,37,57,233,206,122,213,208,241,130,72,138,67,238,102,87,56,199,95,153,134,6,125,189,241,154,112,32,128,66,74,222,138,30,16,57,7,57,12,224,113,236,71,124,30,70,64,40,189,165,249,
+193,50,237,237,159,54,30,132,115,252,0,247,192,227,212,145,81,253,154,240,12,155,133,199,66,166,84,36,19,233,242,14,123,224,31,199,140,214,144,219,252,80,204,115,207,88,59,228,231,229,155,24,237,156,119,
+227,169,167,136,193,231,200,144,14,160,19,9,250,159,245,163,219,147,252,186,128,102,27,107,129,210,108,147,215,11,23,222,198,9,44,91,229,227,25,32,103,166,6,115,134,249,50,227,150,207,36,159,248,246,35,
+29,199,44,78,15,208,231,245,58,162,37,60,121,79,130,50,14,87,3,177,231,205,61,187,96,118,239,129,71,148,135,248,88,99,187,24,248,235,147,247,216,231,159,97,249,208,6,88,64,57,98,205,216,16,214,126,216,
+207,3,30,227,146,49,192,192,160,42,177,0,36,141,244,22,132,15,169,44,14,122,116,199,60,99,211,85,99,92,227,204,143,208,110,116,235,142,187,64,232,58,245,61,42,101,128,30,124,212,3,142,130,30,14,48,122,
+158,70,125,143,62,135,52,1,142,177,70,114,12,115,117,234,169,107,129,215,159,148,228,245,224,228,115,207,189,61,99,183,92,238,89,121,25,63,186,140,250,115,185,24,242,115,198,113,143,76,154,213,48,12,97,
+110,48,56,25,1,7,126,121,7,191,78,15,35,62,228,52,90,3,214,243,30,160,62,14,57,28,129,39,215,184,61,184,160,12,188,91,1,129,12,196,240,56,133,113,143,76,131,158,184,206,125,121,237,148,205,160,32,249,
+119,0,245,218,109,211,3,243,92,253,57,31,92,245,213,22,10,121,55,91,135,92,121,239,129,207,28,43,228,241,215,185,231,176,164,251,2,14,77,204,121,206,121,184,126,57,232,3,112,0,206,57,7,35,131,214,128,
+40,102,208,140,249,55,7,4,228,11,116,237,200,61,80,103,208,103,223,2,158,191,103,231,17,93,0,113,193,134,36,233,208,97,159,158,185,236,121,207,124,213,214,180,24,230,225,49,140,124,183,32,116,206,112,
+55,40,62,248,31,208,82,139,81,208,92,50,241,129,155,134,56,62,248,114,0,244,199,78,156,80,5,125,246,224,112,236,160,14,240,70,113,239,145,32,245,234,78,113,199,25,163,206,135,248,39,218,114,63,229,144,
+35,31,133,202,227,156,125,79,110,149,57,182,97,207,218,73,250,92,17,207,28,227,129,142,189,78,115,156,103,154,5,190,6,124,247,61,113,139,150,252,51,137,79,127,79,78,130,128,24,175,145,149,156,100,117,
+204,69,64,231,142,147,183,97,211,177,239,218,156,38,99,255,0,47,35,175,24,36,12,103,254,187,227,142,63,152,197,5,48,51,230,200,49,206,126,216,195,60,140,17,131,244,235,207,56,244,167,33,114,49,231,176,
+200,232,111,50,122,228,125,233,129,247,246,252,104,1,203,36,185,249,110,15,177,5,121,227,215,237,7,129,220,30,254,245,32,150,80,57,187,112,57,3,148,239,143,75,206,9,206,57,228,246,199,74,85,118,28,111,
+39,29,79,218,87,166,121,231,207,60,119,201,60,253,120,167,153,64,7,247,210,3,147,255,0,47,75,128,8,57,31,235,189,14,125,49,200,199,52,0,11,153,6,7,219,15,65,193,116,224,250,96,221,231,245,252,142,105,
+198,226,127,188,47,64,255,0,120,131,142,190,151,195,31,203,154,97,152,17,129,51,30,126,232,187,78,157,136,2,231,131,140,246,245,207,161,65,46,15,252,124,78,164,255,0,211,202,227,159,67,246,131,207,94,
+152,207,82,13,0,79,246,139,156,3,246,212,206,49,193,36,103,156,112,46,219,39,176,228,158,121,57,197,70,110,47,15,75,230,36,103,128,175,211,167,252,253,174,49,147,199,65,248,145,76,105,9,32,27,169,136,
+255,0,175,168,193,56,247,37,143,215,235,145,158,104,13,187,3,124,141,215,173,218,112,49,215,135,31,174,62,189,168,2,69,123,195,146,110,139,100,16,51,158,58,245,63,108,39,183,97,212,224,123,27,174,143,
+89,219,253,210,199,158,189,63,210,199,212,114,79,4,138,96,84,94,79,156,122,31,150,235,35,191,95,155,31,76,103,167,230,161,80,243,153,1,236,60,210,223,135,14,50,71,175,124,243,64,18,226,229,148,31,52,183,
+80,9,4,143,161,221,120,123,241,192,233,146,115,77,38,232,18,9,82,122,224,198,188,250,14,46,15,110,253,185,28,210,149,76,143,190,0,231,253,99,19,248,227,119,63,167,183,52,205,209,130,127,214,128,0,234,
+210,30,254,158,75,122,250,253,113,64,8,77,209,7,228,83,200,32,132,7,223,57,19,240,120,234,127,1,142,142,2,236,140,8,137,245,2,50,127,60,75,211,182,7,31,206,144,20,61,24,140,244,200,184,35,175,125,176,
+15,124,224,53,7,103,95,56,114,7,240,93,227,140,250,90,16,61,201,35,243,160,7,121,119,93,62,206,199,61,182,63,83,233,151,108,30,56,234,59,30,58,35,71,118,14,77,163,242,64,229,71,63,154,112,127,28,28,116,
+237,73,149,60,9,147,147,147,145,121,158,125,49,105,180,159,255,0,87,29,158,8,7,6,88,137,245,34,240,156,253,126,200,0,227,223,183,214,128,16,69,118,127,229,197,137,237,242,198,122,227,35,24,110,188,245,
+28,227,177,167,8,238,148,228,217,74,113,253,213,139,159,175,238,137,207,92,245,61,112,121,163,229,61,101,65,130,48,118,222,30,153,228,98,220,159,92,122,251,100,209,188,96,129,115,22,14,14,90,27,209,147,
+215,169,183,29,127,16,61,78,104,1,60,187,131,130,214,83,3,215,38,56,189,15,32,155,99,245,206,125,125,169,134,59,142,166,222,69,199,125,144,253,113,255,0,30,217,246,250,103,56,230,165,231,143,223,194,224,
+115,196,55,164,140,100,156,226,28,246,235,206,41,135,105,199,239,97,228,116,242,239,177,199,174,32,28,123,240,71,29,114,5,0,40,91,146,0,16,202,15,113,177,51,219,31,118,220,117,200,56,201,245,199,74,81,
+5,219,31,185,48,235,247,162,95,169,198,97,227,175,127,90,96,141,92,224,61,183,108,254,235,80,246,244,143,57,25,245,25,231,142,69,52,194,20,146,82,23,244,11,14,167,212,242,121,253,58,125,49,64,18,152,46,
+129,206,211,199,66,203,30,62,191,52,28,116,207,248,82,21,185,207,32,14,156,98,12,122,103,62,80,29,1,25,238,114,79,122,131,203,199,2,213,9,36,130,76,26,139,114,71,76,17,143,192,143,83,207,90,81,9,192,205,
+178,145,216,11,75,246,24,234,58,174,48,115,158,56,206,49,144,8,160,9,130,202,6,89,155,211,27,162,28,122,240,170,71,215,143,78,70,41,12,110,14,119,182,7,29,65,199,177,42,78,58,224,115,200,245,235,81,152,
+99,36,238,182,25,234,63,226,93,122,78,51,140,231,97,232,15,3,240,56,160,44,96,130,34,140,103,57,206,155,120,14,48,122,145,24,28,156,241,144,1,60,158,184,0,120,87,239,36,157,143,50,103,36,103,63,242,211,
+28,231,211,142,127,23,199,27,243,181,129,97,146,1,147,147,128,59,103,215,211,243,207,53,92,178,18,115,110,132,115,210,194,243,60,117,198,80,243,222,147,205,131,24,251,41,30,167,236,87,92,122,142,97,57,
+233,211,183,67,198,40,2,248,89,135,44,172,71,66,85,129,4,243,142,89,199,167,29,120,207,165,40,39,35,49,241,220,151,92,159,195,204,253,71,57,252,49,158,101,131,60,194,113,237,103,54,1,227,158,97,29,248,
+28,99,167,74,60,248,58,136,14,113,255,0,62,175,192,198,57,37,70,58,227,28,31,79,96,13,109,209,167,37,19,211,135,64,64,206,56,34,79,168,224,158,121,230,147,205,135,32,144,0,4,144,48,204,78,120,207,250,
+208,79,35,223,235,140,99,48,92,219,147,134,89,23,3,175,217,35,32,117,254,243,103,29,72,235,211,31,89,4,182,152,255,0,90,1,238,77,164,3,24,233,208,156,1,236,113,244,160,13,48,214,205,201,73,78,50,8,8,121,
+39,190,76,140,14,50,59,158,121,4,12,210,19,8,206,212,152,14,71,220,45,145,211,147,188,17,219,140,247,206,122,103,60,201,104,127,229,162,156,3,214,218,216,103,233,243,12,115,216,19,159,94,180,205,240,118,
+242,193,60,241,12,0,254,97,198,59,114,113,211,146,104,3,64,8,249,200,148,131,211,9,128,15,96,9,103,0,113,215,158,63,18,67,179,57,62,103,126,54,198,59,117,201,7,158,125,63,14,106,128,145,15,3,105,200,254,
+236,35,158,135,143,180,117,231,176,4,143,208,47,31,80,164,96,144,48,96,239,233,155,143,79,234,57,230,128,47,51,71,131,243,72,56,233,242,224,116,227,134,92,241,156,96,14,105,161,173,184,221,43,131,238,
+141,142,255,0,221,98,73,247,35,154,170,50,114,66,185,29,190,104,70,8,199,4,139,145,143,108,159,112,56,164,220,202,126,227,241,223,114,96,145,147,147,254,154,217,200,235,199,110,125,128,45,3,1,63,241,241,
+129,158,48,179,227,62,135,0,127,245,186,246,20,165,99,63,242,240,79,32,12,27,195,143,175,183,211,24,205,64,29,216,100,137,0,7,28,50,143,167,63,106,247,233,232,50,112,105,217,199,79,48,146,15,30,105,3,
+191,77,179,159,112,79,39,208,208,4,194,37,255,0,158,196,243,129,147,116,167,219,130,221,254,132,115,206,56,195,138,186,244,157,66,147,130,12,183,131,140,116,249,115,233,211,61,6,51,85,131,78,9,216,146,
+28,245,34,226,67,207,161,196,195,159,199,35,142,79,90,93,247,75,201,134,224,156,245,251,68,227,32,158,199,237,139,249,245,199,176,52,1,48,243,71,89,225,199,109,211,223,224,118,25,35,62,167,142,157,248,
+38,142,128,131,60,57,206,6,201,175,78,7,92,127,171,228,14,195,60,122,228,212,34,75,190,64,23,73,212,224,93,78,120,235,156,125,172,244,206,120,36,12,103,166,104,50,92,156,229,110,142,65,201,251,69,195,
+251,228,255,0,164,31,127,79,204,208,4,225,128,206,100,136,240,57,99,126,123,247,197,185,36,227,223,142,248,167,130,78,49,37,168,199,115,30,163,238,6,15,217,24,114,57,207,63,90,163,186,102,254,27,174,48,
+121,107,130,48,59,255,0,199,195,14,51,248,28,116,206,76,133,164,28,49,186,82,122,29,243,113,192,57,255,0,143,140,115,193,57,3,63,64,40,2,217,145,212,241,52,39,177,2,45,64,142,115,215,54,60,253,79,255,
+0,90,129,51,130,55,60,60,12,113,22,160,51,219,31,234,23,249,112,122,10,165,243,227,253,125,198,115,200,195,158,153,0,252,211,140,253,14,6,7,6,154,217,198,90,91,179,199,3,18,112,1,193,60,93,158,7,211,215,
+138,0,186,211,12,100,156,243,215,200,212,88,14,184,193,54,231,7,184,3,158,189,184,166,53,194,175,82,164,245,36,195,122,9,201,244,107,78,56,30,190,184,197,81,119,125,160,121,151,132,116,42,35,109,188,231,
+251,247,92,255,0,223,63,134,58,160,112,0,13,246,163,211,145,20,103,241,57,184,200,62,163,156,254,52,1,111,237,17,185,232,48,57,63,187,188,94,14,123,155,76,118,228,15,240,167,9,161,206,3,21,201,237,21,
+209,198,50,70,79,217,176,115,207,215,30,224,138,59,226,29,68,231,184,249,33,29,58,3,151,124,100,1,216,82,137,97,0,252,147,228,17,255,0,44,160,199,83,158,126,82,127,153,235,193,224,128,104,9,35,7,135,231,
+39,1,162,185,3,232,54,198,163,167,215,38,165,251,68,68,5,47,24,60,115,155,177,156,116,254,231,25,62,167,232,59,228,153,109,250,136,102,246,62,76,57,3,159,64,196,103,63,143,0,118,20,225,60,69,120,134,124,
+231,171,71,31,79,251,243,200,231,175,4,116,57,160,13,47,180,198,49,200,60,103,137,103,3,31,67,46,6,123,103,159,200,225,235,44,47,147,179,115,117,230,73,63,35,153,9,61,250,118,227,140,86,120,120,136,230,
+218,82,71,172,81,227,158,223,115,36,114,49,211,184,231,32,5,6,34,57,178,153,136,228,145,8,110,189,121,16,185,245,235,248,208,6,136,84,206,18,46,64,7,30,113,198,120,200,249,139,30,189,177,238,15,171,72,
+96,78,216,208,100,242,12,200,113,159,172,121,254,121,227,235,84,67,66,196,255,0,161,182,123,102,221,14,127,3,106,199,161,32,128,195,142,135,181,60,44,68,140,217,169,239,205,178,113,237,255,0,30,135,234,
+113,208,14,253,104,2,216,220,54,131,246,112,73,36,159,58,60,227,140,140,109,36,227,183,7,25,198,59,83,246,19,200,104,61,243,42,176,255,0,190,124,145,207,57,239,233,214,169,180,113,156,31,178,50,227,56,
+219,106,199,220,244,183,25,198,79,79,126,58,10,107,36,3,1,173,229,3,36,140,90,145,145,223,172,107,147,207,28,15,126,15,0,23,74,158,115,246,83,140,147,184,55,0,251,253,156,131,237,201,235,193,235,136,195,
+133,24,2,216,114,121,85,13,158,78,120,54,109,200,239,206,125,170,153,91,114,62,91,119,207,63,242,236,7,35,142,62,79,243,214,144,8,179,204,19,1,234,32,82,71,166,6,1,207,233,207,124,80,5,178,123,3,22,125,
+226,83,129,206,64,255,0,137,120,227,158,228,100,240,115,144,41,172,237,206,124,191,76,8,24,246,244,91,12,17,252,141,64,76,39,131,28,227,176,205,170,228,247,224,239,61,79,98,50,115,201,24,205,38,109,134,
+7,151,56,199,31,234,35,3,156,243,146,249,255,0,61,249,160,7,153,176,79,3,61,15,250,56,57,30,163,54,39,31,66,65,232,64,29,154,178,130,10,239,85,3,168,54,253,207,126,44,48,57,4,224,144,9,207,124,10,110,
+109,134,127,215,175,210,24,254,189,124,213,235,158,253,79,82,123,32,242,57,97,21,219,30,188,66,132,103,158,226,224,244,56,207,25,199,110,180,0,255,0,57,122,9,80,131,140,131,103,145,235,255,0,62,68,159,
+199,215,161,236,166,72,199,70,87,35,63,114,221,149,121,62,135,79,32,147,208,116,246,29,106,49,177,142,26,43,213,62,130,222,50,7,184,99,40,39,24,63,79,173,30,92,67,168,188,28,116,48,39,211,146,46,1,24,
+207,24,245,160,0,202,156,146,172,58,227,247,64,142,195,156,233,173,207,3,147,158,127,26,41,118,71,131,243,221,3,145,209,15,61,58,17,62,15,184,193,56,245,162,128,56,183,179,152,228,172,4,240,113,181,228,
+39,223,254,90,183,190,0,192,61,6,115,81,125,138,126,191,101,155,4,227,34,71,199,224,57,233,211,134,231,220,224,83,206,164,227,254,90,220,158,56,37,45,50,51,145,208,243,208,142,128,113,211,35,146,198,213,
+29,73,205,205,215,57,192,41,108,120,199,163,50,244,61,241,244,197,0,52,216,57,228,219,74,61,127,126,71,115,207,94,189,113,156,231,159,194,38,177,92,243,4,170,71,7,247,243,177,237,131,196,100,113,255,0,
+2,238,123,211,255,0,181,164,228,9,111,24,231,162,197,111,140,28,246,243,186,112,125,253,193,232,195,170,57,232,215,185,235,147,20,7,219,128,36,98,51,254,206,0,61,143,96,4,26,120,231,16,220,0,115,130,101,
+185,61,113,253,223,43,211,142,61,59,83,78,158,137,134,242,38,99,199,6,107,149,233,159,87,56,57,57,228,2,61,70,40,254,208,148,159,245,186,134,15,56,48,6,200,29,122,72,64,252,135,61,61,40,23,97,143,38,236,
+231,57,102,181,201,232,51,159,156,19,131,145,212,145,140,244,226,128,28,177,132,60,91,72,79,253,119,156,0,125,72,46,57,30,189,248,227,52,16,6,127,209,101,57,39,63,190,145,248,244,195,30,126,160,244,237,
+234,193,48,39,254,91,245,206,69,147,113,239,157,164,28,240,61,248,231,213,12,232,114,11,206,64,63,243,230,192,250,114,54,126,96,99,245,160,7,146,164,28,192,224,12,245,114,8,231,185,50,41,237,255,0,214,
+166,23,85,228,71,143,64,101,147,61,198,72,18,183,63,215,60,116,202,121,144,146,51,231,1,234,109,72,60,243,207,78,115,142,56,231,60,144,77,75,155,114,114,86,67,199,31,232,114,231,30,191,43,251,254,67,61,
+58,0,70,101,78,160,42,131,145,205,196,158,164,142,12,185,232,64,61,9,0,231,161,166,125,168,12,227,97,30,130,228,159,108,13,238,115,215,190,120,199,160,197,130,45,143,30,76,133,185,57,54,147,122,156,96,
+25,15,166,1,63,152,200,20,121,80,31,249,99,39,56,198,45,231,228,156,224,115,32,235,159,174,49,145,158,160,17,45,233,228,166,204,140,99,55,49,130,63,188,9,50,47,65,212,142,125,114,56,167,253,190,76,28,
+50,99,168,31,108,140,14,15,76,25,92,0,48,120,61,254,135,47,219,23,64,146,145,201,193,183,148,115,200,198,119,147,239,239,198,112,71,9,186,49,192,133,159,235,28,220,159,248,20,135,169,246,247,197,0,32,
+189,184,56,35,202,228,30,69,236,4,158,221,120,192,61,179,235,212,103,151,111,184,115,150,17,96,142,247,177,116,231,253,179,158,163,158,156,17,72,39,9,202,192,203,159,72,228,31,83,254,180,117,233,156,145,
+232,48,5,40,188,65,156,195,43,30,1,195,200,167,168,228,255,0,164,131,143,98,15,78,189,104,1,192,63,241,125,152,116,206,235,212,80,78,51,217,129,199,233,192,207,61,95,207,252,243,180,60,117,23,197,135,
+62,187,75,28,156,112,6,50,78,112,56,21,8,190,139,45,155,89,219,220,72,195,159,92,53,217,36,251,145,158,73,227,169,121,212,35,60,125,142,98,8,206,119,203,156,251,226,229,179,220,28,28,144,5,0,88,82,79,
+6,43,108,116,4,93,46,127,241,238,79,81,216,254,52,253,168,79,48,67,143,95,181,169,252,62,240,200,233,235,234,57,197,84,23,241,129,205,165,192,3,161,89,157,57,231,179,204,125,57,57,30,248,238,127,104,228,
+113,28,232,115,206,110,21,137,25,63,222,152,28,142,65,231,25,160,13,20,182,183,97,243,44,35,39,5,126,210,167,142,14,112,38,28,122,114,121,252,13,72,44,173,249,37,98,32,100,113,112,192,245,228,16,47,7,
+79,76,3,146,49,201,172,209,168,174,57,23,36,224,116,158,53,3,158,255,0,233,13,223,158,7,25,233,218,165,93,72,31,249,103,63,169,255,0,78,11,208,14,120,156,16,48,121,29,121,207,185,0,209,54,118,120,59,145,
+70,72,4,249,164,245,199,64,110,250,231,144,71,233,208,32,181,211,64,201,61,115,144,174,195,212,158,126,218,71,185,235,216,84,9,169,130,71,50,40,207,252,255,0,130,125,242,12,252,31,78,127,149,76,47,225,
+110,50,231,142,115,168,160,250,18,166,102,200,252,122,231,131,216,1,234,154,82,146,55,115,232,206,185,247,60,221,100,241,223,60,253,51,79,205,128,251,165,6,58,3,229,100,250,241,246,140,30,190,184,35,215,
+4,210,45,212,99,27,14,1,206,73,189,139,32,119,61,27,168,3,147,233,142,65,21,58,220,43,2,68,202,7,124,221,66,127,3,242,145,235,208,114,78,0,244,0,140,77,104,135,3,119,253,179,242,84,115,142,230,126,249,
+25,199,183,78,224,154,2,1,6,232,96,113,229,188,25,201,234,112,39,231,191,94,115,207,60,226,111,55,158,39,76,30,152,185,183,35,243,104,219,29,120,39,0,224,117,238,162,70,207,23,88,57,192,255,0,72,181,35,
+57,206,56,140,100,158,113,140,123,30,212,0,139,60,96,140,61,240,32,17,207,145,236,57,38,110,79,28,244,239,197,74,47,74,142,26,249,128,244,120,72,29,184,2,76,3,208,240,73,233,129,140,228,6,95,249,248,4,
+243,242,137,237,122,253,54,19,223,35,230,63,210,159,251,214,35,4,156,116,204,246,196,30,57,254,0,59,119,250,100,154,0,23,80,220,70,77,225,56,234,76,120,3,175,118,108,30,188,117,207,167,38,164,55,89,206,
+30,224,100,127,207,72,115,255,0,160,158,199,168,246,226,148,35,144,51,142,192,19,45,153,201,39,182,224,71,81,215,60,123,81,228,202,216,219,184,142,62,233,177,43,245,201,143,60,227,7,160,62,157,77,0,72,
+46,101,32,97,167,110,64,230,91,115,249,238,70,206,1,200,244,4,158,105,194,91,130,62,83,33,235,145,230,219,231,7,212,249,106,56,199,124,142,189,186,70,45,165,28,4,108,117,37,158,203,175,176,220,163,25,
+207,65,142,221,177,79,16,78,160,13,164,130,127,133,236,193,207,211,204,63,200,247,233,64,14,243,46,142,57,185,231,56,2,226,0,113,219,162,17,248,14,222,216,167,129,51,144,25,174,243,192,226,246,14,9,30,
+134,60,119,56,57,166,121,23,4,140,41,35,166,89,172,201,199,166,60,208,6,61,127,62,245,50,197,114,191,192,164,158,198,107,113,220,122,92,0,7,208,142,112,115,158,160,13,242,152,103,18,220,131,140,124,215,
+182,184,245,25,6,62,157,41,60,167,228,179,49,245,6,246,204,115,145,156,252,167,234,0,29,57,237,205,177,246,165,231,96,7,31,243,241,7,31,95,244,147,159,166,63,30,41,11,204,15,205,2,177,238,124,245,63,158,
+217,31,60,117,57,39,190,5,0,87,242,84,14,26,94,185,255,0,143,171,86,31,158,225,207,208,117,236,57,196,162,51,142,11,243,211,55,54,189,58,115,135,39,32,156,117,234,127,3,50,72,221,224,65,233,251,194,115,
+233,215,59,177,216,31,207,169,169,150,99,184,129,10,128,72,3,12,185,200,227,0,168,32,140,244,206,57,29,69,0,85,10,227,140,205,223,129,117,107,180,128,125,26,94,122,241,208,246,235,83,168,192,31,235,128,
+246,154,219,166,79,93,179,126,120,29,176,42,127,57,79,222,133,73,56,206,88,3,145,207,59,129,250,112,20,122,28,154,12,170,112,68,32,3,199,222,83,207,78,140,135,220,116,239,233,154,0,64,199,31,126,228,144,
+63,231,230,47,98,120,243,242,56,231,160,198,49,143,73,147,36,103,117,209,4,240,126,209,180,254,107,32,92,126,39,181,48,75,25,192,242,65,234,113,190,53,198,125,115,9,31,94,167,167,0,224,83,212,169,199,
+250,44,39,184,45,40,39,63,132,88,200,198,50,113,237,193,6,128,37,201,63,197,114,48,51,197,201,39,177,31,242,241,192,228,147,211,216,231,138,112,105,59,25,248,244,185,127,195,254,94,184,246,198,58,122,
+117,174,197,23,32,90,193,147,255,0,77,119,16,61,112,96,60,117,228,3,159,78,14,16,34,28,145,12,57,63,237,46,0,207,253,123,254,128,251,224,119,0,190,29,64,27,141,202,147,255,0,79,147,243,220,240,183,132,
+126,185,200,57,25,230,147,204,4,224,180,237,144,58,222,92,158,125,62,107,163,220,255,0,250,250,213,63,39,29,33,133,72,201,226,72,65,57,61,247,68,7,64,70,11,17,201,233,197,41,138,78,66,172,75,140,115,230,
+219,96,247,200,56,92,147,232,112,63,14,128,26,43,180,244,138,233,248,254,27,151,61,57,234,215,35,185,245,227,29,41,87,97,229,161,189,30,223,106,147,191,92,226,228,140,125,14,115,200,25,53,151,229,205,
+211,49,174,120,0,207,109,144,121,198,65,252,253,65,231,3,178,24,174,143,34,72,135,98,60,216,88,16,113,140,224,228,227,166,6,1,227,240,0,212,50,64,167,254,61,239,79,35,173,228,195,29,123,53,193,28,231,
+160,237,235,221,172,246,231,173,165,235,31,83,120,228,127,233,71,242,224,251,86,102,203,176,79,239,109,184,198,114,83,7,158,224,18,59,245,254,167,151,15,182,46,10,203,111,234,118,144,163,167,94,188,123,
+140,241,211,140,26,0,188,90,28,127,199,173,208,231,189,219,147,199,112,13,210,227,219,131,238,41,51,110,163,230,180,186,61,71,19,191,225,255,0,47,99,36,231,185,233,219,131,89,229,175,78,115,123,110,156,
+116,13,207,225,153,49,156,126,29,243,66,201,115,199,250,114,146,122,242,191,159,250,209,232,9,255,0,38,128,47,249,150,184,57,180,185,25,236,102,99,235,223,237,71,7,174,71,167,78,40,18,219,113,139,71,231,
+160,102,114,196,19,199,62,121,206,115,144,14,8,231,25,227,20,218,73,198,127,210,183,30,78,114,131,215,210,115,215,235,199,166,42,47,180,74,51,186,232,131,239,112,24,30,167,145,189,186,118,28,241,158,14,
+77,0,104,9,35,39,155,57,134,9,193,89,28,126,31,44,224,241,207,81,199,60,245,20,166,84,80,75,69,34,140,103,231,146,224,146,64,246,185,234,7,167,92,125,5,102,121,225,179,186,240,18,7,32,56,4,243,206,57,
+94,123,242,72,28,242,5,40,154,60,96,221,200,71,179,224,228,12,122,18,56,227,25,56,244,36,12,0,94,55,118,231,56,7,62,129,110,24,129,233,203,144,65,200,39,159,161,193,166,125,166,50,14,211,140,14,112,28,
+122,159,226,98,113,207,110,157,56,170,38,230,21,228,92,204,78,57,2,86,25,30,153,49,182,14,58,125,59,113,74,151,49,49,36,207,116,163,218,231,3,255,0,69,15,94,231,140,99,29,112,1,108,178,156,183,156,58,
+231,157,237,143,78,153,3,3,131,220,119,228,230,134,120,199,31,104,3,30,144,185,30,135,164,71,131,236,112,115,220,85,115,60,56,226,226,236,243,206,110,84,131,147,158,65,140,123,241,147,77,243,32,224,137,
+103,108,243,129,52,121,227,131,156,167,248,228,250,154,0,176,102,137,121,55,103,254,253,48,252,255,0,209,201,199,190,59,117,235,73,230,198,217,63,106,45,223,30,81,227,208,255,0,199,175,94,78,114,7,231,
+85,90,230,49,141,171,112,125,73,150,223,174,127,187,176,156,103,191,124,227,38,151,207,140,140,17,49,231,238,159,39,182,61,16,103,4,119,25,250,14,40,2,201,150,19,143,223,74,115,233,3,19,245,32,91,19,143,
+166,58,240,120,166,129,17,63,235,28,145,201,221,1,39,191,35,117,175,124,242,48,120,235,142,106,191,218,96,31,242,202,82,113,158,18,35,211,233,183,242,224,158,195,181,56,92,196,57,88,231,244,225,70,59,
+246,243,112,7,208,116,61,57,228,1,206,177,115,184,49,200,235,246,84,92,2,122,101,172,24,254,61,114,61,113,80,249,49,158,87,112,238,51,18,41,234,50,64,58,103,167,94,121,227,215,21,39,219,99,0,141,173,208,
+114,192,15,79,89,1,245,238,59,12,158,181,24,189,18,30,99,135,24,0,134,77,216,62,191,235,113,250,1,249,80,3,90,221,71,63,47,204,121,27,92,31,96,118,88,46,50,112,7,175,56,20,223,45,20,124,202,91,175,252,
+179,144,241,211,32,27,46,188,224,28,242,122,123,72,215,22,224,28,165,170,156,241,136,92,3,219,254,126,212,116,252,62,184,21,23,218,34,35,253,93,167,65,201,183,36,244,233,205,232,232,56,233,64,17,147,10,
+156,121,77,212,114,85,190,128,255,0,199,175,29,58,100,99,182,41,26,84,29,32,206,122,28,176,60,140,244,54,192,123,246,254,84,227,117,22,71,238,45,79,110,109,155,156,3,235,122,122,115,233,223,173,39,218,
+34,60,11,123,21,30,246,242,16,71,252,2,236,117,247,7,191,168,52,0,198,104,207,204,109,179,156,117,101,30,221,62,205,131,207,182,125,253,99,44,7,31,103,65,201,199,42,61,51,207,217,199,110,132,99,56,28,
+250,202,211,64,122,67,167,147,143,249,229,58,244,227,189,209,232,61,206,113,210,162,243,67,112,177,216,12,30,158,68,141,212,127,215,226,255,0,128,207,189,0,40,115,206,33,143,31,240,6,247,206,126,206,79,
+225,212,114,7,20,141,46,6,112,168,79,95,144,3,198,115,214,0,7,124,245,25,207,83,76,102,96,56,93,60,227,60,27,121,113,212,227,147,114,126,167,13,239,207,74,102,100,193,1,44,61,241,106,78,71,7,7,50,150,
+29,193,193,25,32,17,64,19,173,192,24,27,159,142,234,1,235,211,254,89,231,57,231,168,24,60,103,131,79,23,106,185,31,57,7,253,148,252,240,97,57,193,231,131,206,61,77,87,30,106,174,124,187,108,119,9,3,128,
+72,244,204,196,12,158,191,214,155,231,78,185,219,26,126,42,20,113,140,112,100,32,131,192,199,24,235,214,128,46,155,156,244,7,215,62,74,17,215,174,22,33,129,223,145,158,188,230,143,180,22,24,221,144,59,
+152,58,125,15,150,0,234,73,250,154,163,246,153,87,25,72,131,119,228,19,200,224,156,74,15,108,240,7,65,131,75,246,135,56,202,162,142,48,65,199,215,146,231,190,59,119,238,69,0,90,37,136,25,105,0,56,192,
+16,134,31,76,100,17,158,132,100,115,219,3,33,173,144,70,48,9,235,254,142,255,0,204,54,49,142,61,187,31,72,76,204,48,11,16,6,78,4,152,237,236,24,243,199,28,143,214,154,110,167,234,143,42,158,70,67,241,
+142,152,24,140,96,113,158,58,244,207,106,0,155,205,36,224,72,217,246,183,155,159,65,242,183,76,122,114,59,116,164,51,200,51,243,18,120,224,219,75,201,24,61,216,30,249,25,61,63,0,97,243,238,207,89,38,3,
+61,67,191,35,208,15,47,175,215,62,184,25,52,195,43,183,222,50,156,28,243,35,2,49,158,255,0,103,3,244,224,208,4,134,230,99,145,128,72,224,126,224,228,228,159,239,200,123,122,99,211,30,172,103,184,110,2,
+32,231,4,181,187,156,30,123,239,80,7,208,250,119,192,160,200,72,31,120,253,102,147,177,238,4,32,30,123,228,17,238,105,165,207,65,215,254,187,76,113,249,196,72,25,237,235,220,103,20,1,19,44,216,230,40,
+152,243,202,194,79,166,58,202,61,193,62,231,3,29,107,180,114,115,152,34,108,243,202,40,206,1,224,159,49,135,4,140,100,156,126,60,218,10,205,247,149,88,123,201,33,239,129,199,146,113,219,160,231,131,215,
+128,187,99,31,242,205,15,111,148,184,62,189,77,191,57,227,156,227,174,77,0,103,145,48,233,103,17,28,30,36,69,57,24,236,36,24,61,184,7,191,6,154,101,159,189,148,68,227,133,51,128,58,122,249,135,159,108,
+129,199,113,210,235,24,213,185,139,28,12,131,43,1,207,28,15,36,17,215,184,201,35,182,106,54,120,79,6,221,9,232,50,207,130,57,206,63,118,6,57,231,24,29,59,10,0,131,204,185,60,125,141,64,56,206,219,156,
+117,238,14,240,122,251,128,64,231,184,161,154,228,244,180,62,199,237,104,189,120,228,25,254,156,117,206,122,17,83,108,181,60,152,35,244,192,125,163,57,250,156,113,199,65,158,160,10,110,221,57,73,205,189,
+184,61,14,233,213,65,36,244,28,228,231,220,253,69,0,65,178,229,198,62,206,195,156,144,47,162,94,78,123,153,137,237,234,113,236,56,164,251,60,164,18,109,228,220,6,72,254,210,143,160,199,253,52,36,14,122,
+100,99,56,207,74,181,183,78,32,148,183,180,4,113,159,180,6,62,199,1,135,95,113,142,156,118,164,41,106,70,90,43,80,167,145,182,85,57,31,82,253,64,57,63,167,124,0,86,242,164,28,125,157,179,208,31,237,16,
+199,159,65,231,47,79,81,158,7,126,50,190,84,153,255,0,82,192,246,255,0,78,99,220,113,133,185,4,122,99,242,233,83,52,86,4,115,21,191,56,228,77,17,244,63,223,39,208,103,56,60,140,112,106,53,143,79,25,194,
+67,142,159,44,182,199,61,142,1,36,247,233,237,201,232,0,4,130,41,63,231,140,135,57,36,45,204,175,129,216,31,244,176,115,234,50,122,227,39,186,136,24,156,24,101,25,233,243,76,125,50,48,111,121,28,247,56,
+227,208,140,215,219,109,147,178,56,113,198,14,251,65,193,239,203,169,56,39,36,243,211,142,41,235,20,127,243,198,46,132,143,222,90,142,58,228,99,118,8,235,64,22,126,204,91,24,73,115,207,1,101,62,216,226,
+243,39,175,83,142,125,49,72,45,73,24,104,228,62,207,20,173,187,7,176,251,104,192,246,207,60,100,243,196,6,1,146,4,72,7,108,75,1,24,32,130,49,192,233,129,234,125,59,212,102,37,82,15,146,132,231,56,47,31,
+227,209,91,232,58,116,227,140,26,0,180,109,58,252,132,14,135,54,179,140,253,118,222,28,116,206,115,158,131,62,178,11,49,201,9,24,39,1,179,105,116,122,118,249,111,72,36,12,115,143,168,200,226,144,141,113,
+204,40,61,54,149,57,200,207,101,25,250,0,59,241,199,47,85,24,225,93,120,57,3,102,9,199,114,98,99,198,51,128,24,116,205,0,92,251,51,96,113,16,207,253,56,222,246,199,115,115,147,156,246,32,119,39,209,194,
+220,158,119,71,156,242,63,179,175,24,241,199,95,181,30,1,247,30,221,192,166,60,158,55,2,72,198,72,242,73,39,158,254,64,252,192,24,252,105,224,33,229,119,1,232,82,18,115,211,28,198,79,224,61,51,211,52,
+1,115,236,231,143,150,54,245,63,96,185,7,60,31,226,152,242,79,126,131,158,13,6,18,184,253,220,57,56,201,109,54,83,199,113,192,56,60,245,36,245,36,99,180,74,99,231,49,54,64,199,88,135,231,181,56,207,182,
+15,76,246,52,102,223,56,100,224,244,27,228,233,143,68,140,241,248,145,130,56,232,104,2,65,9,57,196,112,2,79,252,248,203,142,220,143,221,255,0,76,156,119,236,195,12,221,2,91,1,211,155,41,125,179,199,149,
+215,174,71,184,231,142,16,53,135,63,35,2,127,217,185,35,168,232,124,174,61,51,199,29,199,6,158,6,159,199,200,78,6,126,228,231,4,114,56,242,143,167,78,185,233,214,128,20,67,46,57,16,240,122,45,164,189,
+127,24,207,83,208,228,255,0,139,196,115,12,240,163,140,16,98,35,143,96,97,207,225,154,145,26,192,140,5,114,120,255,0,150,83,227,146,56,255,0,81,243,15,199,223,160,167,98,215,156,40,24,0,241,4,196,158,
+220,230,18,115,235,223,233,210,128,34,34,81,198,193,143,104,0,56,252,109,155,215,169,199,176,199,83,4,99,229,231,222,36,45,232,120,16,40,235,207,92,244,207,90,152,165,168,254,5,115,255,0,94,243,228,125,
+54,194,15,248,31,90,65,28,45,247,98,35,175,2,218,243,255,0,66,8,51,249,115,198,71,74,0,139,99,103,152,152,131,216,90,192,51,158,217,54,231,35,174,7,61,73,227,52,158,82,146,127,118,252,103,36,67,106,121,
+39,211,200,4,244,207,108,116,227,53,101,84,39,38,34,50,59,193,126,163,61,206,66,18,113,199,115,219,140,115,82,0,175,194,166,72,207,221,135,82,111,94,57,140,244,244,227,208,14,148,1,76,195,140,109,18,40,
+61,127,115,2,142,191,238,1,215,175,56,253,105,203,8,3,37,229,28,231,6,40,59,228,240,78,122,246,239,215,3,60,139,98,46,197,100,228,224,21,130,252,12,245,56,221,18,254,135,30,188,154,122,219,19,147,137,
+185,235,152,175,121,255,0,199,122,99,191,110,222,180,1,93,22,60,227,124,163,25,207,238,109,79,167,28,183,212,12,109,198,61,58,60,165,190,62,102,61,184,107,123,113,211,4,30,61,187,143,196,18,121,177,246,
+114,59,128,57,206,97,189,224,122,225,148,15,98,115,254,20,134,54,219,203,70,14,49,147,29,218,14,188,117,97,215,169,199,94,163,175,0,21,202,90,244,105,80,14,188,219,39,60,19,159,149,79,56,166,24,237,185,
+1,224,36,158,51,111,30,122,117,195,32,253,79,189,89,217,199,51,170,255,0,181,139,163,156,99,156,6,56,207,190,62,148,152,92,241,119,16,56,57,200,187,24,60,240,62,124,231,212,156,117,199,174,64,42,21,131,
+160,242,27,3,140,91,197,158,217,206,93,123,250,122,251,145,82,42,194,70,62,80,114,6,68,101,1,61,198,18,65,156,243,235,199,191,38,98,35,3,254,62,161,199,82,51,116,57,201,228,252,199,174,59,254,57,52,210,
+214,248,199,218,33,61,112,119,92,15,99,130,64,234,56,192,61,125,185,160,8,204,40,65,253,228,99,166,50,46,142,6,123,109,144,227,28,3,192,207,7,158,241,152,35,232,211,65,248,53,208,39,211,0,158,15,62,167,
+245,169,135,144,57,19,68,222,231,205,35,159,247,243,128,120,231,7,168,193,235,77,47,9,39,253,34,1,211,147,231,96,99,60,112,20,129,199,81,211,167,160,0,13,251,44,31,192,234,73,25,199,153,116,8,199,92,124,
+221,72,60,1,143,83,214,147,236,106,65,195,1,147,213,166,189,28,254,12,79,31,128,236,61,213,228,139,32,44,246,132,231,254,155,241,145,235,180,158,223,204,119,197,66,196,176,226,226,216,113,198,26,115,199,
+166,55,122,118,247,160,9,133,138,30,124,197,62,198,230,244,103,168,35,144,70,71,212,250,246,197,31,96,136,28,22,95,252,10,185,207,124,112,224,99,223,147,238,71,122,222,83,28,17,52,36,244,251,210,140,250,
+140,48,62,196,247,233,201,164,16,73,215,205,183,28,116,38,96,223,76,249,103,167,57,206,59,208,5,193,97,1,206,231,80,114,126,237,203,19,236,78,36,30,253,57,235,220,212,139,167,65,212,92,227,168,63,233,
+146,175,60,122,51,224,103,57,231,142,58,19,89,198,27,131,192,42,113,131,148,102,32,244,32,243,14,58,12,1,156,14,128,26,95,46,235,60,51,1,212,128,140,122,1,233,23,67,235,159,111,112,1,160,214,49,0,74,206,
+172,127,218,188,115,215,60,97,128,7,235,129,248,102,152,45,162,92,110,146,47,94,38,140,250,231,176,28,158,185,35,235,128,42,161,91,163,146,36,85,61,14,82,65,158,224,228,68,15,25,234,15,81,205,52,195,122,
+48,119,163,100,146,56,148,123,119,137,136,231,167,7,191,74,0,210,2,217,70,55,169,199,164,145,31,99,199,154,164,246,199,204,8,244,197,57,101,133,112,7,146,126,178,32,37,71,76,254,252,142,216,237,254,57,
+127,103,187,200,36,134,206,14,118,187,123,240,62,206,125,251,103,166,7,52,227,13,239,56,141,177,147,209,9,228,100,101,143,217,58,143,167,78,1,227,52,1,169,230,66,121,62,79,124,226,120,201,245,193,31,104,
+7,211,140,228,243,145,205,49,165,143,63,44,97,142,48,118,200,131,130,58,2,46,199,7,166,113,146,57,234,114,51,25,47,1,203,110,94,185,253,220,100,224,99,187,90,146,50,48,121,63,83,81,147,116,49,243,12,147,
+144,10,90,140,159,94,109,122,253,7,245,160,13,6,148,129,143,45,135,36,227,205,94,58,156,115,120,71,78,227,63,143,83,25,154,94,66,70,220,244,219,57,0,143,160,153,187,114,121,231,142,184,170,128,92,245,
+12,157,73,193,75,76,142,184,25,251,63,175,183,167,78,233,178,224,224,31,179,99,3,239,11,65,158,125,144,12,158,185,3,215,233,64,22,124,201,142,51,12,184,227,165,193,96,79,81,198,243,215,183,63,227,77,221,
+41,7,247,115,12,115,159,55,140,156,227,0,191,94,167,131,158,252,240,42,185,142,110,62,91,2,70,115,255,0,30,107,215,146,78,97,39,39,169,245,197,39,217,238,88,238,81,167,243,201,1,244,255,0,126,187,173,
+247,28,245,193,62,253,69,0,93,1,176,14,36,30,160,205,46,122,147,218,112,63,3,219,138,63,122,121,2,92,118,253,227,117,245,201,149,243,147,239,234,42,184,130,233,7,221,178,98,122,2,154,123,129,234,1,22,
+231,25,231,146,1,60,243,154,70,138,240,241,139,49,147,221,44,151,25,61,120,139,24,227,158,0,254,128,22,182,204,71,14,224,142,131,121,39,185,62,135,24,60,114,65,250,241,64,71,92,150,121,185,227,179,122,
+147,193,4,158,228,254,61,78,42,152,183,188,4,241,99,131,212,22,177,33,115,211,147,31,60,255,0,119,167,79,74,156,91,94,113,129,167,156,241,200,179,207,167,85,80,71,113,158,127,196,2,96,189,15,154,227,215,
+42,15,124,127,207,47,235,187,212,250,73,192,255,0,150,195,57,233,229,199,145,232,114,80,156,159,110,61,134,106,17,111,125,159,185,98,123,96,125,157,50,71,251,177,182,71,94,122,251,227,154,119,147,127,
+131,251,171,66,71,7,231,81,233,206,13,177,206,73,198,49,248,227,144,1,57,220,78,68,228,99,185,130,34,59,30,118,129,236,49,199,61,106,64,210,14,86,120,184,57,195,91,91,28,231,253,228,110,253,121,227,158,
+113,214,168,130,252,30,96,136,103,248,128,13,156,224,129,159,177,145,131,199,167,7,143,100,48,223,231,253,68,75,234,85,71,60,156,231,22,60,231,147,207,110,9,197,0,104,43,203,199,239,160,25,231,38,214,
+3,211,3,63,42,242,57,227,191,94,148,25,31,28,220,67,220,144,45,98,234,121,36,134,136,156,253,9,31,165,82,91,123,209,255,0,44,212,2,58,24,212,245,206,115,155,92,231,35,223,158,71,78,20,199,114,163,152,
+33,224,224,228,199,30,51,211,35,236,189,254,189,137,227,144,0,39,243,95,60,60,120,60,228,69,0,250,228,44,42,113,234,50,15,83,207,96,187,244,18,238,199,35,247,80,224,3,198,7,238,192,61,250,245,231,138,
+175,178,112,65,9,110,7,79,245,233,156,145,233,246,83,252,255,0,94,2,177,187,60,40,183,233,140,249,163,28,119,7,236,120,32,254,191,76,80,4,190,100,160,13,174,0,7,156,121,43,158,51,218,60,241,233,156,18,
+113,201,230,152,205,112,217,38,114,61,112,240,177,233,254,212,103,158,7,76,122,138,174,198,244,30,76,57,39,140,78,131,158,189,237,9,239,159,195,167,2,153,186,247,45,247,115,207,75,136,249,30,231,236,121,
+32,250,114,125,242,40,2,214,235,140,127,199,204,192,116,1,30,17,142,71,56,242,201,24,62,156,113,74,175,112,115,254,153,119,159,81,52,126,188,253,216,250,131,201,231,158,131,218,142,110,201,57,49,227,161,
+6,104,143,0,142,8,54,160,159,241,239,154,81,36,160,114,202,163,60,226,88,192,63,135,147,208,231,177,199,63,64,0,46,159,53,142,126,215,121,142,122,78,216,62,255,0,44,96,103,61,179,248,245,53,27,111,234,
+183,154,129,61,112,38,127,169,201,201,199,25,24,199,228,57,170,222,121,92,159,48,113,212,44,145,227,233,145,23,231,158,6,125,41,134,236,129,247,248,231,145,44,99,168,231,147,24,254,126,180,1,43,60,163,
+56,184,189,62,230,227,62,249,249,136,239,237,219,174,121,40,179,206,58,220,222,174,115,207,218,192,3,212,157,175,159,207,167,99,198,106,161,189,207,30,115,129,145,210,120,255,0,145,65,200,24,29,121,254,
+76,251,105,200,255,0,75,156,140,112,51,108,71,167,241,17,156,116,232,91,211,173,0,104,9,101,61,46,174,177,159,249,251,0,243,193,232,64,207,161,32,99,214,164,222,231,5,175,110,192,207,123,141,195,191,28,
+15,175,57,60,250,230,178,94,249,70,75,77,59,15,165,152,224,145,128,7,154,9,199,25,207,61,9,29,48,193,168,218,159,226,155,39,169,219,103,215,156,31,245,224,1,220,103,131,219,173,0,109,135,235,254,153,57,
+207,247,153,200,250,146,48,122,17,140,14,61,112,105,197,200,228,220,185,234,62,103,186,199,35,29,21,185,227,57,29,192,231,56,227,20,95,90,147,243,73,32,207,170,88,140,117,199,34,224,127,92,254,25,169,
+22,250,208,114,101,147,24,29,13,136,31,95,248,250,83,248,159,110,180,1,171,184,46,15,218,147,241,251,97,245,227,7,140,253,122,247,233,78,89,70,78,102,183,30,188,76,125,113,144,92,30,71,168,234,7,21,146,
+111,172,143,252,181,152,156,100,15,54,196,12,227,211,237,158,131,166,122,241,216,80,53,27,94,72,150,115,238,39,178,3,190,49,155,208,59,227,140,3,205,0,109,249,131,36,137,173,189,184,184,25,83,248,146,
+64,236,115,207,3,210,156,24,17,143,58,217,71,161,243,254,189,193,63,160,201,237,210,177,69,229,177,57,221,115,223,24,186,178,56,231,156,145,116,120,250,41,28,247,228,85,132,187,182,36,252,215,89,245,251,
+76,30,188,228,44,231,7,223,60,231,142,132,0,13,80,84,244,158,44,244,32,45,193,28,30,73,202,224,245,233,211,140,241,142,70,70,234,175,17,235,206,203,129,219,140,97,79,95,166,73,207,110,106,143,218,160,
+60,4,157,206,49,243,79,24,193,244,39,206,237,207,7,63,92,147,71,157,9,201,22,210,3,211,45,58,158,184,232,4,160,15,99,223,131,206,113,64,19,48,145,121,204,69,128,199,11,48,227,232,83,241,28,103,244,166,
+49,148,240,99,70,207,4,9,28,112,51,206,48,49,219,142,49,192,245,202,239,32,124,176,190,15,113,63,110,113,140,49,252,61,248,231,161,67,35,28,254,225,179,199,45,112,224,247,236,72,235,220,143,108,28,80,
+4,68,176,198,97,99,145,147,251,214,63,175,153,131,212,158,160,28,119,166,177,3,57,182,144,158,114,119,161,57,207,124,182,79,29,50,6,56,238,5,72,93,137,199,217,152,145,211,247,132,250,224,112,65,250,113,
+146,113,72,190,105,32,11,70,207,209,219,158,231,190,239,92,140,227,29,186,16,8,72,83,159,244,89,251,112,25,8,198,61,129,199,62,191,145,235,69,90,242,229,61,109,31,191,88,143,110,184,194,103,31,145,232,
+123,28,148,1,192,253,189,73,236,61,64,183,144,117,29,192,32,144,122,158,79,208,210,27,213,57,193,140,115,158,109,39,232,115,223,4,158,122,122,228,117,226,160,205,217,0,139,102,94,196,249,183,24,235,208,
+147,38,59,142,131,62,252,129,77,103,190,3,30,67,123,1,37,193,31,163,159,230,121,207,74,0,153,175,79,25,150,14,221,96,186,29,137,60,2,63,33,198,113,184,117,203,77,218,227,38,104,70,115,131,246,107,131,
+235,158,119,12,122,245,201,56,245,193,128,201,117,212,194,20,245,230,91,177,156,242,50,112,195,183,94,123,241,205,38,235,130,62,232,7,218,107,128,78,65,227,2,62,184,245,254,70,128,44,139,152,251,93,68,
+9,29,173,110,128,39,211,59,137,252,73,252,134,41,222,107,19,197,204,24,228,228,219,221,15,95,124,231,159,78,78,123,30,107,102,228,245,18,254,23,119,203,143,202,50,50,57,233,237,211,25,164,41,48,199,250,
+252,247,255,0,77,191,0,99,254,216,112,71,98,125,15,66,113,64,22,196,211,242,69,213,185,4,244,49,93,140,143,197,184,227,161,7,245,200,166,180,211,117,55,86,203,206,112,98,151,175,111,190,227,145,208,28,
+158,135,234,107,1,32,201,38,233,121,28,139,237,67,39,62,233,31,167,175,60,146,122,211,65,0,227,125,224,231,159,244,221,72,231,190,121,10,6,123,228,99,240,2,128,46,139,185,0,0,220,219,18,7,59,163,207,166,
+72,221,51,1,233,192,28,250,211,62,212,88,241,119,108,49,212,41,10,79,254,69,30,222,222,220,213,114,125,37,186,80,121,230,242,252,224,142,115,247,211,244,231,169,29,233,65,42,51,231,72,84,227,42,103,189,
+201,0,228,31,245,199,39,156,122,145,223,189,0,75,246,146,51,139,184,73,60,16,174,131,61,143,62,119,39,28,112,57,29,13,32,154,67,255,0,47,8,114,9,230,69,35,60,103,238,203,255,0,215,62,220,212,123,212,245,
+117,224,143,189,46,160,73,62,216,144,158,49,216,145,143,81,205,30,104,28,172,145,103,36,99,205,190,235,156,247,144,14,123,2,8,252,112,104,2,113,43,117,243,35,36,231,144,231,0,255,0,223,240,51,199,94,224,
+18,51,210,131,43,231,143,37,187,28,200,7,161,232,211,145,248,158,122,224,17,213,139,60,164,125,232,142,123,121,183,153,199,32,100,121,195,167,108,231,175,122,149,102,115,131,251,146,125,205,209,245,245,
+156,242,57,193,234,59,242,104,1,60,247,7,149,182,83,158,78,84,227,174,114,68,167,241,35,3,219,38,143,62,70,60,139,98,73,35,137,35,30,191,222,98,71,126,159,208,154,121,184,153,113,129,111,237,136,103,108,
+123,115,38,121,238,65,239,215,160,167,253,174,83,212,89,1,211,6,218,82,216,232,122,185,4,253,122,116,4,117,160,6,6,35,156,67,219,129,60,4,12,14,14,7,35,28,251,241,201,169,70,88,240,97,200,234,12,177,228,
+251,129,229,228,158,57,198,59,122,0,85,110,101,98,62,75,54,193,207,252,121,175,78,152,203,100,156,122,147,144,113,147,82,44,242,6,200,138,207,211,38,202,54,39,56,245,127,168,232,6,9,206,104,0,84,155,24,
+95,32,140,28,124,241,55,169,199,41,244,199,63,79,119,172,115,156,126,234,221,179,255,0,76,225,43,199,60,145,25,31,231,156,10,83,117,33,4,8,173,186,17,149,211,225,199,67,253,229,111,211,167,29,193,165,
+89,39,35,113,138,2,188,31,150,194,216,103,30,159,187,28,245,231,35,223,189,0,63,202,147,32,60,22,216,235,254,173,65,237,233,11,12,228,19,211,30,160,241,78,242,88,140,132,137,78,58,98,60,113,219,6,216,
+119,199,81,238,70,42,53,105,57,62,72,234,58,89,91,19,192,57,207,10,64,3,250,129,232,92,28,245,48,130,222,159,99,128,17,215,28,14,57,228,158,79,126,180,0,241,4,188,229,163,80,58,225,20,231,177,39,253,28,
+113,215,60,14,132,0,120,166,253,157,129,59,102,143,24,59,134,208,61,176,55,70,112,65,238,48,79,24,2,153,230,190,72,91,114,78,7,75,88,193,245,25,192,60,250,246,237,142,185,104,146,96,120,183,148,156,146,
+0,133,6,15,108,159,43,56,7,174,14,122,12,80,4,130,200,156,182,252,125,6,114,122,145,180,70,125,121,63,207,129,73,246,73,122,13,204,15,28,68,91,190,127,231,143,167,208,227,174,65,52,225,53,214,71,238,110,
+135,7,238,32,3,62,160,249,64,96,231,212,253,112,41,194,107,177,140,91,222,156,127,189,142,227,146,137,223,4,14,189,240,58,80,0,182,83,100,150,71,35,140,143,45,57,228,14,134,49,131,211,168,250,226,156,
+44,206,66,152,110,57,254,236,104,57,224,228,237,140,246,246,246,246,167,253,174,244,117,130,248,124,167,167,156,115,237,145,19,113,158,216,207,227,81,139,155,156,156,197,127,158,156,181,208,24,250,45,
+182,71,174,51,248,80,4,223,99,81,207,149,112,63,224,24,233,211,172,39,158,167,7,28,122,240,105,69,168,200,203,92,46,1,3,114,38,62,159,52,8,72,198,8,234,51,200,231,36,181,110,156,117,138,248,117,255,0,
+159,230,206,50,120,2,31,126,252,253,77,88,23,50,144,54,199,122,122,140,226,239,208,142,9,181,35,185,61,78,59,208,3,132,12,184,218,210,17,193,193,138,60,18,7,29,16,116,238,121,207,226,114,237,160,159,186,
+217,198,50,35,140,231,62,167,203,236,73,198,123,158,131,34,149,102,184,57,59,111,115,207,105,142,7,127,189,106,15,81,211,7,24,252,42,65,44,231,150,55,216,238,90,57,121,207,29,126,202,6,49,211,156,231,
+219,2,128,21,80,1,243,36,228,30,112,144,70,195,233,129,25,57,39,166,72,233,216,114,37,66,139,130,35,185,231,141,191,103,128,99,190,57,64,122,113,223,129,143,122,4,228,96,51,93,99,36,114,174,184,3,235,
+109,192,63,76,122,156,244,145,103,143,119,205,246,131,199,83,207,24,236,69,184,35,234,61,51,64,19,44,240,247,142,224,46,120,197,188,76,121,224,147,180,47,227,134,28,231,29,205,56,220,91,158,60,187,146,
+0,206,12,24,57,227,36,128,216,199,78,223,202,155,231,219,99,239,92,140,99,24,228,116,227,147,7,183,111,167,94,169,230,90,146,15,153,113,158,78,73,29,241,198,69,169,227,4,251,227,129,145,208,1,194,123,
+92,242,39,28,115,152,137,200,231,177,83,156,125,71,30,153,205,72,179,217,103,0,203,238,68,49,251,245,220,235,131,199,98,59,123,82,41,129,134,11,92,99,30,169,140,243,253,235,113,248,231,215,29,233,225,
+99,232,139,62,122,227,49,3,147,142,203,8,254,99,175,62,180,0,9,173,57,1,174,79,166,219,120,200,253,46,126,158,184,244,206,41,12,214,199,168,187,193,245,129,48,126,131,237,29,136,57,7,223,61,41,194,62,
+71,55,93,57,195,33,199,76,146,120,238,123,126,84,240,132,227,155,179,129,201,5,120,199,76,16,51,233,200,207,113,214,128,24,36,179,7,63,233,25,238,62,198,132,122,158,69,198,122,16,123,231,24,199,60,59,
+237,54,107,192,75,134,110,219,172,134,61,127,231,182,15,79,94,157,65,205,73,228,70,78,92,222,142,185,199,153,206,115,208,228,99,175,160,250,116,195,141,189,191,0,203,168,46,113,129,137,9,239,208,121,139,
+223,62,135,29,197,0,70,46,33,251,219,100,62,159,232,140,57,237,247,110,8,29,137,235,239,222,165,89,97,39,36,56,236,1,181,32,117,228,124,211,228,145,237,212,146,15,90,22,218,32,79,250,70,160,1,227,148,
+152,103,147,212,253,180,117,235,208,117,32,117,160,219,67,156,249,215,57,57,57,42,249,60,131,252,90,136,39,158,163,3,57,61,179,64,18,9,81,78,118,198,113,235,106,7,211,143,180,243,142,61,121,228,246,1,
+223,108,147,238,160,76,246,34,203,112,231,57,233,118,7,57,207,95,228,112,193,109,31,99,116,220,231,132,152,147,142,191,243,17,198,59,122,17,207,81,77,54,209,238,201,251,104,199,95,220,184,246,198,90,252,
+158,125,178,78,58,241,64,19,45,213,216,228,40,24,207,91,25,112,120,232,72,187,39,39,63,159,52,229,185,187,39,37,109,179,217,158,198,124,100,250,147,51,100,244,224,144,78,70,58,28,85,242,20,241,254,154,
+6,70,65,141,176,0,245,205,241,28,228,142,156,231,182,105,222,92,0,241,246,178,121,206,99,57,56,255,0,118,247,238,247,206,125,179,197,0,95,251,77,199,117,177,56,224,131,167,78,113,211,248,188,211,147,248,
+0,122,212,139,61,219,116,91,67,233,157,62,96,58,123,201,129,237,239,140,17,89,139,13,191,4,164,231,220,219,201,147,207,168,189,0,244,237,215,232,113,79,49,91,156,159,38,97,199,120,31,167,99,205,209,61,
+250,113,250,3,64,26,97,175,136,56,91,97,211,159,178,200,58,243,142,37,232,62,135,177,197,63,23,88,201,251,49,227,4,8,103,200,3,177,13,32,193,207,57,25,24,231,60,230,177,68,81,28,226,22,61,62,244,76,120,
+231,168,251,83,99,167,25,239,208,250,189,98,80,114,32,114,7,31,44,71,169,199,79,157,143,79,67,220,244,160,13,98,146,18,114,214,249,239,251,137,114,56,227,248,201,227,235,211,161,239,81,152,152,228,137,
+162,80,79,252,241,151,56,227,212,144,61,176,50,61,241,84,4,32,158,32,185,25,28,15,41,136,252,126,117,57,244,231,235,238,241,12,191,243,237,112,64,199,6,49,130,51,232,210,142,228,30,72,232,15,126,64,46,
+11,37,144,101,174,19,174,15,238,164,83,216,99,13,208,115,208,143,241,18,11,8,0,230,104,137,224,242,51,156,156,247,83,215,35,167,169,224,114,77,29,175,159,245,19,142,15,30,83,46,51,201,251,179,142,79,29,
+63,152,20,210,178,183,252,178,156,12,224,0,183,28,115,207,31,106,3,57,7,28,96,253,5,0,95,251,13,178,158,100,143,39,143,189,180,99,169,229,91,223,140,244,199,24,238,195,107,104,188,229,24,244,25,184,10,
+167,223,45,212,224,241,130,7,90,162,99,144,114,34,186,57,244,23,0,231,145,145,254,150,56,231,156,31,195,138,82,179,12,254,230,236,30,132,43,92,14,61,0,251,94,49,244,39,63,136,52,1,104,193,107,193,2,51,
+143,250,122,140,17,216,15,188,14,58,146,48,127,193,187,45,51,140,68,91,184,251,68,89,224,127,215,78,135,56,234,51,211,53,88,137,199,34,43,195,211,239,53,192,56,206,70,49,119,199,110,15,113,156,140,208,
+166,224,47,252,123,92,176,236,124,233,243,158,189,5,209,192,207,56,236,120,7,138,0,156,139,126,113,28,32,12,159,245,150,205,198,122,252,243,128,123,227,183,64,0,166,131,15,81,28,68,99,175,250,39,3,158,
+226,224,96,17,236,127,42,102,251,140,115,109,56,7,187,79,114,61,122,255,0,166,15,126,221,62,130,161,50,78,167,229,138,81,145,211,206,185,201,35,61,190,210,72,224,99,144,61,168,2,208,145,0,56,134,28,15,
+70,180,60,228,250,220,14,61,184,233,219,154,83,55,32,172,22,227,158,11,125,131,35,253,160,13,234,145,254,113,239,158,102,184,207,9,41,61,207,159,116,48,58,147,254,180,2,59,103,39,7,183,74,141,164,184,
+97,202,201,140,116,55,19,1,239,195,191,29,115,201,238,104,3,72,221,182,112,45,173,50,59,132,180,221,158,48,73,23,231,169,244,228,227,52,130,238,110,63,113,14,227,216,36,36,100,142,156,222,30,158,195,234,
+43,56,25,136,36,196,231,166,9,157,137,255,0,190,139,28,16,125,241,142,157,170,65,52,225,64,242,37,238,114,38,108,245,0,243,131,140,112,56,246,200,230,128,45,53,196,204,14,109,226,4,113,254,162,50,1,35,
+3,37,110,215,61,120,237,142,216,164,243,103,4,102,50,56,228,11,115,129,158,224,11,146,15,57,201,233,143,126,77,99,45,198,120,137,242,79,5,174,113,239,206,64,35,175,124,100,253,42,54,150,228,253,229,63,
+79,182,140,147,129,145,133,86,30,159,174,115,130,104,2,209,150,126,129,15,60,3,228,50,96,158,128,226,127,65,216,244,227,3,20,211,44,164,29,205,140,127,8,141,193,207,78,8,46,71,115,131,199,60,247,170,69,
+229,255,0,158,103,24,239,112,249,252,49,23,166,0,245,28,142,216,97,105,7,59,121,255,0,175,183,201,28,96,15,220,147,234,121,247,244,160,11,222,124,132,100,51,103,24,28,78,163,240,196,103,131,220,15,115,
+76,55,18,224,229,219,25,254,237,215,108,240,72,139,215,140,140,114,65,198,42,162,188,157,226,45,235,139,167,239,199,63,232,231,240,244,62,248,32,14,227,254,88,238,24,36,230,233,207,4,118,31,102,25,29,
+122,30,249,236,69,0,79,246,144,51,186,82,59,99,23,199,184,25,1,97,60,231,7,140,140,212,109,112,135,238,220,74,167,28,101,53,33,248,156,192,1,199,212,128,61,169,158,104,3,148,81,255,0,109,36,227,142,50,
+126,200,24,244,200,35,212,224,230,152,110,112,62,89,21,72,206,1,154,110,252,96,98,216,117,3,30,159,78,104,1,236,234,121,55,164,118,201,138,244,244,250,199,156,254,94,157,249,96,49,129,206,160,87,7,60,
+65,118,7,65,193,220,158,156,254,53,25,185,144,131,137,227,25,60,19,44,195,39,0,227,253,71,92,140,158,159,149,64,215,19,40,193,185,80,8,193,2,107,145,243,100,28,16,45,156,122,243,129,211,25,3,52,1,105,
+158,30,63,226,100,115,255,0,92,46,51,142,114,114,33,0,253,1,237,235,77,12,185,199,246,145,96,114,127,213,92,15,199,136,179,158,195,238,250,247,38,169,125,162,67,243,11,160,72,235,153,110,143,92,142,27,
+236,64,99,158,65,99,207,78,51,79,23,83,246,187,85,255,0,182,183,36,129,206,7,250,149,232,56,232,63,80,40,2,195,184,25,197,227,177,3,31,241,239,114,196,122,30,80,12,123,146,115,207,29,234,50,210,16,72,
+185,35,31,244,237,57,61,136,254,37,60,245,193,224,119,3,156,179,206,156,142,111,164,29,136,141,238,176,14,125,162,82,70,120,231,28,243,142,153,55,72,73,38,242,228,140,114,119,221,15,253,4,122,147,253,
+58,114,0,164,200,120,243,89,142,49,242,192,227,39,156,144,26,65,199,28,19,223,233,154,65,20,195,144,210,159,172,25,39,211,172,131,32,115,215,219,154,97,14,112,13,213,193,7,248,140,215,99,143,80,10,254,
+163,190,113,138,4,45,255,0,63,215,88,244,89,175,64,199,92,240,163,61,50,7,230,122,208,4,194,43,174,50,210,144,65,255,0,150,16,177,206,50,7,250,195,211,39,142,221,249,234,24,238,6,73,18,158,152,204,74,
+185,245,233,145,199,183,161,235,205,52,90,200,216,255,0,73,189,127,82,110,47,27,25,201,63,121,91,190,59,142,252,246,167,11,7,32,134,184,188,25,39,147,44,231,147,232,10,30,56,224,241,142,164,228,208,0,
+198,224,96,126,247,145,198,64,227,215,128,23,212,30,157,113,147,214,163,6,235,176,144,250,126,236,245,246,33,135,62,190,158,188,19,86,6,157,25,235,53,193,233,144,93,216,115,145,159,154,34,221,14,120,60,
+245,237,154,119,246,116,67,188,167,142,193,15,183,241,128,51,220,112,71,60,244,160,10,173,36,227,229,100,152,99,33,143,148,125,253,28,129,239,146,62,189,55,67,190,71,234,247,32,2,58,64,128,227,158,238,
+9,252,65,231,158,71,57,208,54,40,15,31,105,198,7,27,109,128,207,39,211,60,240,63,35,235,134,125,148,0,1,75,131,131,252,95,100,193,252,212,159,212,112,121,235,200,5,32,243,14,60,219,172,114,71,238,35,36,
+142,164,225,80,227,20,210,206,115,186,107,165,28,117,180,82,15,211,9,198,58,244,207,25,57,57,21,125,109,192,228,70,112,59,147,107,156,147,237,17,228,103,166,113,216,228,115,74,97,29,66,40,32,142,139,106,
+9,255,0,200,99,142,216,198,79,36,208,5,37,101,39,254,62,167,39,166,13,187,3,158,189,162,61,179,250,122,212,76,192,18,76,215,7,35,175,149,56,28,127,185,110,59,122,242,123,115,131,87,204,114,28,145,22,79,
+187,90,40,235,234,83,252,123,99,140,154,143,100,168,127,227,222,60,246,203,90,19,249,136,192,246,28,255,0,92,128,80,44,50,11,77,112,121,60,108,184,61,79,112,208,183,30,191,153,230,144,70,142,65,221,112,
+70,120,204,51,112,121,231,34,216,227,7,190,15,94,132,85,227,230,0,127,113,19,28,240,4,182,195,143,204,47,56,238,196,245,3,140,144,210,215,25,33,44,212,115,215,237,22,249,246,61,120,28,142,50,72,231,28,
+208,5,99,10,96,113,57,233,147,254,144,164,14,252,11,92,103,211,143,174,59,52,218,163,255,0,12,191,86,105,195,15,96,13,176,56,252,71,227,210,174,7,188,39,6,213,121,61,126,209,111,239,140,133,112,127,15,
+126,248,25,120,55,39,173,188,121,244,105,1,224,247,5,100,108,251,118,250,113,64,21,22,206,30,8,140,228,159,227,150,224,115,207,92,67,192,250,100,247,169,5,156,108,126,104,225,3,176,19,222,118,255,0,182,
+125,243,234,15,175,106,156,137,79,252,177,143,140,31,245,140,113,142,157,24,156,119,198,113,250,83,128,145,65,205,188,64,117,24,47,233,206,114,64,252,127,51,128,48,1,0,211,160,206,124,136,179,239,113,
+120,59,255,0,186,57,245,30,231,175,52,167,78,143,168,180,183,126,152,255,0,72,212,28,241,220,225,72,250,129,192,227,147,138,118,73,36,249,112,169,63,222,114,59,246,196,128,115,211,185,231,38,158,19,28,
+249,112,150,35,146,14,71,225,185,191,207,94,244,1,26,216,32,227,236,54,223,77,247,222,253,50,131,31,92,30,127,89,70,156,171,207,246,108,13,146,49,153,111,148,12,122,29,131,175,183,248,211,196,64,143,245,
+17,177,201,224,20,246,36,242,125,61,254,189,57,65,6,49,139,117,7,168,201,140,142,248,232,14,7,29,184,197,0,31,101,10,73,254,206,132,114,7,203,119,124,0,237,253,229,231,175,255,0,174,164,84,3,173,148,107,
+201,198,47,46,178,57,63,223,112,72,61,207,83,206,15,66,88,97,233,149,129,122,100,114,199,4,243,209,127,62,163,129,239,76,54,209,143,225,128,19,206,2,144,15,78,120,132,245,199,92,147,199,161,160,9,246,
+143,249,246,143,131,218,242,228,145,207,253,116,224,254,157,177,199,42,85,122,136,23,215,139,153,187,12,16,55,30,224,241,142,115,211,28,213,95,178,167,86,72,64,60,130,10,142,157,56,107,110,7,39,144,114,
+58,245,193,166,136,16,30,35,131,25,224,238,131,35,62,128,219,1,144,63,19,211,234,1,116,121,96,157,214,165,176,78,79,218,101,25,252,1,7,242,29,127,42,55,68,15,54,105,223,239,93,92,30,58,116,4,227,62,249,
+207,160,170,226,45,163,229,134,34,58,141,166,220,1,212,231,229,183,233,159,92,15,64,105,193,31,181,184,110,57,1,224,30,157,115,109,207,78,248,199,32,80,4,222,116,35,238,219,196,163,24,56,184,144,28,224,
+119,101,25,245,0,254,96,252,197,173,114,138,112,17,57,207,2,235,245,227,35,233,199,175,66,6,25,151,25,255,0,69,101,24,231,38,50,14,58,145,182,207,142,113,235,142,6,122,210,111,97,255,0,44,200,232,126,
+227,30,121,244,179,0,253,65,224,227,36,154,0,127,219,85,122,178,47,214,232,31,200,49,57,246,56,199,175,74,62,215,27,242,39,95,67,243,6,0,103,253,214,252,128,28,103,29,234,29,254,160,251,19,17,206,59,242,
+109,1,199,36,240,121,192,197,1,163,206,72,151,190,113,24,237,145,201,251,38,56,206,48,78,120,233,193,160,11,30,108,68,127,173,24,35,129,242,147,207,176,135,63,135,35,219,140,83,63,116,71,4,147,200,200,
+65,237,201,221,110,121,199,191,124,246,160,77,18,245,142,114,14,0,194,3,156,113,146,162,21,233,131,129,142,79,229,82,45,197,184,60,137,199,166,109,250,18,9,227,8,123,103,36,129,248,80,4,91,87,170,131,
+215,56,217,31,7,24,231,109,176,57,237,144,113,199,94,197,197,24,144,66,176,247,192,206,15,253,187,254,153,227,57,61,5,77,246,155,115,158,37,7,182,97,110,79,252,5,27,158,15,69,246,199,20,25,109,250,146,
+202,72,231,48,220,115,245,253,208,0,15,66,126,132,208,4,34,59,131,141,175,40,57,234,162,53,198,79,60,181,171,96,253,79,175,173,60,197,124,220,172,247,152,7,146,30,44,100,116,255,0,151,110,115,233,143,
+175,94,16,188,7,141,235,147,206,227,111,56,207,230,160,17,199,227,208,211,212,219,18,67,220,70,7,67,254,141,56,207,176,59,212,147,207,166,56,193,28,145,64,12,22,247,196,228,220,94,228,224,243,229,18,122,
+227,147,8,4,253,112,79,94,212,227,105,118,127,229,226,224,244,198,227,7,66,58,113,3,117,7,57,247,200,24,169,194,218,96,109,184,136,250,127,163,220,18,61,49,251,193,142,56,245,193,233,154,157,69,155,112,
+211,194,79,31,242,194,232,31,94,210,47,60,117,25,235,249,0,81,251,21,247,85,121,155,234,209,175,60,119,54,164,228,227,183,61,49,197,6,45,85,65,195,204,23,160,195,163,28,245,24,34,221,64,201,39,3,243,7,
+53,124,199,100,57,223,27,158,122,69,121,199,215,231,62,222,163,129,238,42,51,21,161,56,243,81,56,227,22,247,93,125,62,101,111,110,1,61,199,97,64,20,188,189,83,25,38,78,220,48,78,73,60,116,136,122,159,
+78,72,198,121,202,151,213,6,67,20,60,96,134,60,109,61,1,30,89,198,123,227,35,140,250,10,184,109,173,72,207,218,64,231,56,242,174,23,255,0,100,254,100,82,27,107,110,64,185,28,103,35,101,199,76,115,208,
+16,121,227,182,57,206,122,208,5,51,37,246,115,190,49,223,248,113,142,216,204,67,156,122,241,234,77,38,251,156,124,197,78,113,144,171,31,231,247,6,62,156,14,149,107,236,246,227,24,185,92,158,229,174,20,
+243,215,36,145,199,110,70,15,161,238,225,29,160,24,55,128,30,156,73,41,224,143,99,238,123,143,127,74,0,163,190,97,206,208,121,231,116,42,196,227,211,17,183,108,127,83,138,60,251,133,233,110,188,231,254,
+93,84,123,117,16,31,124,150,234,115,198,57,171,166,43,83,157,183,110,113,216,76,224,159,192,147,199,229,158,149,93,161,132,255,0,203,103,57,60,127,164,21,60,228,99,145,207,94,73,61,240,40,2,15,180,92,
+103,34,217,50,48,71,250,55,177,31,243,192,103,241,224,19,234,105,26,107,140,130,98,35,174,51,109,140,228,240,127,212,246,198,64,7,142,106,86,134,0,7,239,174,14,122,145,114,172,59,122,140,115,223,175,168,
+199,53,1,192,35,101,196,253,192,63,107,143,191,65,130,164,126,131,235,205,0,13,60,199,147,27,28,245,30,65,28,159,66,97,32,253,115,207,79,65,77,18,56,255,0,150,79,207,77,176,99,31,83,228,130,15,60,246,
+253,105,113,54,14,46,110,8,231,31,233,112,30,125,134,84,253,121,231,28,247,160,125,160,241,230,200,120,39,13,115,24,233,233,243,224,254,127,206,128,19,44,220,176,151,36,15,249,98,71,0,251,192,64,227,235,
+236,58,211,127,122,7,202,204,6,123,198,153,3,61,191,116,79,228,48,72,233,197,56,165,198,120,159,0,129,214,234,17,142,189,204,216,206,49,208,143,207,162,4,184,35,254,62,142,59,127,166,219,144,121,255,0,
+175,145,248,116,236,56,160,0,53,198,56,147,25,29,25,0,61,113,206,216,8,247,236,122,28,100,82,22,185,199,250,245,94,57,202,38,79,97,144,109,73,57,233,198,73,227,142,180,223,42,232,228,139,134,36,99,24,
+187,132,142,114,51,255,0,31,36,12,2,115,208,231,175,74,12,58,135,80,242,28,116,11,113,11,17,207,39,137,28,251,117,193,28,99,52,0,221,243,114,12,253,122,225,16,1,156,224,103,200,29,186,231,223,184,197,
+38,101,35,6,80,122,114,81,27,144,59,98,18,164,247,60,15,167,90,97,143,85,81,148,146,96,125,9,76,244,0,99,231,231,211,145,199,29,115,195,54,235,64,156,144,217,233,184,35,31,126,68,128,228,99,29,113,158,
+216,57,0,18,252,234,114,101,30,188,67,23,211,28,219,30,127,1,193,7,190,106,69,12,221,100,82,73,231,40,163,61,192,192,183,3,223,143,94,49,80,249,26,187,128,73,140,142,8,196,64,241,159,250,235,207,30,152,
+57,39,165,39,217,245,3,128,90,44,158,160,193,147,200,227,159,60,123,118,252,177,64,23,60,156,114,94,17,143,93,224,247,233,136,115,219,223,219,173,51,102,8,253,228,77,142,225,100,239,131,222,53,253,59,
+245,230,160,251,37,246,222,94,32,115,212,64,228,227,215,2,98,63,47,200,243,152,141,173,239,79,60,17,146,71,238,36,192,227,61,3,19,193,206,7,211,214,128,47,21,200,25,218,127,235,154,220,147,158,58,176,
+95,99,192,247,247,168,218,5,108,225,24,158,248,251,96,39,185,24,219,128,120,32,244,252,106,153,176,186,206,76,172,199,36,224,90,206,115,142,71,115,199,160,28,117,226,144,217,221,109,198,226,56,255,0,160,
+124,204,58,119,253,217,198,51,215,39,63,76,130,1,104,64,73,32,44,192,103,4,98,239,29,189,128,236,120,227,142,216,25,163,236,229,187,75,233,247,174,70,123,245,97,223,208,227,56,62,245,79,236,243,131,243,
+72,228,255,0,179,167,63,31,142,7,35,30,163,39,29,71,89,2,74,7,50,144,1,32,230,192,130,115,216,128,31,142,123,241,235,218,128,39,22,216,201,6,69,231,60,189,207,115,140,231,110,7,211,219,222,131,20,152,
+192,121,186,116,243,110,192,62,231,158,115,199,60,116,252,161,206,58,206,195,35,156,105,236,15,230,97,56,239,207,67,199,20,135,35,173,219,224,142,0,180,0,142,113,156,136,9,7,191,160,245,61,0,4,158,84,
+170,56,150,225,121,234,37,156,250,117,14,196,115,236,63,157,70,68,139,255,0,45,174,115,142,114,196,131,207,92,239,95,174,15,110,15,92,211,131,113,159,181,179,115,158,34,3,215,254,157,131,99,0,113,215,
+156,250,26,79,55,176,185,124,142,51,176,47,61,0,230,216,242,125,7,92,246,193,200,3,85,166,198,60,217,121,233,185,200,36,28,15,186,38,109,199,142,188,30,132,83,55,207,144,68,210,140,16,8,25,199,30,165,
+166,224,115,213,121,224,131,214,172,9,66,245,153,201,236,74,169,201,25,7,254,89,33,36,231,169,28,245,30,133,26,232,145,149,121,184,228,126,234,33,252,225,57,0,31,94,158,180,0,209,61,198,56,145,206,63,
+136,50,12,16,121,24,107,149,108,227,191,234,41,194,89,219,7,205,7,253,246,67,215,167,221,188,39,159,215,57,166,153,219,140,207,115,215,144,171,6,50,115,217,109,187,116,61,198,58,103,52,241,40,35,137,238,
+23,29,55,44,56,253,109,65,231,166,64,56,231,158,104,1,158,100,228,224,58,240,15,247,176,78,123,237,186,63,215,190,105,119,220,55,73,35,199,64,55,206,167,183,165,224,29,177,200,228,103,0,102,152,204,121,
+221,116,253,248,34,1,233,235,108,72,192,61,115,236,61,105,4,104,216,255,0,72,151,190,2,201,110,64,200,231,254,89,47,229,142,63,12,208,4,174,215,61,228,4,227,160,154,69,245,235,155,222,71,255,0,88,14,244,
+133,230,32,3,180,224,247,151,39,215,156,94,143,83,223,142,166,163,48,32,255,0,150,146,185,233,254,186,53,255,0,217,8,35,160,224,227,138,95,40,156,0,37,39,177,223,25,207,35,156,249,99,140,227,56,36,31,
+161,197,0,63,205,151,254,121,70,125,247,72,79,78,6,69,225,224,115,197,46,101,96,79,151,143,65,251,195,146,73,237,246,162,15,110,253,121,197,66,99,152,99,27,138,245,201,242,176,127,242,15,25,199,82,114,
+123,116,34,154,76,199,162,185,60,241,251,156,28,142,113,152,115,248,109,245,226,128,39,242,231,32,141,146,113,219,230,25,0,231,25,51,177,35,174,61,59,14,197,162,23,221,157,179,12,245,196,146,16,59,115,
+251,195,200,24,254,28,103,241,166,8,238,115,146,178,142,122,15,47,29,143,81,107,216,250,31,161,233,78,197,192,24,10,228,243,247,163,221,235,221,109,64,252,219,29,201,233,64,15,49,190,48,26,81,211,164,
+146,14,71,190,14,70,8,30,163,56,29,56,80,157,50,211,1,131,214,103,28,142,113,131,216,246,254,85,88,165,209,206,80,241,192,1,28,116,227,143,220,28,246,236,217,199,30,192,91,158,173,20,128,250,130,227,159,
+194,203,63,158,59,140,241,64,23,130,227,248,156,250,41,125,199,28,156,131,142,127,65,248,224,83,87,4,130,100,117,56,234,119,12,140,158,219,15,233,158,221,234,177,251,82,156,133,111,187,144,14,252,254,
+102,199,4,142,224,15,92,224,103,13,243,174,151,254,89,201,219,149,61,112,113,192,54,64,159,241,237,197,0,104,133,94,63,210,93,123,112,101,253,72,140,14,122,242,127,173,33,132,18,115,127,116,167,31,194,
+242,243,129,198,49,23,29,113,193,63,134,77,103,125,166,224,30,86,224,3,208,172,69,191,15,245,10,49,248,247,193,230,143,180,31,227,91,162,125,237,241,248,115,24,24,246,61,243,144,40,2,225,133,212,241,123,
+116,221,199,239,166,244,239,251,162,61,61,15,28,114,41,81,100,193,221,117,114,0,206,51,60,253,142,71,2,21,35,142,8,63,92,156,10,164,110,80,228,249,87,92,127,211,185,227,223,62,89,60,103,56,0,14,156,245,
+166,27,168,177,254,174,233,143,251,86,196,117,192,3,238,0,122,145,156,116,205,0,105,133,97,255,0,47,87,45,223,153,37,235,239,185,7,244,25,193,237,81,110,110,114,242,145,211,37,166,110,184,232,75,99,30,
+128,0,14,107,59,207,132,12,152,39,200,235,251,129,212,231,156,144,15,62,167,167,173,39,218,163,199,202,151,3,7,3,247,40,73,207,175,202,112,120,207,7,191,166,48,1,124,204,202,78,4,152,238,118,177,25,227,
+166,103,24,235,143,208,84,102,233,186,109,98,121,244,7,241,30,115,30,227,175,124,99,32,213,97,116,164,96,173,193,62,134,44,112,59,142,0,29,135,3,160,62,166,151,237,17,146,63,117,113,158,131,247,100,245,
+201,63,78,159,231,60,128,74,110,91,39,247,4,159,114,73,56,231,0,12,158,56,234,78,59,19,214,138,141,110,144,146,4,19,247,234,25,120,239,247,85,186,158,122,129,156,227,61,138,0,202,43,116,113,139,216,136,
+224,16,89,129,250,0,20,54,58,99,128,61,72,230,152,98,187,207,23,54,253,57,62,112,7,158,58,145,156,19,215,212,103,146,58,79,228,67,158,12,184,61,255,0,180,33,96,59,142,60,210,112,71,183,225,200,196,109,
+111,0,254,39,36,246,55,144,251,227,57,24,31,211,56,235,154,0,79,42,239,159,223,192,78,57,34,97,158,127,83,244,228,245,30,180,224,151,128,28,93,64,167,222,103,29,71,78,152,60,117,35,161,244,224,84,66,4,
+28,225,156,114,48,46,35,39,56,246,7,191,57,224,96,96,99,147,77,104,149,79,8,61,112,210,245,233,220,112,73,233,211,167,61,65,52,0,230,23,127,243,241,19,1,206,62,209,49,24,227,168,217,143,160,0,227,56,205,
+71,254,149,253,232,72,201,31,235,230,95,230,157,58,115,208,15,115,195,182,184,206,35,67,215,3,207,1,121,246,234,123,245,255,0,235,211,2,202,73,253,205,184,244,204,209,2,125,137,103,25,31,135,30,156,208,
+3,91,207,232,76,28,122,93,56,25,231,57,204,68,247,227,13,158,222,197,1,144,15,189,31,63,244,243,140,142,127,233,151,225,78,196,129,179,229,217,126,50,192,64,250,157,249,30,157,123,250,156,6,50,200,196,
+140,233,235,129,200,50,34,143,92,240,36,30,128,113,223,167,56,160,9,70,227,255,0,44,145,189,8,152,49,193,0,247,65,159,169,29,15,20,121,76,127,229,134,0,231,137,122,126,59,0,199,92,145,248,142,213,9,67,
+143,154,77,56,118,251,233,192,61,184,183,207,29,122,228,158,189,6,89,179,110,112,218,121,227,130,88,128,15,212,90,158,153,231,30,156,102,128,44,8,202,147,148,110,216,195,18,125,123,43,96,117,29,127,92,
+82,240,127,229,153,35,145,146,242,100,125,72,65,128,120,29,115,215,35,144,4,1,142,121,109,56,250,147,43,158,1,35,181,160,227,25,252,250,241,131,47,202,127,139,76,25,29,75,76,228,99,191,54,196,143,211,
+158,123,80,2,16,63,231,154,116,193,6,66,15,29,51,185,115,215,244,253,69,77,220,121,123,125,120,221,249,231,31,94,61,143,81,194,136,212,31,245,186,95,208,111,199,211,2,219,211,175,94,121,24,167,249,96,
+100,9,52,224,115,209,131,159,167,91,99,248,12,31,231,64,13,17,19,208,129,215,169,94,221,192,39,156,158,196,119,239,221,235,6,112,89,75,14,121,227,158,78,48,70,49,232,64,60,250,231,20,36,100,99,18,216,
+156,103,132,86,192,252,172,79,174,49,145,216,224,211,149,100,233,190,215,175,69,243,84,227,168,3,22,36,126,56,245,3,140,228,1,235,110,91,129,27,140,28,100,121,167,156,122,9,27,190,113,129,250,30,101,251,
+19,128,14,74,129,207,41,48,199,227,150,252,114,63,14,181,92,23,83,247,162,56,57,56,55,24,228,240,15,250,0,206,71,96,125,178,56,169,68,146,245,8,140,122,101,35,187,198,121,0,156,218,40,25,231,63,141,0,
+74,45,164,28,121,170,0,198,115,37,192,193,237,144,84,12,245,56,28,240,72,29,106,81,110,224,242,202,196,140,100,27,131,144,70,71,33,70,57,244,35,25,30,134,171,249,211,14,60,165,29,54,159,42,92,145,215,
+28,219,18,71,79,243,213,161,220,48,38,48,73,207,5,31,63,78,96,83,245,39,56,254,96,23,62,203,38,50,124,176,65,39,253,101,201,110,131,28,22,60,244,234,7,182,49,72,182,82,49,199,203,237,243,220,156,243,219,
+140,145,220,145,235,234,106,182,233,59,194,184,207,93,138,196,251,22,107,102,199,183,62,220,129,64,150,224,14,33,144,142,216,242,64,60,255,0,215,153,246,56,231,222,128,47,11,6,231,113,79,161,123,145,193,
+206,122,129,82,11,53,232,16,224,115,242,75,112,196,250,253,209,201,227,129,233,223,166,115,196,147,146,1,181,118,57,206,10,66,79,79,85,180,86,244,198,8,192,232,112,113,78,6,113,159,244,89,79,94,8,96,49,
+245,88,208,140,115,142,216,198,57,234,1,161,246,68,29,4,139,206,50,90,227,61,112,112,9,7,183,25,29,15,212,211,141,159,82,90,67,199,25,89,207,226,62,243,122,122,231,56,192,227,20,3,72,195,31,102,144,251,
+135,114,121,193,36,12,145,147,128,78,42,68,73,79,252,176,112,120,32,158,49,207,171,56,231,240,99,238,15,52,1,111,236,200,0,192,118,32,227,149,156,103,62,138,87,61,73,237,239,211,154,62,205,145,180,197,
+32,233,208,79,131,239,143,56,12,131,244,61,122,228,154,136,69,54,127,212,204,114,71,252,180,135,156,242,126,241,200,56,228,123,117,30,147,170,79,192,16,54,71,3,116,144,156,130,64,3,132,25,199,7,57,231,
+158,120,32,0,51,236,248,199,55,3,4,244,89,71,3,177,221,115,211,211,10,125,71,4,26,122,70,202,126,244,227,29,6,208,119,3,199,79,59,59,189,15,94,231,210,158,5,214,72,17,115,232,100,78,163,182,65,231,215,
+162,227,29,123,210,17,120,127,229,155,46,227,243,29,209,227,143,115,32,199,3,129,206,121,7,29,192,37,84,28,145,37,192,233,213,75,103,25,233,153,216,122,240,56,207,232,241,179,146,77,203,125,17,184,252,
+4,132,147,208,119,231,216,212,59,110,123,168,199,63,126,85,199,94,58,76,121,198,120,3,25,231,214,164,31,105,76,109,104,215,142,71,156,139,207,167,44,115,158,79,32,116,29,243,64,19,108,207,35,237,24,228,
+114,174,113,143,76,131,140,12,96,103,147,158,181,48,103,95,249,238,71,81,251,182,4,115,199,24,56,207,63,253,122,166,12,248,220,102,66,122,131,231,64,122,247,3,103,243,221,235,78,205,199,252,246,13,223,
+137,32,239,216,254,227,183,61,61,57,160,11,98,89,1,235,47,30,161,201,234,15,113,223,24,227,24,254,114,253,162,66,50,36,144,251,224,30,115,232,88,122,241,144,1,61,113,222,128,121,64,193,151,158,160,23,
+128,113,255,0,126,199,175,39,29,135,67,154,93,242,99,38,101,29,112,55,192,121,247,196,99,212,119,232,122,241,192,6,146,220,19,140,202,217,231,239,42,0,71,161,5,152,14,167,30,167,214,165,19,159,249,232,
+15,56,59,130,99,142,122,249,77,142,157,191,192,28,77,231,118,60,196,39,128,6,235,97,142,15,115,130,78,71,99,237,140,243,82,169,36,16,118,147,131,140,73,105,156,12,227,25,233,216,224,117,252,232,3,117,
+37,227,150,131,254,249,224,142,191,195,110,50,125,15,60,147,142,49,151,238,81,146,13,185,62,229,65,39,29,179,110,63,44,240,51,233,88,131,203,207,33,199,176,146,212,119,231,36,17,235,234,122,146,59,230,
+101,150,16,1,204,195,156,96,77,8,201,239,144,28,254,3,140,227,220,0,1,175,230,48,27,128,179,193,227,6,64,49,245,249,64,7,215,158,188,16,56,20,225,112,235,143,155,79,231,175,239,16,158,49,198,88,39,94,
+57,250,243,89,139,44,71,130,110,72,246,146,28,114,1,228,137,71,167,110,79,92,0,42,84,48,224,109,23,3,253,233,20,15,78,127,126,115,208,100,227,142,248,197,0,104,53,206,238,166,195,56,228,153,98,60,100,
+243,133,112,115,244,239,244,205,2,82,121,18,233,255,0,131,47,243,243,61,58,254,56,224,226,169,143,39,57,105,37,200,236,100,136,231,158,255,0,189,238,62,184,199,110,9,151,16,96,225,156,146,188,3,36,24,
+63,147,99,190,9,35,159,166,104,2,125,224,99,50,88,147,142,72,117,28,131,220,131,207,30,191,137,235,147,206,0,130,38,177,83,234,38,98,7,61,48,31,30,249,24,192,252,170,184,123,124,225,149,248,227,62,101,
+169,253,48,49,244,235,235,205,79,190,212,19,180,206,8,25,226,91,64,1,245,7,175,108,28,18,65,206,120,4,80,3,132,202,126,111,180,90,228,99,39,124,225,127,70,235,158,132,96,14,120,207,87,125,161,79,2,120,
+58,245,18,221,129,234,112,55,176,57,192,227,7,222,152,46,109,192,207,159,118,7,79,245,182,216,231,142,125,57,228,17,207,167,25,52,125,178,48,64,91,183,94,191,126,91,96,71,191,43,140,241,220,143,174,104,
+2,97,59,96,1,52,71,156,112,247,35,161,245,0,123,242,121,238,125,3,252,217,6,51,58,243,217,36,184,224,228,227,248,24,126,71,39,208,140,84,38,228,17,255,0,31,10,195,61,60,203,54,192,61,128,242,216,255,0,
+79,90,60,216,187,202,184,199,4,27,31,108,240,33,231,191,78,115,238,72,160,11,1,220,159,245,239,143,246,90,224,115,192,231,108,35,235,249,118,206,66,210,231,229,184,147,0,142,179,94,40,227,140,145,246,
+114,163,39,147,131,199,99,158,181,254,209,107,192,105,27,29,112,13,136,245,25,31,186,201,39,168,227,31,202,148,77,101,217,229,39,29,124,203,64,59,255,0,211,46,61,241,220,244,235,128,11,10,243,100,110,
+157,216,123,220,93,12,99,166,63,209,70,58,113,206,113,140,245,193,66,210,1,242,201,33,206,9,255,0,73,187,35,30,197,109,193,60,244,4,117,233,214,163,23,22,124,126,242,96,48,63,229,173,177,3,183,240,195,
+199,61,61,128,234,15,42,37,180,228,249,211,3,207,89,83,220,28,5,135,0,119,24,232,62,156,0,72,11,228,28,206,112,79,73,111,125,179,214,217,189,122,142,253,104,50,77,206,22,111,198,107,178,113,212,113,246,
+97,215,29,122,30,69,67,230,198,78,18,118,61,62,253,194,103,60,158,127,116,15,30,253,143,106,83,188,244,158,48,1,207,205,50,183,99,140,12,122,115,140,99,169,206,69,0,56,189,201,193,9,58,99,131,134,184,
+111,97,193,182,35,35,215,175,61,177,81,52,179,129,254,182,112,115,198,36,156,30,6,49,181,99,76,144,123,224,99,35,130,115,151,8,165,36,226,104,216,118,203,7,0,145,140,114,164,231,191,231,206,14,41,76,87,
+0,241,34,12,250,49,81,215,158,138,78,79,39,57,31,142,78,64,33,50,205,130,90,230,110,59,51,92,99,56,61,55,71,207,96,57,206,56,168,140,147,156,143,57,240,49,156,201,115,131,244,192,0,145,158,164,15,165,
+88,100,186,200,197,198,7,95,245,175,130,61,15,81,206,122,156,103,24,29,104,41,120,0,197,202,116,39,38,89,79,191,191,95,78,15,82,61,128,41,153,39,32,31,56,115,253,233,110,14,58,156,12,227,145,199,11,158,
+189,179,138,66,103,57,229,27,156,228,203,117,211,158,152,144,3,249,103,62,249,171,135,237,195,254,94,96,207,36,101,207,65,158,14,229,207,29,249,4,103,191,32,196,255,0,218,4,113,60,76,6,120,18,237,200,
+56,37,176,57,244,57,28,247,60,98,128,34,221,114,15,43,110,184,234,90,107,220,158,1,92,157,231,35,235,235,199,122,95,58,232,100,111,132,1,235,52,195,3,184,25,199,78,156,229,137,198,51,210,157,141,71,4,
+121,138,1,35,157,227,166,125,78,63,158,122,12,144,41,161,47,78,79,155,27,16,127,190,199,61,65,224,51,3,158,195,223,140,28,96,1,3,92,49,44,211,91,175,67,255,0,31,51,14,163,142,143,145,142,188,243,248,14,
+31,186,96,6,46,96,200,224,143,181,186,250,113,203,47,31,83,249,115,76,197,210,224,19,193,60,225,230,95,174,48,135,241,239,199,20,191,188,57,44,178,28,3,146,183,19,12,243,255,0,92,134,0,244,207,7,131,211,
+52,0,23,184,231,15,110,252,112,86,246,70,29,249,56,152,227,131,253,223,204,98,152,205,116,65,221,20,45,200,255,0,151,185,248,36,127,215,65,147,207,189,41,193,39,34,98,8,228,53,220,253,179,206,10,55,212,
+242,7,61,169,54,168,4,133,147,30,247,19,145,211,183,238,143,227,200,31,169,160,6,131,113,143,245,86,224,115,140,221,76,72,57,232,62,99,142,221,233,55,220,103,253,84,64,244,5,110,37,207,108,127,30,123,
+231,240,3,7,24,168,220,227,27,82,76,99,248,110,110,7,175,79,221,96,99,211,219,191,24,143,205,117,192,9,113,193,24,31,108,184,62,199,31,186,207,177,245,35,208,28,0,88,243,39,28,53,185,207,76,249,206,199,
+31,142,123,112,51,158,131,7,145,71,152,73,249,163,156,28,14,21,207,3,60,140,28,112,71,243,252,42,185,151,118,75,195,114,127,237,242,228,129,211,142,32,201,255,0,60,241,77,222,152,63,187,144,15,250,254,
+184,29,249,25,107,124,156,119,57,192,199,7,34,128,45,18,173,207,147,46,50,121,102,110,153,192,193,18,5,36,241,201,7,3,56,28,210,0,70,8,138,66,8,198,51,46,51,253,210,21,243,207,108,30,217,3,214,160,150,
+48,48,182,242,48,201,28,106,19,103,174,59,219,158,152,224,146,61,233,69,197,185,36,52,82,47,169,58,161,4,122,112,97,28,227,140,14,190,156,208,5,162,199,63,234,15,111,249,249,252,177,230,14,71,126,41,187,
+142,70,45,91,29,55,121,115,176,239,198,73,60,240,57,238,122,119,170,111,115,108,159,115,122,251,181,251,114,127,239,144,115,235,247,170,35,168,199,192,89,79,76,127,199,251,240,7,92,102,31,76,241,207,126,
+104,3,67,112,198,5,182,0,206,73,73,64,62,157,119,103,31,135,191,165,59,114,159,249,98,185,201,25,88,223,32,158,132,252,163,142,153,250,227,174,43,51,251,65,15,30,111,231,126,221,59,116,128,143,174,72,
+237,201,38,158,151,168,199,46,71,95,249,255,0,98,14,114,57,205,185,3,219,60,156,122,245,0,210,87,65,214,2,115,220,195,184,99,220,24,219,60,99,244,206,104,105,173,207,6,221,1,25,255,0,151,87,7,185,36,224,
+46,64,228,255,0,245,241,84,13,202,30,209,245,4,22,190,144,28,1,211,11,107,184,103,160,30,160,224,103,154,107,93,34,142,177,14,131,155,166,96,7,177,107,101,207,208,128,115,158,184,200,0,184,101,182,206,
+124,152,15,92,238,182,155,156,116,28,49,35,211,167,166,56,28,2,75,124,231,236,214,228,118,34,222,80,15,79,239,6,252,70,122,227,62,149,67,237,234,48,119,33,7,156,139,142,157,250,136,122,244,227,173,41,
+189,86,92,135,0,99,39,231,145,134,61,177,110,192,245,245,31,173,0,94,105,109,14,51,105,111,211,248,173,157,134,122,255,0,116,114,9,237,156,99,158,164,84,76,150,109,255,0,46,150,231,142,54,218,72,127,79,
+43,56,61,58,241,193,61,57,164,110,55,19,134,45,242,227,34,59,131,131,128,56,219,111,211,29,112,15,78,41,171,54,126,242,18,57,28,193,115,130,61,193,178,39,63,153,60,115,142,40,2,225,142,208,30,109,109,
+64,255,0,106,205,215,32,129,220,197,156,231,211,223,211,33,222,85,137,63,241,239,104,189,73,219,106,205,140,114,120,104,250,115,223,169,239,147,138,168,76,77,131,246,104,219,30,182,247,30,221,254,200,
+8,63,64,58,251,102,131,228,146,73,179,143,255,0,1,174,91,36,231,36,230,208,31,160,235,143,198,128,45,249,86,103,129,12,35,233,100,125,184,249,71,7,169,224,103,39,167,122,105,183,183,201,218,145,140,244,
+63,101,218,58,131,159,187,192,206,59,227,167,122,166,90,1,255,0,46,17,156,116,197,147,156,245,245,131,60,30,185,227,62,189,215,124,100,252,214,0,158,196,88,22,244,35,164,93,112,57,206,61,49,140,208,5,
+177,106,196,225,23,35,218,31,215,27,31,215,60,12,130,113,192,205,72,45,110,129,249,81,176,115,255,0,44,35,231,158,113,155,102,252,242,58,244,61,69,13,246,228,140,217,128,125,127,179,128,62,158,128,231,
+211,250,30,41,219,237,241,159,178,169,25,60,255,0,102,243,145,245,1,123,116,227,212,26,0,184,109,238,7,222,142,67,220,3,2,128,49,193,192,242,71,64,115,215,24,206,120,197,69,228,92,30,144,176,29,241,111,
+233,208,103,202,3,169,236,57,207,115,214,15,221,125,229,131,131,198,63,179,162,0,246,228,22,235,207,124,123,103,144,30,25,87,56,131,30,191,241,47,181,199,61,242,73,231,243,234,122,116,160,9,10,92,32,192,
+141,248,231,230,138,48,79,110,65,141,79,7,25,252,71,165,42,155,175,249,230,220,14,54,164,35,159,92,8,193,29,61,114,56,245,193,132,202,49,202,99,29,197,157,183,61,122,128,87,147,244,207,94,244,158,115,
+1,140,62,51,252,54,22,216,25,219,221,164,29,120,245,60,140,247,160,9,216,220,227,253,84,199,168,233,24,92,30,14,9,92,119,198,122,118,199,28,55,204,157,121,22,238,72,60,229,226,238,122,255,0,171,32,1,140,
+123,129,140,112,42,6,113,253,233,148,142,64,254,206,180,57,227,142,126,208,163,175,61,15,60,1,140,225,129,155,140,155,144,51,158,116,235,50,57,237,195,51,14,152,207,61,40,2,207,218,230,25,15,106,64,192,
+231,116,100,253,8,242,64,227,235,140,98,151,237,96,142,109,84,96,147,209,65,233,206,8,143,241,238,78,125,197,85,60,231,15,54,236,127,208,62,216,14,188,0,118,145,145,220,100,224,243,205,55,107,55,252,246,
+62,163,236,22,199,61,79,104,216,224,254,157,186,26,0,178,110,162,254,43,84,60,227,146,199,156,231,7,11,207,39,142,135,222,154,46,224,56,63,98,139,32,30,178,40,234,56,24,35,31,142,51,237,147,154,132,91,
+150,231,200,148,250,147,99,10,103,242,65,245,251,189,58,158,148,166,217,128,39,200,126,195,155,45,192,114,71,37,83,25,193,199,2,128,44,139,136,219,254,93,35,61,114,12,202,49,236,48,135,60,240,115,207,
+115,233,79,19,195,159,249,7,198,224,19,156,78,185,250,28,71,193,224,245,7,147,193,6,168,253,159,28,152,19,234,214,140,122,251,99,29,15,35,31,135,28,56,65,145,197,172,100,118,255,0,69,43,207,208,244,254,
+99,158,49,205,0,95,243,237,112,51,165,131,158,112,46,25,113,236,54,198,59,142,220,99,60,131,156,167,155,100,71,205,166,170,247,31,233,50,127,72,73,36,143,127,76,246,170,94,65,198,13,148,92,116,204,40,
+56,206,58,178,158,224,227,215,167,35,163,150,6,228,139,59,126,61,2,14,122,116,242,186,123,227,252,104,2,216,150,196,140,13,61,84,14,50,37,147,176,60,12,219,227,143,203,20,245,107,12,99,236,10,79,169,153,
+136,253,35,81,140,12,0,0,28,154,174,33,7,59,172,237,242,122,229,134,114,62,155,78,70,8,3,140,113,82,8,192,36,11,56,200,4,114,36,32,125,115,230,3,248,140,30,221,168,2,66,246,128,224,105,241,158,65,24,154,
+81,244,234,0,207,63,159,99,72,100,179,63,242,227,16,63,245,221,248,35,215,228,39,176,239,235,235,77,216,135,145,111,26,100,242,3,185,224,99,63,242,212,123,129,206,115,70,2,231,10,23,233,44,159,160,23,
+60,112,61,177,223,174,40,1,217,183,96,49,103,24,62,211,74,70,49,158,129,7,28,116,4,31,124,113,76,100,132,242,45,34,28,119,146,111,215,228,231,31,153,29,78,122,46,240,6,73,112,15,76,73,129,206,112,121,
+186,199,230,1,246,197,60,74,128,15,245,196,129,140,137,1,237,140,100,93,99,169,4,14,167,242,192,4,35,202,25,30,66,1,206,112,103,227,156,99,104,81,199,165,55,41,146,68,71,166,48,22,86,30,199,12,1,231,177,
+24,227,174,120,21,111,124,100,146,77,208,7,56,34,69,110,78,59,125,172,114,59,243,250,154,82,240,119,123,147,215,176,228,245,237,118,114,78,14,79,211,181,0,85,86,143,56,49,110,228,31,245,68,126,57,39,57,
+232,58,140,231,215,164,219,145,177,136,8,199,164,108,57,246,30,122,142,121,207,95,231,153,68,150,227,169,186,252,35,114,15,191,23,7,144,57,207,127,83,156,84,171,113,2,227,6,113,199,95,34,108,243,234,26,
+98,7,94,64,28,118,39,165,0,64,89,25,127,227,221,135,163,20,110,217,232,5,222,6,59,143,167,168,167,129,25,31,234,220,112,6,64,61,59,224,25,219,211,182,114,56,192,169,12,240,54,49,37,215,64,50,96,124,112,
+0,206,124,222,7,160,254,89,166,9,226,86,255,0,93,58,227,156,8,142,123,243,131,47,189,0,1,33,228,108,149,184,232,20,244,207,180,232,113,244,61,51,82,20,183,95,249,99,40,206,127,131,24,198,61,111,71,215,
+191,63,163,133,196,109,193,150,94,122,238,81,142,57,207,222,111,241,235,218,151,204,183,110,75,177,61,193,140,96,246,234,58,129,198,121,231,128,113,147,64,12,255,0,69,207,250,187,179,233,133,143,29,127,
+218,187,233,212,244,227,191,173,1,108,112,119,91,93,16,120,200,142,212,243,215,161,157,179,249,255,0,32,42,86,91,98,7,25,199,25,16,176,56,60,114,88,129,207,211,243,228,82,17,106,1,249,92,231,214,54,61,
+185,7,105,198,71,184,200,227,35,7,4,1,130,43,2,63,227,222,224,103,214,40,114,65,255,0,118,82,70,115,219,175,60,224,114,211,13,151,252,251,76,73,24,36,71,24,198,58,128,55,18,57,245,39,159,161,165,11,106,
+120,17,185,7,174,208,249,61,112,121,0,99,167,30,221,121,225,12,48,244,2,80,9,224,177,113,244,238,61,15,3,143,96,104,2,35,111,108,78,124,137,120,200,199,151,14,112,71,188,222,199,156,115,220,12,242,214,
+138,208,131,254,141,41,62,190,92,7,166,120,193,103,3,235,199,62,245,35,91,171,118,151,30,162,83,143,205,178,123,125,121,25,0,116,137,173,64,31,197,201,207,51,190,115,199,28,134,60,158,180,1,31,151,1,199,
+250,28,190,188,67,17,231,39,161,224,3,239,147,131,250,39,147,6,57,180,159,29,48,109,161,110,157,120,105,193,255,0,199,65,199,229,82,139,36,97,255,0,45,126,139,51,16,79,61,128,60,142,216,231,158,157,105,
+63,179,209,179,136,167,237,243,7,149,142,49,212,97,7,126,227,36,96,115,64,16,108,140,112,150,83,145,159,249,245,135,24,228,231,229,147,61,187,126,34,151,107,112,162,206,80,64,237,108,161,185,28,116,147,
+4,114,59,115,83,54,158,63,135,237,139,158,152,89,14,113,219,238,156,245,235,215,245,166,53,163,2,0,107,176,113,232,227,130,112,120,48,63,126,167,232,65,160,8,129,144,29,162,25,193,255,0,116,160,233,219,
+18,2,71,63,135,227,65,251,70,63,213,205,140,119,45,236,59,202,125,114,14,115,159,67,138,71,182,152,103,108,247,64,99,35,33,241,215,166,77,175,67,215,158,167,56,35,179,4,55,43,130,103,155,208,241,41,231,
+169,207,238,14,57,199,10,7,110,125,64,13,179,30,211,131,156,99,119,229,131,191,147,219,243,227,34,148,172,203,213,231,200,193,229,143,78,122,29,205,158,249,235,220,244,60,179,23,99,172,210,30,184,249,
+91,142,163,63,234,21,191,62,190,185,230,155,153,151,172,179,227,167,250,130,115,237,254,172,30,221,193,206,126,134,128,21,133,209,198,214,155,156,227,146,126,153,253,226,255,0,66,104,197,215,241,201,55,
+24,251,203,39,56,247,251,94,115,147,239,219,3,138,143,123,177,7,204,185,39,29,173,229,56,199,67,159,47,233,237,235,238,164,76,2,254,242,115,199,221,123,121,254,131,133,140,227,28,228,28,100,250,226,128,
+2,39,108,229,164,60,140,31,244,129,198,79,83,231,176,245,231,167,29,241,64,142,92,99,204,144,112,127,142,115,159,196,203,145,199,76,96,103,28,119,166,179,76,57,5,198,51,159,221,92,175,94,199,40,79,76,
+241,140,99,56,233,138,133,165,185,236,138,199,25,249,188,252,253,14,33,218,115,233,158,15,94,148,1,43,219,131,255,0,45,31,62,239,63,30,223,235,15,227,220,113,211,165,39,217,178,48,36,65,233,185,238,203,
+31,174,217,0,201,252,191,30,145,121,151,100,231,236,209,146,167,251,210,245,227,179,69,129,211,212,231,235,156,185,94,228,19,155,117,193,35,59,94,66,114,123,224,199,199,229,250,128,40,1,77,180,138,78,
+26,223,111,112,205,119,187,60,17,207,218,87,223,25,239,205,70,82,96,50,62,200,71,78,94,228,156,28,19,200,190,235,236,49,248,145,83,9,38,28,11,80,126,146,28,31,197,130,243,238,51,208,250,83,12,178,245,
+104,24,115,212,220,224,123,100,225,137,253,79,215,154,0,133,188,194,126,237,169,57,199,91,206,79,94,247,231,220,240,61,79,78,105,160,55,24,138,211,63,237,45,214,113,254,243,92,191,92,156,228,246,247,169,
+252,230,227,247,35,241,185,39,156,127,215,46,6,56,207,57,35,158,180,134,121,71,11,23,174,8,187,110,61,254,224,206,120,227,32,241,156,115,64,16,101,142,51,21,147,96,99,254,94,70,15,112,7,152,127,81,235,
+245,165,32,174,91,202,179,24,7,162,204,112,59,227,50,103,57,25,200,62,248,57,20,173,118,252,126,236,117,228,139,133,39,223,168,233,158,228,251,247,165,251,89,24,59,101,80,71,81,60,71,61,122,244,24,234,
+51,211,160,32,99,52,1,17,154,67,247,98,181,42,48,63,213,92,16,125,48,68,141,140,125,56,164,19,220,15,249,97,23,81,194,172,252,116,29,55,168,235,219,255,0,172,42,115,118,15,86,147,184,63,189,66,1,62,225,
+192,207,78,8,28,117,237,76,251,92,57,249,157,253,193,154,28,17,206,120,18,3,248,3,199,243,0,97,150,224,242,98,234,49,129,28,172,122,96,231,51,143,99,238,71,80,41,5,196,169,141,209,191,3,160,128,244,31,
+239,78,120,231,25,199,97,233,138,113,186,180,198,67,146,72,207,44,14,58,247,243,113,158,62,159,150,41,191,105,181,35,31,40,244,253,216,108,254,34,70,246,234,49,198,50,65,224,1,69,193,111,152,9,84,228,
+244,183,82,71,108,125,230,24,253,127,82,94,103,113,192,18,158,249,242,34,25,228,247,41,131,142,121,247,56,205,66,110,109,0,225,148,18,59,194,79,175,96,23,63,67,233,154,22,225,14,74,177,35,56,200,183,32,
+115,211,163,240,71,76,158,135,161,61,104,2,65,60,197,78,86,70,25,199,252,123,192,91,145,199,86,24,60,227,36,114,125,233,190,100,140,9,62,104,198,114,126,205,110,125,78,122,183,167,115,142,57,199,90,105,
+158,60,156,52,172,72,235,229,158,15,98,55,99,39,241,3,142,128,83,62,209,39,64,210,129,212,50,170,32,221,142,1,24,252,249,199,76,115,156,128,63,50,156,19,36,152,28,228,219,89,158,190,197,78,56,252,189,
+57,201,10,19,201,118,61,120,107,107,37,32,30,153,38,18,62,159,116,142,152,245,136,221,220,243,137,102,193,236,64,61,191,1,143,78,59,242,121,168,140,243,245,11,35,17,193,193,40,190,217,27,118,244,28,12,
+142,255,0,74,0,156,198,58,239,11,159,239,90,216,241,233,144,80,100,250,228,2,112,114,41,193,20,12,238,15,236,182,150,92,103,167,72,79,28,30,121,25,207,61,170,186,92,92,54,71,149,43,30,120,18,54,7,185,
+253,219,1,140,113,212,82,121,247,29,224,185,0,244,2,116,24,24,231,131,16,227,62,191,137,235,128,11,69,33,198,25,36,231,25,31,100,183,63,134,5,185,238,123,12,156,122,83,126,201,9,27,196,114,158,79,252,
+185,140,1,207,60,91,31,92,158,62,185,170,141,60,128,99,101,216,255,0,183,168,151,25,61,177,31,211,61,135,57,164,51,77,253,219,158,231,13,119,9,199,126,158,88,35,175,126,221,40,2,223,217,160,98,1,138,80,
+51,201,22,76,71,35,29,173,192,30,164,243,223,3,161,15,251,29,166,15,238,165,224,30,150,114,228,159,252,7,108,99,35,190,61,193,53,157,231,21,4,180,115,243,193,253,245,183,114,115,131,180,113,249,103,208,
+117,166,155,132,233,177,192,245,121,161,32,244,232,7,126,185,233,236,70,104,3,68,90,217,228,225,38,0,3,214,218,227,35,240,22,248,224,117,193,198,114,41,254,77,154,243,229,200,79,108,193,114,1,192,227,
+254,89,2,61,134,0,239,214,179,4,208,145,134,78,125,114,128,12,158,184,9,215,212,2,122,15,197,65,182,239,2,176,199,59,155,0,131,143,250,99,129,238,115,128,122,19,197,0,104,121,118,135,143,33,216,231,32,
+249,119,64,244,238,48,15,61,127,46,72,206,77,182,160,159,221,129,140,100,17,118,199,242,12,79,185,192,252,43,60,201,105,140,164,113,71,180,31,249,106,120,246,35,96,31,79,199,240,143,125,182,57,88,201,
+255,0,121,66,224,159,104,185,57,25,224,250,100,208,6,139,45,177,199,203,26,169,0,140,173,240,24,29,254,231,29,253,120,237,145,76,85,182,81,133,107,81,158,112,209,92,159,175,88,186,250,243,239,84,68,145,
+17,242,164,92,103,129,188,231,235,251,176,189,59,99,240,39,129,40,151,119,30,77,153,234,50,209,202,79,56,28,40,132,255,0,34,57,245,230,128,47,22,141,112,162,107,85,232,7,19,3,142,252,152,137,199,169,28,
+250,99,20,29,135,5,102,180,231,25,204,146,3,235,156,18,57,246,227,7,28,85,45,204,58,219,217,55,3,63,185,185,63,137,2,216,122,242,49,215,140,100,1,78,85,102,224,91,89,30,49,145,29,231,31,149,183,167,56,
+199,96,113,211,32,22,9,151,119,23,54,99,29,51,113,145,237,247,156,250,231,161,250,114,42,68,55,7,173,214,159,239,155,152,207,95,98,167,158,57,193,170,173,4,220,127,163,90,12,112,1,134,239,4,2,61,108,178,
+15,108,231,56,29,112,69,2,59,128,71,250,45,160,25,238,151,99,36,246,193,183,199,211,252,138,0,185,137,128,255,0,89,166,156,117,45,117,24,28,158,225,33,99,239,254,115,64,243,152,99,126,158,59,18,47,74,
+253,72,255,0,71,0,119,239,212,241,210,169,176,156,117,179,181,111,127,42,110,121,247,141,125,127,15,124,83,71,218,0,63,232,22,238,0,227,228,144,246,228,2,84,145,158,184,233,216,122,144,13,85,19,54,114,
+246,111,142,65,91,196,56,39,211,54,164,116,30,131,190,65,163,13,198,229,180,127,99,123,109,238,58,152,23,4,231,169,246,197,101,7,156,140,125,130,32,64,207,250,185,120,199,57,56,85,29,242,57,25,252,77,
+39,155,42,255,0,203,180,74,1,228,4,124,253,112,205,145,131,156,227,211,234,40,3,96,151,218,64,134,203,4,142,62,221,111,198,126,136,163,177,233,145,129,143,74,43,8,206,199,147,24,76,246,68,144,0,127,25,
+58,224,99,129,131,215,142,40,160,9,78,159,106,9,202,47,60,231,101,128,207,92,131,254,146,73,235,198,51,138,67,167,219,146,78,57,234,51,21,160,4,112,120,197,192,235,245,32,227,158,248,207,221,49,225,144,
+99,176,251,87,36,158,248,88,206,61,189,120,235,76,102,25,249,139,12,117,2,228,142,188,240,2,100,254,24,244,244,36,3,65,180,232,178,126,109,191,88,109,240,121,192,207,250,87,227,128,61,49,129,80,182,159,
+23,101,132,241,140,148,183,82,190,184,204,205,140,113,158,123,156,246,170,158,108,124,101,164,192,234,69,212,228,244,233,140,47,94,248,36,117,24,52,133,226,231,13,41,29,70,37,184,207,62,252,156,12,142,
+131,241,160,11,63,96,78,112,208,131,207,0,91,96,122,103,247,160,246,28,247,247,53,31,216,57,63,60,103,156,96,125,155,3,232,60,236,14,56,201,25,233,212,243,85,119,41,228,37,206,65,206,124,235,147,207,182,
+83,219,140,30,212,223,52,131,214,243,166,121,123,134,233,219,253,81,231,25,233,158,220,26,0,185,246,16,6,113,27,31,80,45,125,71,127,52,146,64,233,215,147,207,108,179,236,193,48,88,38,56,255,0,158,29,14,
+121,202,74,184,250,19,237,140,244,174,101,32,150,47,119,235,130,46,112,113,211,254,93,192,253,121,200,199,173,52,92,227,131,37,216,193,61,35,152,224,100,124,223,116,28,15,95,231,205,0,88,216,131,156,198,
+128,241,141,225,121,61,114,4,189,251,156,145,207,110,41,226,56,185,30,126,15,251,249,30,152,7,237,3,242,192,62,194,171,125,160,227,38,123,158,188,126,230,108,246,29,60,188,243,159,98,123,116,52,225,62,
+71,51,77,234,9,73,23,215,25,221,25,198,71,175,80,122,10,0,156,195,17,235,47,176,195,144,78,14,115,255,0,31,25,247,227,63,78,180,209,111,9,231,205,144,158,184,243,27,241,206,37,57,255,0,61,234,190,226,
+115,137,25,143,169,46,15,108,156,121,103,160,227,183,124,99,165,27,71,27,137,201,207,82,188,224,15,239,198,115,158,156,113,232,15,112,11,102,40,7,241,205,198,58,76,224,250,255,0,20,228,231,175,25,237,
+239,64,134,2,1,204,228,123,205,33,207,92,146,5,199,126,56,201,7,241,230,182,206,49,181,200,255,0,100,195,207,92,2,4,35,28,28,30,63,10,148,42,99,1,31,220,150,81,211,60,241,16,39,232,50,58,28,16,77,0,89,
+68,182,3,133,157,184,235,231,206,59,241,128,39,199,78,156,146,113,142,148,165,45,186,236,159,211,155,137,192,32,246,225,219,63,64,121,28,138,129,86,2,112,99,4,242,14,231,32,231,191,252,178,24,35,169,193,
+3,145,154,144,67,108,79,205,108,167,61,132,205,156,244,232,98,57,244,198,58,245,60,80,4,170,182,96,0,86,98,122,99,207,152,241,215,208,142,61,201,207,92,147,72,235,105,195,8,165,3,166,11,77,146,121,239,
+242,228,117,237,156,158,105,203,105,98,221,109,28,227,3,30,115,227,7,208,8,24,31,78,223,90,144,88,216,3,159,176,54,79,35,247,146,100,159,111,244,110,79,28,231,168,200,205,0,65,178,216,31,150,38,206,115,
+201,159,175,228,78,127,46,220,212,155,163,24,194,159,206,97,249,113,147,238,79,184,237,82,27,59,21,255,0,151,54,13,232,94,78,249,255,0,166,0,143,203,233,145,83,199,107,100,20,159,178,28,123,153,142,115,
+159,238,219,49,39,29,57,250,12,231,0,21,248,224,132,98,0,56,199,158,7,224,124,178,48,123,228,231,184,61,170,80,55,2,124,151,233,156,133,39,219,157,208,147,250,142,149,100,193,104,6,5,161,235,193,34,236,
+18,113,142,10,219,100,143,127,78,61,41,203,13,184,224,91,176,30,172,218,154,131,142,14,49,109,142,112,49,129,129,158,113,64,21,240,224,253,201,113,219,247,3,208,240,72,76,250,103,235,131,156,210,146,248,
+255,0,80,231,36,114,97,28,246,227,17,115,131,140,228,227,190,42,102,142,220,31,245,5,127,237,182,165,143,161,255,0,71,199,7,215,175,113,199,32,22,199,133,129,135,3,59,100,212,6,123,247,132,31,108,128,
+14,79,61,201,0,139,108,196,130,45,195,99,214,223,4,115,223,247,107,235,193,7,25,197,72,69,206,8,91,69,60,255,0,12,18,47,60,250,12,227,185,231,60,30,61,80,45,184,39,16,202,57,199,18,223,3,223,28,152,120,
+253,15,166,49,77,102,136,245,73,72,25,235,61,214,113,193,56,6,49,143,78,163,142,79,106,0,112,91,182,32,24,10,0,126,234,36,163,63,129,224,231,24,199,24,200,198,59,74,35,187,7,2,218,227,4,242,4,114,12,247,
+235,128,114,113,131,207,25,170,226,72,1,229,110,6,63,233,226,247,167,160,218,132,227,142,163,142,244,190,101,153,32,17,116,115,219,237,26,137,193,61,58,66,121,29,186,130,15,61,40,2,209,142,224,96,29,62,
+227,118,72,201,220,184,192,234,113,215,234,78,123,114,120,165,11,48,235,96,253,137,221,131,237,206,89,78,122,158,120,231,39,173,82,255,0,66,28,136,46,216,30,112,39,212,1,253,81,79,66,57,60,119,62,234,
+13,147,1,139,123,225,158,51,231,95,55,169,192,5,113,159,109,217,35,158,216,160,11,165,230,24,197,138,169,238,118,49,61,123,237,39,243,207,225,218,156,178,76,91,38,213,71,97,242,78,121,56,247,35,25,235,
+199,227,214,170,17,102,120,41,124,189,190,253,208,3,158,8,13,212,116,234,50,122,115,74,18,196,242,191,111,249,79,221,2,102,252,242,160,28,158,122,129,193,235,129,64,26,33,174,9,56,183,17,241,255,0,60,
+92,115,207,77,204,167,140,247,24,56,32,19,79,221,118,14,118,15,170,194,189,193,236,102,70,239,215,190,122,250,209,49,218,96,157,183,255,0,66,146,99,140,116,1,9,246,237,192,235,140,18,240,150,64,127,171,
+188,24,233,152,174,59,241,146,60,146,49,159,161,207,29,58,0,90,51,92,177,59,131,12,112,50,168,50,50,121,193,184,36,254,99,235,222,164,86,148,227,118,20,227,63,234,237,198,121,199,57,186,25,227,219,223,
+60,10,174,139,96,114,63,210,84,142,63,213,93,126,89,48,30,57,231,39,35,233,192,148,45,161,3,15,49,198,112,12,51,238,252,218,220,103,143,115,223,182,69,0,89,18,77,192,243,32,78,115,131,12,4,227,212,145,
+119,143,169,199,248,84,130,73,79,252,188,217,103,60,230,40,135,78,255,0,45,216,4,231,175,167,110,226,171,132,135,168,243,58,231,45,19,99,241,253,208,97,212,117,32,247,231,180,234,35,28,23,3,39,31,241,
+238,167,158,113,157,209,19,130,125,186,119,233,64,18,3,49,224,92,217,28,113,129,20,96,115,234,62,210,65,245,233,207,61,122,83,213,110,248,43,45,163,14,7,2,220,113,158,115,139,192,50,59,142,65,228,211,
+124,188,242,179,48,235,202,219,67,192,233,131,186,19,220,247,193,254,169,183,156,153,153,189,204,86,235,215,3,28,67,239,211,145,205,0,89,81,114,78,11,89,30,58,21,182,61,51,201,197,209,28,231,29,57,232,
+73,230,158,33,155,161,251,15,57,36,22,183,25,238,71,252,124,30,72,224,245,28,240,106,16,168,51,243,48,29,136,91,112,59,224,224,197,237,206,58,241,131,82,8,213,185,89,92,103,209,160,4,31,92,121,93,115,
+250,115,156,98,128,36,88,28,48,44,186,127,76,224,79,2,142,114,78,113,62,115,234,113,253,105,124,135,201,34,43,46,9,57,91,152,27,61,121,230,82,113,200,252,59,211,4,35,143,222,176,234,14,77,191,81,212,255,
+0,171,28,244,25,39,167,189,15,110,164,228,92,57,246,9,107,142,248,192,10,1,247,201,56,195,112,121,200,5,129,17,206,76,118,217,207,252,246,182,244,207,66,92,123,243,147,252,233,254,84,152,193,130,220,244,
+206,217,172,87,143,66,76,77,159,83,219,32,115,84,196,95,47,62,97,199,82,33,135,167,56,57,217,200,245,252,63,5,242,208,140,177,144,115,208,218,196,78,127,0,167,159,243,216,208,4,239,27,103,152,59,241,182,
+231,79,227,61,49,251,129,201,199,92,118,231,174,41,54,2,7,238,102,61,122,73,166,156,118,60,180,99,63,175,76,245,168,12,16,115,159,51,156,244,178,67,207,224,120,246,245,237,154,111,147,7,64,146,18,7,83,
+102,195,131,239,131,199,61,189,72,238,104,2,198,8,27,74,220,0,7,24,26,121,3,190,62,88,200,62,253,125,133,52,68,27,170,221,28,127,183,167,168,199,169,204,106,15,56,245,235,145,142,240,44,48,19,147,27,125,
+126,201,46,56,25,199,166,71,32,240,49,207,92,211,197,189,187,127,203,41,78,0,255,0,151,25,72,39,158,71,124,99,167,39,169,20,1,40,49,46,85,154,233,57,228,9,116,230,28,30,121,8,71,174,48,15,225,214,128,
+214,187,177,230,92,143,109,246,89,239,216,198,121,231,168,247,227,4,154,103,217,96,3,254,61,228,244,231,79,148,140,122,252,175,199,235,142,57,205,42,193,31,69,181,102,244,31,217,215,25,39,143,70,3,142,
+153,201,231,175,20,0,241,28,12,78,37,185,29,79,43,99,255,0,198,71,31,92,254,120,20,134,56,179,145,36,227,25,206,69,145,238,123,42,40,28,119,231,167,106,81,110,196,255,0,200,63,112,29,218,198,113,158,195,
+130,216,60,122,231,143,94,246,5,162,56,5,172,182,28,246,178,148,113,200,232,73,63,142,48,58,140,156,224,2,168,133,51,134,149,184,199,252,250,31,196,143,48,14,163,142,122,115,199,34,164,16,70,73,225,156,
+113,215,236,163,140,142,7,239,143,65,219,28,156,145,215,21,49,211,226,235,228,145,199,1,109,167,4,247,232,23,190,7,35,35,142,217,224,251,0,32,230,38,255,0,191,83,240,123,103,32,17,220,30,6,126,157,64,
+32,251,58,245,17,187,1,212,147,0,199,176,11,33,7,223,183,191,90,112,133,72,32,196,199,24,60,121,99,4,228,28,129,41,239,238,58,131,138,156,105,131,3,247,108,164,250,43,242,123,240,206,158,195,173,3,78,
+78,190,91,113,211,40,138,127,54,159,156,255,0,141,0,66,32,76,109,242,221,78,78,66,152,73,29,6,49,230,100,125,79,62,188,244,60,133,124,96,92,146,56,198,200,177,130,61,165,35,185,233,249,245,169,14,158,
+139,200,140,140,127,177,25,57,206,51,196,224,99,28,158,105,159,99,83,199,150,78,51,213,35,3,191,28,78,65,30,249,39,249,80,3,150,217,178,63,119,118,71,251,145,126,127,51,147,237,200,199,231,74,97,0,225,
+161,185,60,242,60,168,178,7,78,8,97,200,252,114,49,198,1,204,38,202,61,223,50,70,160,3,156,152,179,142,252,25,176,0,238,127,14,167,21,25,180,180,193,223,34,224,117,195,32,199,76,244,152,116,231,158,57,
+56,245,160,11,130,40,143,88,46,134,57,57,138,12,247,227,239,227,28,117,199,225,138,119,148,160,224,91,222,156,244,33,33,192,237,193,207,29,59,30,166,179,94,218,199,170,200,15,94,55,156,1,140,127,11,159,
+208,227,222,161,251,61,162,145,135,135,174,70,233,72,31,247,209,159,142,199,144,48,115,193,238,1,168,35,57,36,193,168,1,128,70,228,140,244,250,19,192,198,58,224,158,221,196,138,196,103,48,221,128,58,102,
+20,39,235,146,72,233,232,61,79,67,89,62,85,176,60,181,183,60,229,103,4,17,248,72,249,206,123,142,217,199,56,164,49,91,158,3,193,200,239,63,94,120,232,159,254,191,124,114,1,174,74,158,177,92,147,239,20,
+3,158,122,130,7,254,133,254,20,121,136,185,253,220,253,62,233,134,220,227,61,8,231,29,61,251,115,156,86,63,149,110,14,12,150,160,14,191,233,46,49,234,127,227,216,227,240,62,188,144,104,49,91,117,89,108,
+207,81,197,196,189,61,255,0,209,186,227,169,4,14,122,119,160,13,102,152,142,5,179,147,198,55,44,3,175,61,21,151,60,14,62,106,129,165,60,230,2,48,49,247,33,30,157,213,137,207,211,30,224,154,205,104,33,
+31,199,98,64,29,77,196,254,253,63,209,8,61,50,64,61,15,90,104,138,12,242,214,68,103,128,37,147,241,28,217,3,236,14,63,78,104,2,247,152,115,242,193,41,56,199,202,17,64,244,224,206,7,80,59,125,58,83,26,
+73,198,113,12,132,17,199,221,63,152,89,14,70,63,207,113,79,200,183,35,135,180,224,255,0,207,195,129,239,214,203,159,195,216,30,148,209,110,153,202,201,109,193,224,137,84,140,119,251,214,235,250,246,250,
+208,5,159,58,225,78,69,187,96,231,31,34,158,189,121,51,3,143,81,212,241,245,166,249,210,182,71,144,160,117,207,147,14,78,59,100,201,253,122,1,147,81,253,152,48,3,124,71,61,112,241,231,208,1,251,131,143,
+204,1,142,185,28,55,236,42,115,243,71,142,192,133,60,245,0,98,46,122,143,78,123,224,156,0,57,229,156,255,0,203,184,255,0,128,197,104,61,61,101,231,211,208,99,142,181,9,146,228,18,126,204,87,166,126,75,
+97,145,207,253,52,237,244,224,115,201,60,201,246,20,24,39,203,235,193,9,30,6,115,146,167,24,235,130,112,58,244,228,82,253,142,62,134,101,3,158,74,198,8,207,169,202,245,31,79,241,0,170,211,93,158,5,170,
+177,25,234,176,140,254,43,159,240,231,35,156,154,111,155,120,51,186,214,21,60,159,153,21,240,14,127,216,35,140,116,227,243,200,171,70,210,32,78,38,29,120,192,140,14,221,73,147,176,233,207,32,247,199,41,
+246,123,112,112,215,28,15,250,230,58,100,224,229,179,149,231,215,166,6,104,2,186,207,119,192,251,60,44,61,162,140,14,190,130,48,72,7,24,11,207,235,135,11,139,197,60,90,91,99,191,238,162,32,227,212,20,
+99,206,123,15,173,88,49,90,12,255,0,164,14,51,215,110,126,160,9,63,76,245,250,211,118,219,140,237,154,39,244,249,16,159,192,249,227,61,58,28,245,230,128,24,110,39,63,122,222,0,14,8,63,103,136,115,131,
+215,247,64,145,233,235,207,0,82,11,137,57,253,220,56,244,16,166,51,143,80,61,123,224,99,57,193,169,65,140,115,230,193,199,77,202,65,227,175,2,113,159,98,63,92,208,210,66,14,4,214,217,234,64,86,201,31,
+67,40,60,158,157,121,252,40,2,47,61,135,38,40,143,24,255,0,86,58,247,237,158,49,207,108,140,244,24,160,221,100,28,197,16,247,40,188,12,17,158,122,142,113,215,29,190,150,22,225,6,71,153,23,29,212,39,4,
+156,116,50,100,246,252,59,118,164,51,69,212,220,168,61,177,229,100,30,248,249,142,15,212,228,113,154,0,174,46,1,254,8,64,245,33,115,233,200,18,2,59,242,49,158,216,167,172,235,140,186,66,7,98,168,15,60,
+117,253,240,239,193,60,100,231,138,12,209,100,226,224,201,208,253,232,200,7,240,99,143,79,126,152,197,40,117,63,196,59,227,247,105,207,110,221,143,62,221,49,156,138,0,103,218,32,63,120,41,255,0,113,99,
+4,30,189,5,193,231,175,35,158,71,224,9,161,231,247,82,119,0,157,163,24,239,129,63,124,112,7,183,6,167,7,178,178,158,57,62,82,119,61,51,183,160,227,234,1,239,78,253,231,56,116,35,176,88,160,24,199,111,
+153,15,226,113,129,207,78,192,21,132,177,55,240,207,142,7,202,87,158,57,255,0,150,207,159,124,243,77,221,110,14,72,159,147,198,88,99,35,28,133,243,128,231,175,113,158,158,215,60,185,152,113,38,7,95,149,
+45,65,31,156,36,115,143,78,65,24,230,148,64,199,147,52,135,216,37,153,39,185,3,48,2,64,227,160,233,131,239,64,21,119,91,12,229,39,61,121,242,193,231,241,144,142,59,242,71,214,153,186,212,144,10,78,71,
+3,30,92,96,143,80,62,127,232,61,199,21,123,236,231,118,65,145,179,234,150,153,24,199,28,91,131,142,163,131,211,145,215,52,173,109,144,50,72,231,156,152,1,29,128,226,19,211,156,231,24,192,198,115,64,25,
+251,45,153,64,17,93,16,113,143,221,161,39,191,102,35,0,241,239,82,8,173,72,201,138,229,128,28,230,53,231,169,244,63,169,199,78,57,171,6,220,128,10,182,88,244,32,195,158,79,127,221,0,121,250,253,113,209,
+233,4,196,158,99,233,252,77,10,246,207,222,242,71,61,254,135,60,96,10,0,167,228,216,231,155,107,172,244,226,52,244,207,3,97,25,245,200,24,30,185,20,190,77,160,28,193,118,65,56,4,195,25,254,105,140,117,
+62,231,0,116,173,3,12,191,243,214,31,96,39,133,71,124,96,249,7,61,184,206,51,249,83,68,83,114,60,216,135,174,103,136,247,199,4,195,142,79,95,160,199,106,0,166,18,208,103,49,78,190,160,219,219,30,132,115,
+130,61,135,61,177,199,173,41,91,1,192,142,83,193,206,235,59,77,167,243,32,15,175,167,80,57,171,235,29,198,49,230,198,71,251,246,204,190,131,254,88,156,227,169,224,145,219,216,41,42,125,233,33,245,251,
+209,55,28,231,59,109,199,231,192,56,250,26,0,160,62,195,207,238,1,60,124,198,218,196,30,112,59,147,211,249,102,148,61,162,228,249,42,61,70,219,37,31,81,131,200,30,223,203,53,124,22,3,62,117,191,76,157,
+216,25,231,161,62,70,123,99,3,35,160,245,165,51,74,49,182,75,83,244,17,228,114,65,25,54,221,71,225,236,104,2,164,114,216,168,255,0,143,120,242,121,56,54,131,159,161,92,126,33,137,233,83,173,213,136,25,
+17,32,246,15,109,207,78,234,15,248,3,193,231,56,127,218,24,103,51,68,126,139,23,24,228,227,253,27,36,28,116,207,126,8,230,131,117,42,242,26,46,115,156,164,100,116,234,113,111,199,244,227,30,192,17,253,
+190,208,28,121,67,129,255,0,61,32,63,158,0,3,243,250,28,208,53,8,8,202,129,142,135,247,150,227,29,50,9,243,49,208,114,70,14,71,60,28,212,159,107,61,75,90,156,140,241,18,183,78,115,254,163,130,127,15,110,
+244,159,106,245,91,98,70,115,152,145,79,62,153,140,31,196,103,249,80,3,5,236,36,225,163,81,233,251,216,50,7,182,217,56,4,113,158,71,74,119,218,163,35,140,241,198,62,209,26,247,237,251,192,61,1,207,167,
+60,102,165,91,197,199,250,187,124,228,255,0,207,21,233,238,109,223,175,98,8,250,131,75,246,160,127,229,140,93,7,38,68,24,232,123,64,163,177,28,228,227,211,154,0,136,92,35,112,18,76,12,2,126,220,156,243,
+147,140,204,7,76,1,219,7,7,35,20,173,58,12,133,243,151,208,11,181,97,245,249,46,163,228,251,254,62,210,139,145,208,91,199,156,227,139,144,1,234,127,184,78,61,72,247,245,193,113,150,70,251,182,171,131,
+233,115,147,158,58,31,40,117,231,31,80,65,29,192,43,125,168,231,134,186,0,227,56,185,4,100,247,230,251,175,124,112,56,201,192,234,227,117,38,14,217,47,64,255,0,102,69,3,129,223,58,136,4,242,58,158,189,
+184,226,127,50,228,255,0,203,168,92,158,51,114,122,46,59,0,9,192,56,29,176,15,25,205,56,11,147,187,16,17,215,35,237,36,224,158,112,0,32,103,161,198,120,250,208,6,123,92,72,72,38,75,226,1,39,6,68,3,39,
+156,110,58,131,2,122,3,205,11,60,164,227,125,208,238,1,145,51,215,218,251,4,243,199,212,100,245,173,52,23,61,12,76,163,190,38,62,189,178,73,207,174,9,247,235,75,155,160,70,212,147,4,245,19,17,200,231,
+177,227,147,220,129,129,211,57,160,12,211,59,116,102,185,39,159,249,106,6,59,113,254,155,215,60,1,144,122,114,73,167,173,195,1,133,251,64,231,60,220,17,199,95,249,251,57,227,175,62,188,3,205,93,205,235,
+116,89,122,231,137,95,119,96,115,206,113,233,201,231,158,5,59,101,251,99,11,55,65,201,121,120,30,249,145,115,237,207,227,207,32,21,5,204,163,156,74,112,56,62,112,36,113,215,155,192,72,206,122,241,198,
+113,142,143,55,146,158,118,204,8,7,248,193,60,231,156,153,155,215,29,123,12,244,169,30,43,254,119,35,243,216,249,143,200,32,116,107,142,113,215,215,219,25,53,23,145,121,252,66,80,58,224,69,38,121,244,
+2,232,3,233,156,250,244,20,0,159,109,185,110,130,112,61,4,174,163,129,143,239,125,122,30,58,143,103,125,170,108,114,37,245,230,89,9,227,212,133,35,245,253,106,35,5,200,39,50,220,14,59,194,59,117,229,239,
+242,8,247,29,105,118,75,140,52,215,32,244,207,146,167,211,35,254,63,241,237,248,142,56,160,5,107,153,185,253,212,164,158,132,200,192,30,249,249,160,114,71,227,254,20,207,180,92,0,63,115,38,61,62,209,50,
+144,61,7,250,49,252,135,3,29,13,41,243,84,21,23,23,60,241,204,43,130,49,239,123,128,62,185,207,3,156,26,97,89,127,231,180,248,62,176,69,156,122,241,117,244,254,157,40,0,51,204,114,90,218,126,72,32,253,
+174,92,103,221,77,175,63,247,207,30,156,102,154,110,100,60,8,100,4,14,247,39,60,12,116,251,48,61,71,76,122,123,146,121,115,17,147,37,222,223,246,96,135,249,27,179,245,224,15,90,80,174,164,254,242,247,
+29,8,85,129,122,128,14,65,187,193,30,189,113,200,57,192,160,6,139,171,142,203,58,143,102,36,28,117,228,91,103,146,123,16,56,235,216,35,94,92,1,130,110,179,215,130,231,31,64,45,79,94,120,3,24,28,230,156,
+210,201,201,19,95,122,158,96,238,7,165,199,76,142,156,240,56,228,84,70,102,207,51,234,36,231,156,71,14,6,125,252,211,233,192,28,115,64,8,46,102,99,157,247,25,7,57,101,156,224,143,92,89,142,158,222,227,
+39,138,12,243,140,31,55,129,235,12,253,71,161,251,47,161,60,114,15,67,131,78,251,75,140,31,180,234,35,166,126,85,234,61,112,72,192,234,122,19,205,56,95,76,14,62,209,124,112,63,136,48,7,60,245,84,35,60,
+250,156,115,233,128,0,195,117,57,198,29,186,103,136,100,198,73,231,254,93,71,183,94,71,0,156,82,9,174,24,143,153,177,238,36,4,231,142,49,2,146,59,228,15,192,83,254,220,248,57,184,159,142,155,154,95,174,
+50,99,199,36,158,157,7,24,200,205,68,111,100,227,230,113,143,93,217,239,211,228,94,156,31,111,106,0,144,203,40,254,50,15,39,254,90,100,228,17,213,163,252,177,142,222,152,9,230,191,121,100,25,236,86,70,
+246,199,203,248,14,249,207,83,218,22,212,157,120,12,203,211,159,53,208,103,241,76,99,223,235,158,244,198,191,147,35,60,251,155,150,25,255,0,200,94,220,116,63,165,0,74,90,94,191,104,144,103,140,136,231,
+198,61,56,221,158,158,156,30,61,77,71,190,83,130,110,102,199,65,147,112,189,248,234,185,237,208,115,233,215,150,155,230,32,224,22,244,196,229,186,127,192,57,62,195,39,39,142,180,207,181,54,121,136,228,
+255,0,180,125,127,221,252,243,199,52,0,59,28,128,38,147,7,168,50,220,46,113,201,233,211,168,57,60,156,143,161,136,176,60,147,156,15,189,246,171,145,223,140,240,184,56,25,238,114,61,179,79,55,39,131,229,
+63,57,199,206,184,246,200,36,0,61,179,147,223,52,195,116,6,127,114,205,159,246,208,119,228,117,231,215,36,158,222,148,1,25,158,48,120,220,195,57,226,238,113,144,61,62,108,224,96,231,215,145,142,229,173,
+114,156,102,60,100,99,115,92,93,55,78,159,113,72,207,79,70,199,57,239,82,25,201,31,241,228,27,216,201,14,14,6,58,231,57,252,15,78,188,100,70,102,202,156,217,72,189,190,86,132,140,119,198,10,253,49,142,
+63,152,0,110,145,64,198,0,255,0,175,139,174,121,234,55,70,70,61,184,231,183,38,171,189,249,254,18,15,60,129,52,228,245,255,0,106,62,157,189,191,80,242,232,120,107,105,253,134,232,177,219,174,91,129,211,
+175,29,120,56,224,9,19,113,228,78,64,39,131,44,68,99,233,230,115,233,208,99,167,126,0,35,23,210,3,144,136,71,185,184,36,243,207,38,51,199,160,237,238,121,167,255,0,104,190,0,120,149,189,48,38,227,39,29,
+76,60,100,113,156,253,220,130,70,113,78,217,10,145,139,123,129,219,229,116,3,147,254,205,202,231,232,113,206,42,54,88,79,252,187,75,208,103,50,160,31,95,248,248,60,228,119,206,115,235,64,1,212,58,238,
+180,29,64,249,179,199,61,193,76,224,16,70,120,231,61,123,48,106,32,156,27,80,7,82,2,164,153,239,128,25,71,227,147,253,105,173,12,44,56,142,69,0,115,153,99,200,39,177,38,67,159,199,3,28,145,138,140,91,
+195,145,242,200,15,251,240,253,73,201,108,113,145,233,235,235,64,19,255,0,104,30,118,192,80,246,253,197,177,207,182,55,161,7,159,167,231,195,5,252,174,126,227,129,156,1,246,91,76,126,4,204,15,183,110,
+220,211,126,202,58,132,124,158,132,77,24,61,125,65,0,118,7,146,7,184,28,196,246,111,215,231,28,99,38,233,7,211,63,188,193,193,62,152,233,156,208,4,230,238,78,49,231,142,185,197,181,176,60,231,174,111,
+23,245,252,249,230,54,188,144,117,89,155,251,164,193,108,115,207,94,53,17,156,241,193,252,61,42,185,177,98,114,28,124,163,0,27,168,200,233,211,137,65,56,39,208,251,240,57,114,233,243,49,56,104,177,239,
+115,22,7,29,120,114,122,143,255,0,86,120,0,157,110,179,214,25,121,61,68,49,12,231,25,228,95,228,114,0,56,60,128,57,239,79,251,90,112,54,203,208,245,141,14,51,142,132,94,158,127,2,61,48,122,84,107,25,84,
+31,48,68,121,201,255,0,75,76,158,56,3,105,63,151,115,245,168,205,172,192,252,161,7,24,31,233,100,129,199,166,27,191,249,224,80,4,237,113,24,57,9,41,228,115,181,87,177,254,237,238,70,49,129,255,0,235,21,
+31,218,51,198,201,7,57,11,137,9,227,169,249,46,79,60,145,219,220,212,95,101,155,4,225,27,254,222,88,243,211,36,44,99,3,223,166,79,92,26,111,147,112,185,59,84,174,120,197,220,128,140,115,211,96,227,142,
+191,143,165,0,76,211,43,114,203,55,3,248,150,96,59,240,15,218,189,122,100,245,238,51,138,111,218,35,200,249,100,4,14,54,61,207,79,194,228,227,239,30,126,163,28,211,54,92,129,254,173,71,99,254,149,49,207,
+67,216,143,169,192,28,254,70,34,179,47,84,140,131,158,179,206,122,14,63,229,174,50,121,237,235,156,208,5,161,115,14,62,229,200,62,190,109,207,83,207,105,120,206,1,32,243,145,215,138,13,212,88,193,142,
+224,142,152,55,23,57,199,32,156,147,147,199,92,158,156,28,103,6,152,102,7,62,84,93,255,0,229,188,164,28,250,159,51,191,78,72,60,125,50,121,184,32,178,70,49,200,196,179,224,244,224,230,227,241,192,206,
+125,58,80,4,230,238,16,126,81,114,15,112,179,220,231,0,113,140,146,59,243,207,76,14,59,63,237,106,120,205,216,200,227,23,23,29,125,121,144,245,35,160,239,140,119,204,6,233,20,100,170,99,158,60,217,142,
+51,238,36,35,167,124,244,227,52,195,119,22,120,88,243,207,30,101,193,239,215,13,33,200,250,231,62,163,169,0,151,237,96,158,5,238,122,31,244,137,135,127,247,143,176,234,114,113,131,140,128,134,239,174,
+30,245,125,127,211,28,228,100,140,21,192,199,62,252,116,239,81,155,145,215,17,140,243,130,95,215,174,12,131,161,231,249,115,71,218,136,229,68,1,177,252,33,179,199,35,159,49,184,207,251,60,117,28,208,4,
+139,123,131,143,62,236,96,103,13,112,199,240,230,69,233,215,36,228,211,134,162,51,159,180,207,199,79,157,152,131,233,197,193,35,35,156,142,78,50,42,183,219,38,29,30,53,7,213,93,243,131,199,25,231,168,
+207,92,99,161,166,155,185,134,114,240,19,158,127,119,32,252,120,124,147,215,60,113,237,154,0,191,253,162,72,5,110,110,56,232,27,204,57,206,122,147,33,24,250,118,247,234,134,253,241,255,0,31,47,140,115,
+196,165,137,233,206,8,200,193,239,239,89,255,0,106,148,242,22,204,246,193,89,3,103,220,149,98,1,29,178,113,159,74,141,174,174,1,233,102,7,56,59,156,12,122,96,198,54,142,70,57,199,28,154,0,208,55,228,241,
+246,134,207,29,68,189,58,231,147,199,208,130,121,227,53,17,188,99,156,93,183,56,207,92,1,207,98,14,56,245,3,159,214,144,185,156,159,152,217,117,36,100,228,159,92,19,24,35,175,175,231,205,6,121,73,226,
+59,12,122,153,24,103,143,64,170,163,60,241,158,223,152,5,131,118,188,127,166,56,28,31,151,104,193,245,229,8,207,28,227,7,142,185,4,82,11,216,200,199,219,165,56,7,229,62,89,199,81,192,49,227,177,244,247,
+170,222,109,206,120,75,46,71,65,34,127,35,32,56,252,79,76,247,167,25,46,192,63,37,135,208,220,42,244,244,196,188,3,249,14,152,3,160,4,255,0,108,139,24,251,76,173,212,99,202,143,60,12,241,180,103,4,253,
+9,231,160,36,80,110,208,227,19,74,115,198,54,129,234,113,247,112,58,103,175,175,30,149,12,179,228,151,254,207,92,247,251,84,103,183,24,6,111,78,223,78,189,148,57,35,37,180,239,67,254,145,17,201,36,122,
+76,123,30,253,253,168,2,115,114,157,124,219,129,219,42,192,1,244,59,15,61,57,207,181,51,237,60,143,223,76,121,207,250,216,212,159,161,40,188,243,211,233,142,152,166,240,58,157,47,158,127,227,230,48,72,
+227,140,101,185,232,57,238,113,193,20,237,227,174,235,63,95,221,92,70,71,167,37,72,63,134,79,126,148,0,246,185,143,25,223,56,198,73,1,226,111,230,64,56,255,0,245,113,205,2,233,59,75,57,29,135,250,49,7,
+234,9,245,234,78,70,79,90,84,149,65,193,146,220,228,245,50,171,99,142,156,176,200,207,160,231,60,250,212,155,193,201,18,91,31,163,162,145,232,15,94,14,79,81,223,142,40,1,171,122,6,0,19,145,192,7,22,163,
+61,65,25,44,71,78,79,65,245,197,74,110,183,46,8,152,131,216,253,148,142,115,211,147,237,208,1,211,29,234,32,239,206,103,137,6,113,129,58,125,127,231,139,99,183,57,32,12,96,142,181,32,110,121,187,76,224,
+144,4,138,65,4,250,11,98,73,56,7,183,235,138,0,60,217,8,24,92,228,156,7,123,110,49,207,24,239,244,227,56,239,140,20,226,203,209,174,20,159,250,232,8,237,158,13,174,126,156,140,230,138,0,180,206,8,207,
+218,216,145,129,255,0,31,47,223,31,195,246,44,114,114,61,7,29,69,70,88,142,146,206,112,78,49,118,192,14,160,224,125,147,131,131,201,237,146,79,180,101,46,115,210,32,15,35,51,130,121,234,65,17,175,60,231,
+3,30,253,41,132,93,99,253,84,39,140,18,101,101,233,131,200,24,231,142,160,28,247,198,40,1,205,230,177,4,73,57,24,232,111,120,39,4,129,255,0,30,195,24,192,224,147,142,254,237,49,74,231,239,206,7,115,246,
+204,243,254,206,45,73,192,207,208,246,168,76,151,138,64,17,64,153,35,165,201,232,59,5,96,14,65,244,108,118,169,55,94,17,254,170,221,187,127,174,193,236,115,157,253,242,127,3,248,0,8,154,9,215,63,51,50,
+255,0,181,115,47,182,115,139,62,63,49,245,239,76,41,33,35,229,98,64,237,113,55,79,78,109,199,126,254,220,211,153,175,7,2,222,215,175,252,246,35,4,103,169,243,9,61,250,250,140,122,83,196,183,96,115,109,
+104,7,36,254,252,145,131,142,188,28,14,70,61,186,244,228,2,6,142,94,187,37,29,49,251,249,216,116,224,12,70,0,234,115,223,131,212,84,101,101,29,34,207,64,51,61,198,70,15,57,7,31,203,212,98,174,137,165,
+39,38,218,211,62,206,196,246,231,168,252,9,252,56,52,23,144,224,24,109,178,122,124,203,158,127,222,144,145,143,243,232,0,41,226,235,160,129,118,245,200,154,227,158,188,253,209,159,65,206,62,163,168,97,
+187,32,31,178,49,237,148,123,150,29,56,251,165,71,174,114,15,32,245,171,109,230,158,68,118,221,176,65,86,56,199,32,147,48,24,207,35,3,161,30,162,148,36,191,243,206,60,145,216,199,142,59,130,103,244,207,
+61,121,206,79,112,10,66,43,165,39,253,25,135,76,238,123,206,158,165,75,99,175,65,248,241,217,66,220,3,150,181,39,29,72,123,161,234,122,137,65,231,169,4,250,140,1,145,90,6,41,136,233,24,28,242,37,136,99,
+215,43,191,166,59,228,147,206,122,98,158,21,177,134,148,122,96,72,159,174,222,185,63,94,71,94,104,3,44,146,164,31,179,250,142,90,232,145,223,7,253,35,156,96,251,15,115,72,102,3,173,161,3,39,37,77,194,
+142,220,146,215,67,25,245,205,105,178,160,60,185,227,176,148,174,71,253,251,35,191,242,25,25,167,33,132,231,46,231,167,252,180,94,58,246,48,224,243,143,108,125,120,0,205,243,3,15,150,41,72,227,164,140,
+122,140,227,254,62,27,60,117,163,45,208,70,224,253,71,191,171,62,58,113,235,215,210,180,155,200,39,27,165,4,242,121,139,7,166,121,17,1,215,182,120,226,155,182,17,211,206,56,201,207,159,2,244,198,8,6,220,
+159,126,254,156,113,144,10,64,62,127,213,184,244,193,137,185,231,177,7,249,16,120,207,53,42,163,158,10,202,1,193,231,103,61,176,64,85,237,208,228,12,112,0,24,169,194,219,228,100,77,145,131,255,0,31,72,
+15,126,203,0,245,250,116,206,123,59,54,234,127,213,220,156,119,251,66,19,206,115,247,161,200,253,122,231,169,160,6,5,42,64,253,226,253,99,132,129,129,158,164,99,211,177,57,239,205,72,161,179,129,35,143,
+251,97,106,199,190,7,204,184,199,0,116,231,28,208,102,183,83,159,38,224,253,110,83,156,119,226,220,17,192,245,224,227,60,96,81,246,187,114,49,228,92,55,95,249,121,82,6,49,156,230,2,0,239,142,199,218,128,
+30,82,99,199,153,40,199,165,173,175,166,50,126,66,8,254,185,245,165,9,122,8,42,215,24,245,22,150,163,143,127,221,128,59,30,156,113,207,21,31,218,34,234,45,166,32,113,203,70,192,30,153,57,133,115,248,31,
+199,165,52,204,167,31,232,207,237,133,143,63,250,1,252,179,207,7,20,1,121,98,212,78,74,201,116,58,116,142,204,3,238,1,78,58,118,28,254,181,33,135,83,29,238,136,245,242,236,135,243,67,248,85,1,34,16,64,
+182,115,232,63,118,0,24,231,238,167,4,156,116,198,112,113,193,167,9,115,199,144,129,186,124,210,129,233,206,2,117,246,231,61,120,235,64,26,27,117,17,193,251,72,28,115,182,199,215,175,24,246,234,73,247,
+231,151,255,0,165,174,70,235,145,142,15,203,109,215,191,62,104,60,245,244,254,185,254,108,138,64,88,97,227,175,206,231,56,199,56,85,30,248,207,183,112,48,241,113,50,227,16,192,120,232,204,228,159,193,
+191,159,29,251,0,104,2,254,251,158,239,62,122,227,203,183,36,143,252,8,231,191,60,117,224,118,164,18,93,30,1,185,247,0,91,12,231,160,255,0,143,140,143,110,51,144,58,115,138,130,230,228,255,0,203,27,117,
+30,253,127,244,49,237,215,240,61,169,194,226,124,16,97,135,7,208,59,12,158,188,137,23,156,158,160,251,98,128,44,135,186,254,229,209,228,14,89,1,233,223,23,3,3,185,228,144,122,96,26,79,54,92,229,162,159,
+60,242,211,129,244,206,103,32,119,199,95,78,220,196,37,114,9,48,70,125,252,166,232,125,213,206,1,231,146,113,199,95,85,89,147,130,209,161,192,57,1,164,76,30,59,153,6,122,117,25,245,200,38,128,38,23,14,
+71,34,80,70,121,55,49,158,248,25,6,229,115,211,174,115,158,61,169,76,241,2,55,9,73,199,56,116,113,250,92,54,123,241,198,56,39,28,211,22,226,0,78,232,71,110,124,242,14,70,72,192,18,3,140,99,156,156,244,
+24,57,169,126,215,16,35,108,108,1,201,226,102,62,157,188,254,14,56,245,231,165,0,52,79,109,220,75,200,193,1,65,57,235,146,68,252,246,57,237,131,140,115,75,230,216,142,88,73,245,219,206,122,243,254,144,
+71,183,35,215,29,242,255,0,182,70,121,43,41,35,160,14,228,247,206,72,152,14,125,50,15,233,79,23,176,147,181,162,185,63,64,8,63,249,49,147,143,111,78,1,61,64,35,89,236,187,163,123,110,139,35,175,83,243,
+147,159,76,14,58,231,6,172,9,172,248,56,81,129,198,32,231,191,251,64,254,100,114,115,215,34,129,123,1,225,98,186,224,243,181,16,17,199,113,230,28,227,234,125,186,98,147,237,139,145,242,93,15,79,220,161,
+39,220,128,9,236,63,60,16,40,2,97,53,137,31,49,219,158,167,202,96,113,239,251,255,0,233,140,125,115,82,9,116,188,124,211,17,142,159,186,67,232,127,138,124,147,192,252,125,198,106,177,185,45,247,69,192,
+57,231,116,91,72,201,234,70,194,14,123,14,121,193,199,28,138,242,16,6,235,149,246,17,174,49,198,56,49,170,159,124,158,69,0,88,18,233,100,241,112,195,61,79,217,98,32,143,115,231,129,216,242,15,124,1,205,
+88,31,217,164,156,92,49,25,28,125,141,27,63,249,25,135,62,152,235,219,181,84,81,55,85,105,152,119,13,20,56,245,231,229,201,231,7,143,67,147,222,158,5,225,31,40,152,245,224,64,132,244,199,0,41,4,2,65,207,
+24,56,234,57,160,11,96,88,156,5,121,49,219,22,0,113,192,24,203,96,129,207,29,125,243,209,255,0,232,171,140,72,228,131,255,0,62,81,143,207,44,72,252,14,120,207,173,82,17,95,182,73,243,246,140,127,203,186,
+113,158,153,196,92,103,220,243,131,145,207,0,130,244,119,156,100,28,21,181,81,156,117,36,148,63,153,31,135,28,128,95,18,219,228,133,149,199,94,5,138,103,215,156,99,223,183,62,249,192,156,73,7,63,191,101,
+244,255,0,66,137,79,174,1,243,70,57,231,32,103,212,226,179,5,189,233,234,215,89,61,214,16,167,191,165,179,115,207,243,235,210,156,182,151,109,128,126,218,112,121,63,40,246,255,0,159,101,29,6,58,123,243,
+140,128,13,35,36,57,230,105,91,254,221,163,253,49,54,121,231,174,7,29,206,48,134,72,135,221,105,9,207,83,110,132,115,208,125,246,227,144,58,146,125,122,102,154,217,92,100,146,151,135,175,89,85,127,12,
+8,65,238,8,231,216,3,205,72,182,151,0,177,17,221,49,232,71,152,164,250,140,230,220,231,223,57,245,201,207,32,22,68,185,192,10,204,123,98,32,185,252,1,7,3,156,0,71,111,66,12,138,88,244,134,70,29,121,94,
+163,140,140,110,31,203,191,25,170,134,222,69,31,52,87,7,29,55,75,26,15,174,62,198,195,215,211,183,224,8,228,3,62,84,254,229,103,140,231,208,144,44,243,199,31,137,246,34,128,46,121,141,187,6,9,49,193,202,
+168,3,140,117,33,134,113,159,199,57,167,249,227,31,234,152,28,12,111,44,8,239,193,50,144,51,199,3,29,115,199,81,64,12,12,108,185,0,246,251,70,15,212,109,179,200,253,57,237,234,160,170,229,182,92,1,142,
+215,36,144,15,7,25,180,0,3,159,65,199,24,25,52,1,160,47,36,31,242,197,142,79,56,146,81,159,78,146,228,118,232,125,123,19,82,125,177,137,25,129,250,103,30,109,192,60,251,121,192,158,253,7,28,118,21,65,
+89,59,27,142,156,102,228,0,127,43,65,156,30,14,49,234,58,226,128,83,36,169,145,79,251,82,150,228,112,121,88,148,119,232,122,123,247,0,209,55,114,28,129,9,3,191,239,238,123,250,254,248,253,72,29,142,72,
+166,155,167,227,253,29,73,233,203,220,49,199,60,147,230,241,215,215,185,170,36,177,4,135,238,57,218,73,207,166,60,146,167,183,167,39,175,20,133,164,32,226,102,192,3,63,34,244,199,166,197,57,61,58,227,
+61,176,13,0,91,107,150,231,116,9,198,72,249,216,3,142,51,153,38,237,211,144,113,142,157,106,63,56,19,159,38,22,207,169,71,0,227,158,172,224,15,168,233,223,28,85,117,97,222,119,7,158,68,96,112,56,60,0,
+61,14,51,237,79,14,188,145,117,38,65,227,8,6,48,122,125,240,7,30,135,234,123,144,9,124,225,142,96,179,235,129,149,136,158,113,158,137,142,71,94,63,14,148,134,113,206,45,236,207,24,201,85,250,17,133,192,
+61,71,81,207,167,56,166,9,25,70,69,219,250,244,32,158,72,198,4,227,211,25,227,240,198,75,196,196,227,55,50,30,71,33,24,241,199,79,244,174,123,117,237,198,6,104,2,38,152,156,98,222,195,130,63,229,132,121,
+199,168,221,235,156,3,199,29,249,192,103,152,172,64,107,109,60,118,201,129,115,193,224,143,152,12,100,227,0,159,65,145,197,90,220,24,113,60,173,223,253,81,193,62,160,155,188,253,120,207,78,112,42,34,31,
+168,145,136,234,62,78,167,143,250,122,56,192,244,61,113,145,205,0,64,219,58,121,22,24,231,254,93,161,57,63,86,115,212,122,131,144,61,105,174,160,142,97,180,199,81,254,137,109,142,125,240,220,159,95,83,
+219,173,77,135,28,238,97,207,56,0,30,231,140,220,17,145,219,35,176,230,154,89,148,100,51,255,0,228,37,228,250,31,180,143,241,57,236,40,2,177,220,191,114,27,78,125,45,45,87,159,169,76,227,3,28,30,191,136,
+166,153,37,4,1,13,161,35,210,214,212,131,207,78,34,102,235,156,242,113,211,61,170,201,99,143,189,33,227,140,200,167,174,121,249,110,14,61,57,207,64,79,106,76,103,162,179,30,57,220,228,158,191,244,219,
+7,60,115,215,62,180,0,197,51,127,207,180,4,244,249,108,98,224,145,237,16,247,29,70,123,116,20,134,75,140,19,246,115,255,0,0,177,81,211,212,238,3,63,78,63,19,83,4,98,9,40,227,144,78,11,17,207,29,167,246,
+246,192,199,20,225,30,122,199,33,201,198,2,200,127,1,251,252,126,96,156,243,201,232,1,87,204,185,61,96,113,211,0,218,70,58,144,120,6,92,156,103,219,61,57,207,13,15,57,255,0,150,114,103,218,8,1,29,115,
+210,97,129,147,223,158,152,226,172,52,0,243,176,167,253,242,190,184,206,233,135,215,167,78,221,69,69,246,117,244,144,142,160,135,135,215,60,254,240,231,156,145,201,7,35,234,0,24,90,126,8,73,179,199,0,
+66,189,61,115,35,15,92,115,222,147,116,196,224,199,32,245,12,246,128,245,7,35,25,238,125,122,144,125,77,61,96,132,227,112,144,227,185,242,79,82,123,153,7,94,227,184,227,39,156,33,183,178,56,220,101,4,
+243,255,0,44,79,175,171,158,121,207,64,125,241,64,16,159,53,126,242,224,47,56,223,109,149,56,206,50,37,92,251,156,99,143,65,154,112,124,224,109,126,131,39,206,182,4,123,255,0,199,206,122,251,125,51,82,
+125,142,204,159,153,155,29,48,100,76,130,58,18,3,113,250,96,246,200,205,59,236,90,111,25,144,143,108,47,25,227,215,169,207,35,161,226,128,24,54,19,143,155,28,255,0,203,123,113,143,66,199,237,25,233,219,
+208,142,41,88,196,189,36,153,122,18,5,226,1,199,78,18,231,25,245,252,250,98,164,251,38,150,163,38,114,51,212,252,138,14,122,156,149,110,59,118,25,32,244,226,162,120,52,133,255,0,151,141,224,1,209,226,
+0,117,231,6,6,231,182,63,159,6,128,26,39,128,117,185,151,169,225,175,144,14,123,101,167,39,240,200,233,222,151,205,182,63,242,217,219,142,191,111,139,223,191,154,70,114,57,199,74,136,195,164,31,249,106,
+195,3,35,253,38,220,103,169,232,109,78,59,231,39,29,232,88,52,166,192,222,199,7,32,11,168,65,201,228,146,22,207,28,241,145,180,123,138,0,144,77,104,50,68,173,159,123,232,115,252,159,166,58,19,219,56,32,
+211,150,123,83,199,158,160,158,160,221,219,177,227,166,126,80,58,127,66,61,11,126,203,167,224,109,69,3,168,204,235,201,244,226,203,159,167,191,126,5,63,200,179,80,78,228,201,24,35,207,35,254,3,159,176,
+28,146,59,15,108,80,3,12,144,18,118,206,15,210,104,49,211,36,12,55,212,19,200,198,120,24,192,95,62,19,193,153,152,255,0,215,212,32,247,206,6,14,79,110,49,199,35,25,20,44,113,47,221,84,198,56,62,115,253,
+121,34,205,120,3,242,200,206,15,20,240,202,63,229,156,103,29,0,148,158,51,234,109,184,28,243,146,15,61,77,0,70,207,7,80,193,185,32,230,225,24,228,122,237,136,224,143,127,106,137,141,177,60,49,24,61,166,
+218,61,58,249,24,198,49,220,103,142,42,114,72,233,2,55,169,50,19,142,221,124,149,31,76,242,49,159,106,143,116,160,255,0,199,156,109,207,80,228,227,185,193,216,8,62,254,167,62,130,128,35,34,62,161,139,
+131,129,134,153,78,62,185,131,174,78,7,175,32,211,118,41,28,117,207,95,58,33,129,216,1,246,126,56,252,253,122,84,226,105,198,7,216,248,31,48,192,78,216,255,0,104,116,252,63,64,41,226,226,83,255,0,46,75,
+215,174,196,99,211,129,195,55,249,237,210,128,42,128,189,202,41,233,147,52,4,143,169,54,253,207,111,124,119,34,157,212,12,50,96,245,196,177,117,28,99,253,64,233,131,198,78,49,248,213,161,51,113,186,200,
+14,123,219,131,200,231,60,39,56,60,244,29,120,52,191,108,147,167,217,112,1,60,139,38,24,35,35,168,80,63,28,142,79,210,128,42,253,99,114,114,115,182,64,7,57,193,202,166,8,207,81,140,12,231,190,105,67,175,
+67,19,224,122,202,228,240,7,60,33,4,246,228,14,58,3,218,199,218,223,146,109,176,0,198,13,187,14,152,233,149,206,61,49,215,61,79,57,81,121,128,67,66,171,145,156,253,157,178,59,30,124,167,35,35,248,114,
+58,244,205,0,86,243,1,228,43,228,127,183,113,199,24,198,68,120,35,249,112,58,241,78,18,201,146,64,144,3,198,86,89,70,7,28,156,160,253,73,60,231,181,88,23,89,80,4,81,158,122,181,178,158,157,58,219,130,
+15,61,79,244,205,52,220,142,115,26,47,25,226,16,7,161,233,9,24,56,31,227,158,128,13,51,76,58,180,164,112,112,110,101,207,175,32,12,159,195,30,135,52,239,180,200,0,253,227,131,131,143,223,220,3,156,227,
+161,96,15,3,146,14,59,100,158,105,62,218,128,224,46,15,64,68,92,126,98,216,1,211,185,254,134,147,237,33,176,187,207,167,17,57,234,79,93,182,252,245,235,192,254,116,0,241,114,127,138,89,79,124,139,139,
+128,1,231,160,18,231,63,134,79,95,76,47,218,198,7,207,48,199,92,92,94,146,70,125,166,56,3,56,244,198,123,83,60,220,30,36,207,124,180,82,227,140,12,144,32,28,126,35,167,167,67,205,147,24,89,161,29,50,124,
+185,179,199,252,4,115,223,0,15,202,128,36,91,255,0,250,107,112,59,31,223,222,144,125,122,201,146,63,67,143,124,212,191,111,82,114,110,39,92,3,140,79,123,239,215,36,143,110,157,179,156,28,213,99,60,128,
+96,184,245,200,89,7,25,231,183,183,177,236,125,129,51,18,78,114,115,192,204,153,199,57,235,180,244,244,62,188,208,5,143,182,197,212,222,92,30,113,129,53,255,0,177,192,11,19,241,142,125,177,142,77,60,94,
+66,84,102,246,113,199,123,155,240,71,215,116,7,36,227,166,113,198,64,224,131,88,79,49,229,85,189,48,3,142,7,124,153,151,208,245,32,246,199,171,196,247,7,10,85,200,28,241,230,227,242,89,143,226,114,63,
+149,0,56,221,90,140,19,168,72,127,237,226,236,142,123,156,66,58,244,31,215,154,106,221,91,3,198,162,255,0,197,129,230,222,182,61,121,216,8,235,200,250,243,222,167,89,174,152,109,80,216,28,99,23,57,62,
+159,198,125,59,115,215,241,112,91,144,70,81,135,66,6,203,209,187,57,198,113,40,7,24,237,207,60,115,208,2,187,79,1,255,0,151,249,72,206,70,38,189,199,160,56,17,159,110,253,122,115,78,87,128,156,125,186,
+92,28,18,76,151,196,113,211,57,183,108,244,238,15,35,218,172,42,76,15,48,150,246,242,174,143,110,122,182,121,238,63,65,146,40,45,54,112,32,69,231,180,55,121,199,212,73,145,201,57,201,29,57,29,128,3,54,
+68,223,40,212,157,78,115,247,238,135,182,0,107,35,129,206,79,60,140,241,73,246,88,207,77,68,159,92,201,113,201,237,200,178,56,252,122,158,115,74,126,213,207,200,202,189,79,201,117,142,125,51,32,4,14,14,
+50,122,115,140,102,163,34,114,71,204,87,61,218,59,193,199,177,18,224,242,61,58,140,116,198,0,15,178,31,225,190,7,39,143,223,78,190,184,206,108,249,39,183,110,244,193,107,38,112,38,12,59,177,186,151,169,
+35,167,250,47,110,184,233,253,102,9,33,7,116,204,56,255,0,158,55,140,51,207,4,150,111,76,241,212,30,188,83,178,20,100,220,19,245,130,244,19,235,198,15,224,8,247,7,174,64,35,54,14,64,37,209,177,208,44,
+228,183,29,115,186,216,116,199,160,247,20,229,176,126,115,27,159,125,205,206,63,221,183,252,186,100,28,144,1,38,148,136,201,255,0,94,199,35,143,244,91,220,12,251,5,92,159,199,175,20,215,16,174,1,150,99,
+235,178,202,236,142,125,240,120,56,245,36,100,224,28,80,4,195,78,124,127,199,187,30,115,134,119,61,61,205,174,7,190,79,176,228,212,235,167,156,28,219,38,56,192,44,23,144,79,82,109,118,159,113,199,57,29,
+234,134,248,0,249,100,127,161,180,185,66,15,60,101,215,29,178,78,78,7,181,1,148,15,150,65,130,71,202,109,167,29,242,127,131,215,166,112,0,237,64,26,95,98,192,192,179,183,110,164,31,50,32,113,211,143,244,
+85,39,130,58,244,228,242,105,166,204,131,159,176,192,113,130,63,125,24,24,234,120,17,14,231,176,227,35,161,170,91,75,140,253,163,3,63,119,201,156,127,44,142,115,207,78,152,193,192,167,164,109,156,121,
+144,243,140,102,25,91,61,184,224,159,254,191,64,104,2,231,217,198,6,237,62,12,31,73,148,231,166,122,70,122,119,192,250,30,148,130,27,82,78,108,32,4,18,9,39,112,4,113,206,35,57,31,231,165,34,65,33,3,46,
+135,28,13,176,200,185,252,54,103,62,196,126,93,156,109,37,56,195,69,236,29,24,118,244,8,8,231,142,231,174,48,40,2,85,182,179,36,147,99,109,129,130,119,91,150,62,223,122,3,147,158,222,148,155,44,147,56,
+211,173,253,6,203,32,15,78,9,62,71,92,227,24,192,247,232,42,47,178,92,231,0,66,48,112,118,164,221,240,9,251,160,16,71,82,79,29,51,212,133,54,55,74,70,90,17,145,222,43,159,230,9,199,28,231,24,199,126,184,
+0,151,117,144,24,251,28,0,240,0,22,224,17,212,28,159,32,109,199,126,79,124,113,76,86,180,228,27,104,176,58,31,179,68,196,227,140,18,97,228,156,144,113,199,212,84,127,100,185,228,6,183,7,212,71,57,24,3,
+222,18,48,61,1,60,19,205,47,216,110,49,147,52,75,142,65,72,156,158,57,232,98,231,233,140,243,211,61,64,30,239,107,131,182,214,60,245,43,246,104,7,175,32,27,71,25,39,61,249,231,161,53,3,180,28,31,178,156,
+14,155,108,224,3,3,239,1,254,130,1,247,235,145,220,102,156,214,115,255,0,207,118,61,56,88,36,110,157,240,98,4,158,157,6,126,181,27,89,201,252,83,204,113,212,24,37,24,246,226,216,254,158,188,26,0,69,107,
+92,229,160,159,60,242,44,237,88,3,216,29,214,124,122,142,221,78,48,57,105,146,204,103,16,92,156,240,79,216,172,200,250,12,89,17,216,30,49,143,106,113,178,207,6,230,228,19,146,54,65,59,113,207,57,16,46,
+15,62,167,145,223,169,174,246,106,50,13,213,209,227,35,116,115,237,199,126,13,185,206,59,158,156,14,51,156,0,78,101,139,7,108,87,10,49,215,236,118,170,65,239,247,108,207,31,254,190,162,171,60,200,115,
+145,118,189,242,176,219,175,174,56,22,13,215,219,241,193,52,223,179,175,65,117,40,231,141,182,210,177,235,234,109,251,126,39,29,57,197,6,213,72,63,241,48,185,4,15,186,109,152,1,235,247,161,25,227,212,
+118,233,129,64,12,243,20,140,155,141,65,56,227,9,108,163,32,140,156,53,134,122,1,201,239,207,189,6,84,24,197,206,163,249,91,145,143,252,1,61,63,30,135,3,144,106,31,177,131,199,219,102,252,96,140,127,232,
+86,231,4,122,131,234,61,233,167,79,76,31,244,185,179,237,109,1,31,152,141,72,233,216,131,64,19,52,161,122,79,120,127,11,97,207,60,31,248,151,122,99,28,142,231,167,6,47,52,28,143,58,244,156,100,225,34,
+61,59,103,236,105,156,118,60,103,63,128,174,214,75,140,125,174,97,201,28,193,16,207,94,57,98,0,252,61,121,237,76,22,77,159,150,230,76,231,60,67,9,232,7,251,124,231,24,233,192,29,241,64,22,11,140,228,61,
+233,235,247,210,50,115,215,143,244,127,152,142,224,231,191,0,210,51,33,57,13,49,35,4,249,144,71,144,59,116,179,39,215,63,55,66,9,168,77,177,193,30,124,173,245,183,67,142,132,112,103,81,158,51,208,241,
+219,20,195,111,54,112,172,199,129,203,91,64,7,174,127,215,158,121,253,58,80,4,251,65,92,229,198,114,115,246,85,96,122,103,254,93,58,123,129,146,78,51,81,20,143,187,202,78,115,242,218,39,175,253,121,19,
+238,58,228,117,226,161,104,39,206,3,231,191,22,214,236,57,255,0,183,128,65,231,220,3,201,57,206,35,49,92,142,143,49,198,70,4,22,202,59,224,127,199,208,32,3,235,154,0,182,22,48,14,4,195,142,15,246,112,
+110,131,24,63,232,75,199,191,62,220,26,60,224,58,40,108,116,15,167,128,59,13,184,251,34,147,159,229,158,189,168,50,93,15,225,102,250,173,160,252,8,23,133,178,49,236,51,250,183,100,224,100,168,224,116,
+41,7,24,235,140,94,168,233,158,152,231,56,62,160,22,222,73,91,59,98,135,142,237,167,228,228,247,226,216,156,231,145,128,63,60,10,174,205,58,130,12,54,231,28,243,167,184,207,191,22,131,252,244,200,233,
+85,158,101,32,249,108,7,177,234,115,201,200,212,15,175,92,250,15,122,4,179,117,104,179,215,56,144,231,215,159,244,236,251,103,61,78,61,65,0,181,190,97,130,35,181,7,175,252,122,202,135,3,140,16,108,219,
+183,83,140,142,57,226,162,107,139,128,115,229,91,0,56,220,16,130,59,1,255,0,32,178,122,28,13,199,167,225,81,153,137,255,0,150,32,245,4,25,128,254,122,129,246,200,224,84,30,102,121,22,240,227,175,51,128,
+127,47,180,177,252,243,206,113,238,1,99,237,151,64,229,22,44,117,109,163,24,206,122,255,0,196,181,123,240,9,39,159,97,77,125,78,233,64,255,0,86,48,6,67,28,103,7,29,172,151,159,83,215,7,165,85,105,16,117,
+142,33,131,255,0,63,14,127,12,121,223,95,110,167,29,115,15,153,6,73,242,98,207,39,230,158,80,63,3,231,231,167,35,211,183,173,0,95,254,214,188,57,43,28,39,143,249,232,216,233,215,63,98,60,99,35,158,199,
+191,65,27,106,151,39,134,134,212,122,145,114,185,252,25,172,128,4,247,250,116,29,77,95,50,219,188,86,190,217,185,186,108,12,96,244,152,224,253,56,199,191,52,195,53,178,231,49,90,247,233,53,233,198,15,
+187,16,123,122,125,104,2,224,188,145,178,77,180,28,12,156,93,219,140,251,140,218,28,253,0,0,127,52,23,114,242,60,133,94,135,34,230,22,233,192,35,22,68,3,201,234,71,94,61,234,125,166,219,24,9,25,39,61,
+30,235,143,96,25,27,240,199,76,115,158,42,51,44,39,248,87,7,61,229,228,231,213,173,219,250,253,104,2,241,188,144,241,228,145,223,139,152,7,243,182,31,200,142,131,169,205,33,184,151,229,6,57,8,201,255,
+0,151,155,54,199,224,109,198,51,239,199,95,90,206,50,196,59,34,156,227,0,177,60,224,245,251,48,206,50,59,129,142,115,156,212,70,69,36,225,135,126,118,59,99,241,91,22,28,14,228,255,0,74,0,211,51,114,75,
+70,195,60,224,205,104,71,57,254,236,67,0,119,224,228,231,156,84,77,50,129,192,41,145,222,226,223,28,251,8,198,61,122,30,216,21,157,231,97,114,11,30,160,98,43,142,159,81,100,163,39,60,228,14,114,57,233,
+72,37,99,207,206,7,56,30,92,189,143,161,182,4,227,219,175,62,188,0,90,121,51,200,144,30,121,219,113,106,63,83,108,220,254,125,143,82,106,54,39,60,57,233,159,154,226,212,231,215,31,232,139,238,123,147,
+252,160,243,31,160,105,185,206,118,198,248,245,228,155,98,6,58,0,72,250,28,211,75,200,79,223,187,234,58,91,238,28,99,254,157,9,252,65,60,227,167,2,128,31,185,178,54,206,80,243,209,237,27,25,199,25,22,
+195,143,92,115,201,235,138,67,37,194,145,182,241,189,193,22,237,198,0,36,98,205,129,235,245,207,210,161,108,184,230,75,192,57,231,200,35,31,83,246,80,51,235,142,220,96,140,154,97,5,78,60,235,146,115,252,
+113,227,29,72,192,17,167,183,60,12,142,15,65,64,18,153,238,79,252,191,48,25,63,195,108,51,159,251,117,192,255,0,0,69,2,234,97,144,247,135,167,25,88,24,119,198,113,108,122,119,227,156,117,32,115,92,202,
+160,115,44,248,231,36,23,143,243,56,29,61,143,76,231,189,59,205,92,127,174,184,237,199,152,231,24,60,245,110,253,112,49,239,197,0,88,251,81,60,253,179,39,60,147,5,187,103,7,4,130,45,48,72,199,126,61,136,
+193,160,93,190,118,173,251,125,5,189,191,25,192,237,106,14,120,238,54,142,221,113,85,124,228,83,204,238,15,95,154,82,49,142,57,220,192,30,248,57,57,57,234,56,163,207,128,142,110,64,35,7,137,84,96,253,
+90,94,199,167,29,122,112,13,0,94,23,51,28,226,249,142,50,121,181,182,62,195,172,31,153,206,48,121,21,34,220,203,208,202,95,223,236,182,156,103,175,72,84,123,12,128,122,227,189,102,151,137,134,126,218,
+27,184,253,228,100,253,114,101,32,143,66,71,79,65,213,21,208,253,235,180,110,135,5,160,61,15,251,45,159,79,188,114,64,207,20,1,171,246,167,4,230,96,160,14,113,109,108,14,71,184,139,167,97,254,20,11,164,
+81,147,44,142,115,134,2,222,14,189,63,133,65,236,121,199,255,0,91,47,204,131,254,126,33,60,14,172,157,240,49,145,46,7,110,113,158,221,185,97,107,114,127,227,234,49,131,144,68,145,142,248,254,41,7,169,
+236,113,211,32,129,144,13,102,187,133,176,12,82,182,49,201,138,37,25,255,0,190,185,245,201,32,228,117,224,211,69,205,190,9,54,238,71,161,218,1,250,143,60,14,185,236,57,237,208,214,95,155,110,120,251,74,
+183,108,249,214,248,39,177,27,139,126,160,142,196,156,226,154,90,212,115,246,164,94,157,102,180,111,228,159,231,7,52,1,168,110,109,185,255,0,67,112,125,55,39,115,216,27,159,78,153,246,62,213,25,185,128,
+114,45,101,0,122,203,24,235,142,194,240,15,211,143,229,155,186,16,127,227,230,221,148,156,140,188,100,12,14,197,85,115,142,188,14,120,231,56,165,18,66,58,75,27,99,145,182,69,92,250,99,144,127,30,184,201,
+160,13,19,125,108,58,218,200,125,115,60,123,187,99,25,185,32,247,239,143,94,152,166,13,86,196,54,214,180,155,56,254,25,226,29,125,113,115,131,159,168,62,149,68,200,27,238,185,207,180,167,29,250,129,39,
+61,207,57,255,0,4,105,20,15,245,164,30,48,68,142,63,93,254,255,0,211,232,1,160,218,157,166,7,250,61,210,250,98,229,54,241,201,4,253,181,87,61,58,140,243,140,119,168,206,163,106,221,109,174,219,158,72,
+189,64,65,56,255,0,168,136,231,185,28,251,227,60,81,243,135,4,78,220,231,149,154,231,39,233,182,85,3,28,122,1,236,105,158,124,135,165,212,160,103,144,46,174,65,29,8,28,206,219,136,227,211,28,129,201,224,
+3,73,111,173,143,11,109,118,6,120,6,254,50,7,190,63,180,15,124,247,231,128,65,224,80,110,173,115,159,42,229,78,115,147,169,70,48,123,28,125,183,61,243,201,30,163,219,59,237,55,11,210,226,225,129,198,0,
+184,189,97,207,56,226,92,96,99,183,61,113,158,239,23,87,131,39,19,145,215,38,75,227,212,143,250,120,66,125,206,57,228,244,160,11,226,246,212,142,126,209,199,81,253,163,27,31,98,1,189,39,215,140,100,245,
+244,5,22,242,208,144,67,220,168,247,189,140,254,60,220,159,211,62,163,214,179,197,198,160,114,20,92,142,228,36,218,144,206,49,207,23,167,31,167,126,41,62,211,126,189,69,216,28,227,51,223,31,110,173,112,
+70,71,227,212,103,165,0,106,139,203,62,243,79,159,83,125,23,3,25,198,60,222,56,30,156,129,206,50,105,90,234,221,128,219,53,201,244,219,124,163,28,246,253,240,231,240,0,99,167,106,202,251,93,243,2,25,174,
+23,191,204,247,93,185,232,36,39,191,30,156,226,154,211,221,158,76,178,28,243,207,219,248,199,92,225,248,239,220,113,208,122,128,107,7,141,177,182,226,237,122,144,126,223,156,119,32,254,251,3,130,125,7,
+167,106,43,44,79,114,122,179,156,119,50,106,10,56,235,209,206,14,9,25,246,250,209,64,29,83,53,183,117,144,115,216,3,144,57,198,62,200,14,61,127,95,66,121,182,195,24,73,24,3,140,149,140,123,116,54,160,
+241,236,113,244,230,151,108,227,157,218,105,30,159,100,178,221,234,127,229,224,28,96,100,117,36,156,253,88,90,235,44,115,96,49,220,89,197,244,254,11,131,146,49,219,167,111,90,0,110,251,86,7,40,115,223,
+122,33,200,25,237,246,109,195,143,113,159,76,113,76,38,211,28,224,99,213,9,235,238,35,95,200,113,156,158,166,134,184,184,83,243,77,104,114,164,109,91,60,0,71,191,159,156,140,14,121,192,28,99,53,1,185,
+156,55,55,16,103,184,16,16,70,58,15,245,235,140,126,60,242,115,208,128,73,155,65,247,89,61,7,238,95,35,147,198,84,2,114,125,184,252,242,111,139,60,63,176,2,57,114,49,199,76,30,9,232,113,233,200,21,3,92,
+202,114,68,241,241,255,0,76,152,96,156,14,8,156,247,244,28,143,65,72,46,37,57,31,106,76,241,192,137,248,227,158,68,153,57,235,215,243,198,104,2,193,117,199,86,60,112,12,114,118,228,113,128,123,240,58,
+99,175,90,137,229,126,113,235,159,245,115,175,29,115,219,161,61,57,235,235,130,19,207,144,227,125,201,244,194,195,33,3,0,103,147,54,15,62,195,142,0,60,210,9,14,56,145,201,29,254,206,113,220,125,225,58,
+31,199,4,100,142,248,160,8,188,235,133,193,82,252,118,83,34,247,199,241,16,63,153,254,135,159,116,122,73,112,15,39,239,169,199,4,113,150,237,206,63,198,158,205,54,78,26,86,29,72,242,155,156,14,128,125,
+167,160,61,193,4,129,72,89,192,200,243,255,0,224,40,192,140,231,31,242,240,78,50,61,253,232,1,158,117,209,255,0,150,151,56,28,124,164,118,7,210,76,245,29,56,60,99,62,173,105,47,49,242,203,124,51,253,217,
+102,94,190,201,55,25,224,31,207,176,1,229,100,60,239,186,7,25,193,4,0,6,115,214,110,126,191,82,56,198,28,177,59,99,119,158,65,61,78,195,215,146,49,246,131,219,216,113,244,228,2,15,50,253,121,50,223,241,
+147,143,62,239,39,3,182,38,39,57,199,64,79,94,57,52,245,158,255,0,229,203,106,4,12,54,126,209,123,128,122,114,12,152,201,224,227,167,167,113,83,139,115,252,45,47,63,236,2,70,122,240,36,235,199,39,24,227,
+234,41,126,203,32,201,253,225,29,71,238,88,31,110,122,115,254,79,90,0,135,205,188,111,188,183,167,60,159,244,155,149,245,199,86,56,253,58,122,212,128,220,113,242,93,241,220,223,92,115,245,200,39,29,184,
+233,64,135,158,68,221,78,113,12,221,136,227,131,143,124,143,79,124,83,204,125,54,172,231,211,247,19,169,207,224,227,249,126,102,128,28,62,208,122,197,114,112,7,252,191,76,48,121,254,29,153,28,31,161,207,
+177,169,20,93,245,242,102,201,25,230,242,99,198,64,200,4,99,191,96,15,28,212,34,43,140,96,9,198,73,206,99,153,71,3,29,201,192,199,39,250,241,74,34,112,70,231,145,122,114,208,190,125,206,118,231,24,63,
+76,99,211,144,11,30,93,193,193,242,25,128,234,77,205,193,28,244,238,160,103,31,79,95,117,217,54,65,48,28,245,31,233,50,158,51,199,241,114,123,14,6,125,59,212,56,92,143,222,74,79,95,150,41,48,49,211,143,
+47,140,240,125,51,237,154,127,202,14,75,179,19,192,221,12,164,30,56,201,17,231,242,35,244,160,7,237,151,171,91,182,56,224,203,33,254,109,237,216,122,14,0,21,34,179,224,15,179,196,61,63,120,1,60,12,231,
+44,199,156,3,206,56,227,169,20,204,198,70,119,133,231,131,229,75,131,142,51,130,63,60,1,219,240,122,239,63,117,153,135,32,252,146,14,222,155,78,61,126,164,254,0,18,129,35,114,96,132,2,123,114,217,231,
+175,32,119,244,233,207,174,93,229,28,255,0,168,82,72,236,196,96,118,224,55,167,225,138,96,103,94,7,153,236,118,187,100,131,207,12,0,199,30,135,29,62,147,167,152,220,159,53,64,56,39,203,57,206,122,146,
+192,14,78,70,50,1,39,4,138,0,141,163,144,183,203,7,65,206,25,135,35,57,255,0,150,163,7,191,82,105,68,114,140,126,238,81,156,156,228,156,96,117,229,243,142,122,147,211,235,154,178,176,150,35,50,144,113,
+140,5,203,100,100,242,2,146,7,76,246,231,169,197,59,203,140,112,215,32,30,127,129,184,199,78,136,58,251,14,14,125,168,2,182,199,224,31,52,122,229,193,227,241,115,219,243,252,0,165,17,202,113,181,164,3,
+212,177,25,231,168,219,50,147,211,25,0,145,237,86,213,96,207,203,114,227,175,33,88,100,103,175,49,19,248,103,168,230,144,198,73,196,119,77,207,251,249,206,114,79,22,199,166,79,175,92,208,4,107,21,206,
+78,214,152,147,198,22,73,58,119,63,235,193,253,115,201,4,118,169,22,27,238,161,166,207,109,205,39,57,237,143,182,100,3,142,56,28,245,4,14,28,176,73,158,110,115,129,233,38,7,110,166,215,24,199,92,251,118,
+205,56,193,38,112,110,7,24,0,249,79,206,7,4,17,100,249,3,243,35,223,36,128,60,199,125,215,55,3,183,202,243,12,140,142,194,244,96,241,198,79,29,206,41,226,59,220,100,201,118,61,127,121,34,253,1,7,80,32,
+231,161,56,235,81,121,77,183,230,184,3,158,241,75,207,126,51,166,156,15,113,220,99,57,20,225,110,95,24,184,135,3,251,209,182,122,227,24,58,113,199,166,7,126,254,160,18,178,223,1,145,52,195,142,1,153,199,
+83,215,254,63,128,238,62,153,235,205,1,181,0,114,38,147,221,139,76,115,248,11,226,59,96,227,60,243,214,163,22,35,169,185,132,118,63,46,63,158,156,61,125,190,180,198,180,101,56,91,164,35,29,86,57,63,66,
+186,118,7,190,56,62,180,1,100,27,252,243,43,18,78,9,99,116,8,199,253,190,175,64,122,142,79,175,39,47,11,121,193,14,0,207,247,174,185,246,24,190,28,159,241,228,213,85,182,124,159,222,163,15,247,95,4,30,
+192,54,156,59,14,70,9,234,15,53,42,192,249,57,142,51,223,238,50,231,159,81,167,12,118,239,158,189,122,0,11,0,220,228,103,111,7,188,151,99,56,236,115,120,224,224,15,238,145,216,3,138,113,146,228,96,132,
+136,255,0,191,246,131,233,207,250,198,207,65,216,227,168,230,161,88,89,78,68,0,131,253,211,112,73,227,167,26,119,83,234,49,142,156,26,153,98,35,254,88,54,58,96,75,112,48,125,243,98,49,255,0,214,244,160,
+4,15,112,120,49,219,224,18,78,30,112,51,220,227,107,144,121,198,9,228,254,20,224,103,110,139,110,51,128,85,167,124,30,61,12,121,29,70,6,57,31,162,24,92,243,228,73,156,130,63,210,103,4,224,159,238,219,
+12,123,247,207,60,244,164,17,75,156,11,121,207,65,143,62,235,39,61,198,32,4,159,195,211,130,51,144,9,49,46,9,217,100,125,115,113,38,127,244,88,20,15,57,79,221,178,63,236,249,242,99,31,240,40,206,122,250,
+1,249,210,249,19,112,126,205,63,60,255,0,173,188,114,48,122,28,68,190,216,207,63,165,76,177,204,160,126,226,111,98,207,118,49,142,188,152,11,118,63,129,206,123,144,8,119,75,218,59,49,211,36,78,220,129,
+142,159,185,193,227,208,254,124,211,242,228,125,221,60,113,201,51,29,223,92,121,4,147,128,58,131,207,30,149,56,73,143,91,89,8,199,4,139,243,144,120,206,76,56,28,131,211,56,245,231,135,136,220,240,214,
+146,103,159,155,23,68,122,99,253,80,227,215,62,134,128,43,110,144,115,155,28,130,58,59,147,248,254,232,115,244,3,218,141,210,147,146,182,96,140,242,172,122,3,156,242,131,211,7,145,206,121,227,139,6,31,
+91,121,87,29,114,151,103,29,198,120,95,215,250,83,133,184,60,152,155,7,161,48,93,158,184,231,37,128,39,208,224,158,79,90,0,170,36,144,228,159,178,169,207,59,91,29,253,199,60,126,100,243,238,121,236,189,
+94,3,199,35,116,159,150,21,135,79,78,156,125,51,108,218,197,222,44,116,251,214,183,78,6,125,203,99,4,99,190,63,42,96,129,7,64,171,215,31,241,47,157,176,72,57,198,91,161,239,145,215,245,0,174,46,199,92,
+68,122,17,129,49,207,110,66,75,235,220,142,152,201,199,87,139,232,255,0,186,51,237,29,198,7,126,225,135,224,113,215,175,115,107,202,70,224,186,142,57,83,167,144,57,24,234,92,99,174,121,25,231,158,156,
+39,217,226,7,2,84,207,182,152,61,61,75,241,147,237,250,231,32,16,45,250,231,33,81,189,246,73,158,56,25,251,164,116,244,57,207,92,103,50,11,252,242,22,16,1,193,204,115,28,247,57,195,14,221,185,236,123,
+102,164,48,198,48,4,251,176,57,2,193,1,29,192,224,3,142,62,153,198,14,51,152,252,180,227,247,217,97,140,102,197,71,35,168,201,35,28,15,238,231,212,103,154,0,119,219,137,31,114,46,15,1,96,157,142,125,112,
+91,4,123,156,140,1,238,41,223,110,239,142,157,49,12,131,145,198,112,204,221,51,207,97,237,210,152,71,97,34,227,222,213,84,15,196,41,198,61,56,250,122,170,142,185,151,3,35,254,93,192,0,250,130,121,192,
+247,24,232,78,122,80,4,194,249,187,22,237,255,0,44,238,123,113,208,35,3,159,168,30,188,10,65,116,91,146,204,14,121,197,188,224,115,220,230,219,252,246,168,201,32,224,74,223,81,10,142,120,206,57,199,111,
+124,246,224,100,5,219,3,50,49,57,4,134,69,227,174,8,203,129,245,199,78,152,160,9,196,193,198,55,142,59,24,102,94,189,73,2,215,147,200,231,156,243,154,0,140,103,247,144,131,239,28,132,144,115,253,235,34,
+61,61,251,231,154,174,73,60,124,231,233,128,61,120,11,133,28,117,227,215,240,97,42,8,202,185,235,156,191,25,245,3,113,3,29,62,108,1,207,112,40,2,192,10,115,182,88,51,198,120,145,120,244,56,179,199,94,
+192,31,173,30,91,30,124,216,193,232,0,146,113,143,111,248,242,61,190,190,163,190,106,153,23,113,11,12,132,15,82,128,96,103,187,109,201,61,114,9,61,51,233,76,51,70,78,26,213,216,100,146,193,161,36,99,254,
+6,167,243,252,51,64,22,90,54,234,211,47,25,60,188,196,116,227,150,176,63,143,3,161,207,65,72,209,3,131,231,129,142,64,50,182,9,237,215,79,224,253,115,244,207,53,0,146,216,224,27,66,79,98,118,15,212,57,
+63,167,167,224,23,180,255,0,159,73,65,239,251,196,35,240,1,128,28,250,128,120,3,3,169,0,148,198,78,7,218,84,231,214,103,236,114,79,26,121,199,81,206,122,142,153,234,162,60,28,52,240,244,234,211,100,18,
+0,238,108,135,28,159,64,61,249,170,196,192,58,91,63,126,12,138,56,235,193,18,114,125,249,39,158,189,163,221,11,117,181,82,7,114,81,137,199,253,245,233,245,235,232,40,2,233,85,29,39,179,108,244,95,180,
+144,127,17,228,47,76,119,245,62,148,194,72,232,108,142,15,36,220,57,224,244,228,66,71,225,199,160,53,76,249,25,199,216,226,57,61,227,141,136,200,250,103,156,116,235,223,30,174,13,24,206,45,163,29,115,
+251,181,227,240,218,71,39,131,199,92,30,79,64,11,101,159,28,125,148,228,113,139,137,7,97,211,17,145,233,199,205,158,113,218,154,22,67,156,136,178,57,249,103,186,97,143,251,243,129,223,212,117,227,129,
+80,238,29,5,188,56,39,56,10,189,122,156,98,35,250,231,142,167,154,110,70,79,250,60,7,7,171,7,3,158,185,34,0,51,233,245,7,189,0,90,195,18,50,97,32,243,141,215,89,4,100,114,12,67,62,248,24,246,28,130,24,
+216,253,225,15,61,70,110,134,58,103,7,201,201,199,94,58,99,146,72,21,73,135,57,242,109,70,70,121,105,176,61,114,18,31,240,235,199,2,163,59,178,112,150,64,115,140,53,192,231,212,254,224,231,57,232,63,144,
+201,0,190,67,174,54,136,207,29,119,221,144,121,206,56,95,199,174,121,227,25,168,72,147,156,198,172,79,164,151,131,175,3,169,29,251,103,210,170,150,147,24,31,96,94,217,62,121,234,57,235,0,3,25,231,60,140,
+158,167,154,7,152,56,99,101,206,113,242,72,65,237,206,96,39,240,199,190,57,224,2,118,89,79,30,74,143,125,215,71,61,113,201,115,140,243,199,31,133,55,203,148,145,251,172,241,198,62,208,196,116,193,32,177,
+254,67,244,20,192,192,12,131,102,167,216,206,158,157,66,218,143,79,235,143,86,150,147,56,243,109,71,29,141,209,30,199,38,208,245,252,135,229,144,7,149,149,120,217,32,198,115,242,220,15,126,237,198,51,
+223,158,57,237,81,239,145,79,89,151,220,199,57,60,123,141,221,112,51,130,105,165,164,39,253,124,68,224,227,2,229,190,156,253,155,31,215,39,57,53,25,66,78,126,208,51,208,225,111,113,211,253,148,29,251,
+122,243,129,64,19,121,242,14,140,91,60,13,241,144,125,240,172,62,164,246,231,143,102,181,204,128,18,98,36,2,50,86,24,14,126,129,192,61,184,28,126,149,8,141,129,226,229,73,234,73,23,227,232,8,59,70,79,
+81,129,223,0,19,78,243,2,245,186,114,122,112,151,231,13,219,182,14,51,158,0,36,116,57,160,7,11,211,222,22,201,235,155,107,81,142,156,140,48,29,127,19,232,105,198,253,78,221,209,29,160,158,182,241,112,
+61,136,113,249,122,246,20,166,98,71,19,74,112,49,144,151,216,207,228,61,248,4,3,207,62,137,231,204,192,5,154,81,159,68,187,82,15,94,9,145,79,61,125,115,198,104,2,65,168,64,1,3,29,186,219,199,193,199,252,
+11,232,115,147,208,211,134,163,15,247,87,29,14,98,64,123,103,164,103,235,147,223,244,135,123,144,1,154,228,18,113,141,247,61,122,227,253,102,127,30,153,227,52,133,166,3,34,73,192,60,28,121,236,61,142,
+90,227,56,239,238,113,244,160,11,34,250,219,25,219,140,30,78,211,143,166,68,95,175,20,191,111,181,60,31,40,115,156,54,229,252,176,139,237,142,195,144,51,131,85,22,105,6,65,150,126,249,202,128,49,239,190,
+231,39,241,31,64,64,169,86,118,199,203,36,156,127,14,228,31,95,249,110,70,121,207,81,140,245,205,0,88,251,85,145,31,114,22,245,196,142,51,147,147,206,70,127,76,19,199,67,74,183,54,24,25,134,44,117,207,
+159,41,220,127,239,188,119,244,31,173,87,251,83,39,12,248,233,247,164,136,117,192,0,102,98,121,206,114,122,246,201,197,59,237,143,130,2,177,255,0,117,160,227,30,249,35,184,252,249,193,197,0,88,55,86,31,
+243,206,48,190,159,105,145,71,4,243,196,163,183,29,121,228,242,121,164,55,90,112,254,8,58,245,55,147,143,204,249,251,79,115,144,49,199,3,189,69,246,169,27,56,86,245,57,146,215,57,206,56,24,25,252,59,125,
+104,243,167,227,248,113,207,50,91,99,29,57,193,199,78,113,156,241,248,128,11,11,62,156,112,118,219,227,254,191,231,235,158,114,77,207,79,192,129,143,114,41,198,107,35,202,197,106,125,190,222,195,215,31,
+242,244,63,150,15,212,98,170,153,102,56,220,195,211,33,224,39,142,7,240,146,7,124,14,217,246,52,253,242,99,33,129,199,56,218,132,159,252,112,15,192,103,131,192,227,20,1,96,77,105,141,222,93,144,7,158,
+111,137,29,112,79,23,157,120,35,4,30,199,129,205,59,205,180,35,165,142,79,3,55,106,113,208,99,38,231,219,161,57,24,233,138,172,38,184,234,2,156,3,192,68,81,215,215,4,243,198,120,200,234,59,212,158,109,
+208,255,0,150,104,113,156,140,48,250,224,172,77,140,240,7,175,115,211,32,18,134,182,39,129,103,147,206,18,230,44,250,243,254,144,231,28,140,242,71,175,74,112,17,159,186,214,202,15,76,206,135,211,159,191,
+129,215,211,24,28,146,42,186,203,114,71,250,152,192,236,60,201,178,114,58,113,24,31,144,61,135,60,10,153,90,97,193,129,73,60,240,242,156,125,51,24,60,116,57,62,244,1,56,3,28,75,106,71,66,22,88,78,56,238,
+25,199,39,235,145,215,28,240,21,25,4,205,106,61,139,65,142,221,132,189,253,186,12,116,239,19,27,130,70,96,3,143,186,69,201,61,51,158,56,255,0,235,103,175,20,162,57,143,252,178,66,79,65,229,93,183,234,
+173,199,174,7,215,189,0,76,23,60,137,173,70,51,211,127,79,109,135,105,239,146,15,224,41,10,72,1,204,246,254,191,40,155,191,39,238,238,227,216,129,212,140,102,163,17,72,6,30,223,61,56,242,111,78,123,156,
+130,167,219,130,122,103,184,165,242,220,255,0,203,176,28,246,134,240,30,125,252,179,129,248,255,0,74,0,147,200,118,228,205,30,120,233,29,201,7,183,101,235,211,60,113,248,98,151,236,142,8,196,145,250,28,
+67,123,212,122,254,225,129,245,32,112,48,57,60,210,236,151,181,154,15,66,98,189,62,253,147,35,175,95,110,244,253,178,96,15,34,53,60,103,43,127,144,125,48,109,156,119,235,235,146,14,122,128,55,236,174,
+163,119,202,78,49,254,166,240,125,49,254,139,233,255,0,234,192,164,49,72,115,133,76,14,121,183,191,207,208,230,215,4,28,241,201,39,29,41,194,9,27,172,97,179,131,242,165,241,231,175,70,133,125,248,227,
+219,156,138,149,109,38,28,172,50,156,131,199,216,239,95,156,243,203,68,71,78,1,228,14,48,120,224,2,190,199,29,99,132,142,6,62,201,123,232,56,39,236,221,243,207,203,248,138,86,86,35,34,24,151,32,12,46,
+157,122,253,251,226,203,147,199,56,39,234,122,84,134,218,224,127,203,6,94,160,150,177,186,252,57,16,131,237,140,117,29,232,22,215,7,172,91,177,129,255,0,30,87,74,122,250,180,32,14,185,224,131,233,205,
+0,66,177,204,79,17,71,131,198,127,178,175,253,71,111,176,159,110,199,166,122,103,14,251,36,207,201,133,9,28,224,105,119,124,228,127,183,96,58,112,49,140,12,251,84,235,5,215,240,162,130,120,193,130,113,
+140,30,121,242,240,8,239,220,224,129,145,214,65,13,247,3,128,58,224,69,49,193,28,96,101,7,113,143,78,222,180,1,92,89,55,86,182,140,156,117,254,203,156,30,119,12,127,200,63,145,219,167,82,58,82,27,54,86,
+31,232,113,240,78,8,210,219,56,231,171,53,128,198,127,63,206,172,139,107,222,56,35,183,17,201,248,130,21,179,142,79,92,15,166,105,198,210,228,142,74,169,192,235,20,195,215,156,249,128,103,160,224,115,
+212,243,212,2,176,182,108,140,192,23,29,191,179,184,29,242,127,208,151,223,143,215,189,33,128,96,229,81,121,63,118,195,7,4,117,255,0,143,113,193,192,233,211,131,214,172,27,105,241,201,67,207,120,153,248,
+200,201,3,205,4,129,232,6,122,123,210,27,121,87,63,234,177,129,157,214,173,142,160,100,31,49,176,64,39,244,252,0,43,139,108,146,75,62,222,188,90,32,39,7,166,118,116,31,227,82,152,48,170,202,37,96,57,39,
+201,198,7,4,31,186,70,49,158,51,193,231,0,84,129,36,24,4,217,224,99,150,130,69,31,250,31,227,215,35,190,58,135,5,108,130,102,179,207,167,151,57,0,114,49,187,206,227,177,3,111,111,200,2,1,27,14,211,254,
+17,198,51,212,146,126,120,250,115,208,19,249,211,130,199,221,88,240,51,185,227,143,36,231,214,66,125,58,116,62,149,103,228,25,253,237,161,224,28,4,155,39,175,79,222,28,100,142,131,159,94,180,22,143,7,
+45,7,161,196,51,147,248,157,217,252,121,24,207,39,38,128,35,95,41,66,145,22,72,206,73,185,65,201,228,12,52,184,28,241,208,158,51,156,230,134,124,146,66,140,247,43,117,16,62,156,225,243,198,58,103,7,189,
+38,251,113,157,205,14,63,235,133,201,236,58,159,175,99,198,59,231,38,153,190,223,144,37,135,7,254,153,206,56,28,103,255,0,174,122,122,138,0,81,156,17,142,79,115,113,16,245,4,146,37,245,228,99,235,207,
+20,210,27,39,133,227,63,242,223,156,242,122,249,249,206,73,252,125,177,79,47,15,27,103,131,175,0,70,255,0,94,126,98,79,215,4,142,135,61,41,26,84,28,121,145,243,208,172,50,19,159,110,50,125,143,0,244,4,
+117,160,8,217,102,108,145,156,99,39,18,187,40,25,199,85,149,179,142,56,57,250,118,166,132,155,145,179,167,29,100,28,242,79,67,215,131,156,96,147,215,24,52,242,232,49,251,236,140,113,251,169,23,234,49,
+188,28,156,158,188,115,215,168,166,180,139,218,92,19,142,4,76,64,4,100,114,88,158,61,198,56,20,0,195,20,252,100,96,99,168,105,240,6,121,254,44,0,63,153,192,6,131,4,132,2,16,17,234,94,108,19,200,224,131,
+129,201,198,54,145,211,30,148,211,34,255,0,125,137,236,124,183,192,61,79,56,249,79,3,3,159,174,58,87,46,199,128,238,121,60,136,183,17,156,247,28,241,223,216,224,14,104,2,193,179,156,224,236,64,58,253,
+249,91,128,63,186,65,231,234,62,167,25,53,3,217,202,185,202,1,200,36,236,149,177,234,6,84,99,57,198,120,207,110,49,73,182,78,91,205,97,156,227,49,16,113,142,61,127,47,215,140,210,140,227,31,105,193,29,
+1,70,239,193,24,17,31,110,227,167,124,208,4,70,219,105,229,115,239,229,202,57,238,51,185,88,127,144,56,166,249,9,208,170,224,131,213,37,238,125,76,159,94,228,115,83,133,110,247,32,30,127,229,156,167,25,
+233,130,45,143,110,184,253,72,24,105,9,209,238,34,231,140,24,229,207,24,206,115,100,192,143,242,121,205,0,87,242,162,255,0,158,104,122,243,131,207,29,72,37,143,94,65,207,235,209,60,171,82,126,107,104,
+220,244,60,194,188,241,206,31,191,95,74,148,253,152,245,184,132,54,7,88,137,207,161,199,216,65,60,117,233,211,215,171,73,183,94,60,232,79,166,35,112,123,96,241,100,15,190,58,142,230,128,20,67,99,140,125,
+157,0,193,24,255,0,69,61,127,224,88,238,122,212,70,222,199,181,188,120,228,103,22,30,227,161,0,16,113,129,159,168,199,90,67,36,0,145,230,33,255,0,128,178,254,32,253,132,144,120,7,238,159,207,6,152,223,
+101,60,238,66,15,7,113,147,4,159,173,134,48,70,6,48,63,51,64,13,48,89,12,126,238,52,235,208,105,199,240,224,240,122,245,235,222,155,182,196,14,48,79,7,1,44,15,94,252,125,64,250,159,126,67,246,34,57,107,
+113,208,144,75,41,3,215,139,3,159,94,72,24,63,157,119,125,41,73,220,246,185,30,140,199,175,108,155,17,130,51,211,167,94,122,100,2,98,214,40,8,18,5,56,60,150,176,24,199,92,2,72,224,147,212,142,252,102,
+160,50,90,12,149,156,3,140,146,173,96,11,3,147,201,202,158,63,1,207,39,173,87,119,211,14,127,227,216,142,217,60,103,158,121,181,81,129,245,56,32,142,131,136,136,210,201,251,214,128,143,250,107,16,3,7,
+253,196,231,240,206,65,160,11,12,208,144,0,152,145,235,191,78,231,60,247,13,156,247,238,115,207,180,12,177,128,51,112,120,255,0,111,79,200,25,232,127,116,51,223,158,121,205,68,255,0,217,216,32,73,109,
+145,211,108,240,156,231,185,201,4,17,142,153,3,212,243,85,216,217,169,31,188,139,32,159,149,102,80,8,207,35,229,151,143,76,30,223,168,5,151,88,206,0,187,250,159,58,200,125,1,43,1,56,30,131,61,7,83,129,
+85,89,129,27,86,236,28,118,55,54,131,190,123,91,131,158,120,39,158,199,161,164,221,100,71,205,228,224,242,115,116,153,207,66,57,152,144,121,3,7,61,186,243,81,48,176,61,30,30,153,226,225,58,19,192,200,
+145,189,51,147,215,29,187,128,63,46,171,255,0,31,42,57,207,23,169,131,255,0,1,72,112,121,30,132,118,56,20,155,88,145,251,248,216,28,244,186,36,15,92,129,22,64,231,166,57,254,30,181,14,203,65,207,154,152,
+244,19,219,231,142,128,126,240,16,63,1,233,235,134,31,178,246,151,175,164,209,17,142,58,145,33,198,126,188,31,81,140,128,88,216,192,144,30,18,125,238,159,32,103,254,189,27,142,115,223,35,60,142,13,70,
+194,94,139,36,39,156,12,222,56,60,131,198,69,137,200,236,121,170,249,131,160,149,200,56,224,79,18,227,240,200,234,121,234,105,132,71,201,50,203,236,191,104,67,147,232,48,64,61,59,231,130,79,208,2,124,
+77,183,172,93,121,255,0,78,184,231,219,43,103,199,29,125,179,206,51,77,195,243,151,133,121,206,90,242,235,61,186,17,105,140,0,59,146,127,173,54,49,122,206,71,169,153,72,239,208,128,71,65,159,167,60,246,
+137,153,27,133,243,136,29,140,131,111,110,251,9,30,248,252,120,160,11,237,144,70,100,137,128,238,47,110,215,158,122,230,215,167,174,9,4,113,143,84,222,67,96,24,187,100,139,203,150,32,19,223,22,195,211,
+212,116,34,179,75,103,168,151,177,193,157,8,57,246,48,244,250,159,175,29,97,144,183,85,71,246,196,144,140,227,208,253,152,158,190,167,190,78,40,3,77,157,192,206,228,0,112,127,210,46,122,116,206,4,12,120,
+207,82,56,25,3,218,179,92,145,195,56,30,163,204,187,61,57,255,0,159,38,24,233,147,159,124,113,89,197,174,15,30,91,145,232,101,128,1,223,189,161,7,240,228,227,191,20,155,36,3,34,36,207,28,121,177,228,17,
+143,238,217,30,125,62,167,158,40,2,227,92,28,100,110,39,25,39,206,155,24,237,193,211,201,236,127,60,243,131,80,25,101,36,227,144,123,121,242,231,29,136,221,100,167,233,199,113,129,147,85,140,50,185,36,
+192,50,120,36,74,160,241,234,69,144,231,183,39,211,28,210,125,154,127,225,182,98,51,206,39,46,70,122,224,11,112,59,142,217,28,117,0,10,0,149,140,135,144,95,215,155,130,121,199,253,122,169,239,128,49,193,
+228,10,141,145,152,242,100,24,25,63,190,42,185,61,243,246,98,57,244,231,128,114,15,20,134,11,144,78,235,73,79,126,1,57,192,24,193,16,119,199,25,239,158,157,67,214,43,129,140,89,191,3,184,3,29,192,3,201,
+199,94,216,32,117,200,238,0,205,132,3,159,49,176,58,253,177,151,62,128,15,176,54,73,238,65,206,120,197,40,141,177,144,151,3,60,3,246,217,0,245,28,11,21,246,228,156,119,25,167,24,230,4,110,176,115,143,
+226,202,246,247,242,142,73,199,92,231,62,188,83,49,38,57,177,156,122,5,68,35,245,69,160,0,164,189,197,207,92,241,121,39,126,191,242,231,249,241,220,247,234,130,57,65,32,45,209,233,210,253,198,115,216,
+19,98,115,248,18,1,192,198,41,66,220,244,22,183,74,9,233,182,37,24,207,60,101,112,113,223,168,200,193,52,223,38,83,214,41,129,36,176,220,34,200,7,191,36,140,250,243,129,237,154,0,119,147,55,31,186,188,
+60,127,208,67,176,235,156,192,156,254,89,199,83,214,143,34,232,127,203,11,188,30,230,232,158,216,206,86,60,113,248,158,59,138,140,137,144,242,151,100,14,129,99,139,4,254,46,120,233,192,192,227,24,230,
+154,204,228,156,71,113,156,115,186,8,114,112,7,251,88,29,51,156,103,25,29,48,40,2,109,146,128,127,209,174,115,221,190,211,32,57,63,221,204,121,62,157,253,199,92,196,201,54,1,107,107,134,28,255,0,203,105,
+152,243,235,136,135,63,159,108,251,192,210,191,120,216,0,63,138,40,125,120,60,159,242,50,51,138,174,215,14,164,237,88,219,61,11,197,0,3,167,66,74,158,248,60,208,6,136,50,12,98,210,233,137,231,2,89,200,
+246,228,198,71,29,251,31,94,132,133,174,136,249,108,46,79,174,67,149,3,56,234,84,114,15,92,128,70,56,235,88,237,117,40,39,119,146,0,244,138,2,113,129,145,213,176,79,215,167,229,81,27,198,13,254,177,65,
+25,233,107,25,3,3,209,84,147,129,200,29,187,115,197,0,108,22,185,10,127,208,101,24,245,69,200,30,249,78,79,126,78,113,199,166,35,221,121,201,22,77,223,159,45,8,29,249,56,29,49,235,207,3,24,205,101,253,
+187,36,230,64,113,255,0,78,25,244,238,17,189,250,103,223,181,31,111,141,120,56,124,241,205,140,221,191,237,137,29,79,97,147,131,216,10,0,210,105,46,199,252,184,144,122,231,201,24,192,244,24,7,183,94,189,
+122,83,76,183,121,63,232,99,29,131,91,170,128,61,62,96,78,58,242,72,29,176,57,172,191,237,40,9,230,37,57,227,254,60,37,39,61,48,49,106,121,39,167,204,120,239,71,219,237,143,91,124,99,28,155,75,128,71,
+24,233,246,117,235,207,57,25,231,233,64,26,162,91,145,203,218,198,190,164,71,16,227,215,44,132,116,224,19,142,157,1,52,27,169,1,0,70,171,199,102,181,78,115,219,17,126,60,116,232,73,235,89,31,108,135,35,
+108,43,142,227,236,147,169,235,235,229,244,231,60,244,237,215,52,27,232,178,50,135,25,227,22,231,35,211,150,78,73,253,125,40,3,112,94,200,48,51,142,153,30,101,185,254,104,164,30,156,156,253,41,30,241,
+142,75,17,199,79,222,91,131,199,29,74,0,15,25,232,127,199,16,93,196,115,254,143,49,31,222,16,168,99,159,76,40,110,125,64,29,179,205,74,46,160,35,31,100,187,99,130,114,99,85,10,115,192,201,139,61,189,78,
+121,193,233,64,26,102,249,1,229,156,116,25,251,69,190,61,127,231,153,29,191,30,115,200,20,225,127,6,9,243,36,35,156,126,250,62,125,137,17,156,140,227,175,124,115,89,171,51,100,236,177,157,134,8,7,122,
+15,253,10,51,156,126,121,238,113,82,9,165,227,254,37,83,19,208,230,120,1,227,208,121,71,31,92,228,99,165,0,105,141,70,29,184,223,46,120,198,211,25,29,58,103,202,4,247,232,219,120,252,105,69,244,7,56,121,
+254,140,80,253,70,10,254,121,200,235,207,97,150,37,126,167,76,149,70,112,73,185,183,198,72,57,60,196,126,189,73,199,56,207,69,30,102,62,91,50,15,39,63,104,128,158,71,3,30,88,0,246,201,39,29,189,128,53,
+133,220,4,158,102,244,25,49,1,255,0,162,114,115,235,216,250,241,69,101,7,185,206,62,203,199,29,101,143,131,142,58,70,113,216,244,39,158,70,104,160,15,82,44,160,156,206,135,28,130,38,62,152,199,97,215,
+4,224,2,7,35,214,163,103,82,73,243,131,127,219,194,19,140,14,0,51,238,28,103,25,198,14,6,5,83,55,3,119,2,204,122,144,209,140,227,232,169,249,245,239,159,69,55,67,28,189,168,193,63,114,85,207,110,219,187,
+30,58,114,79,35,7,128,11,57,39,149,119,192,236,210,198,123,140,129,251,236,254,67,142,79,173,68,88,41,193,71,35,36,238,18,250,123,9,136,32,156,99,131,250,241,7,219,66,245,145,0,234,79,152,139,192,233,
+142,125,125,125,104,23,187,185,23,17,14,192,57,12,0,30,135,127,60,243,206,113,199,61,40,1,236,99,236,147,19,129,147,146,127,244,23,57,28,117,227,160,252,88,80,17,194,75,212,240,31,3,61,184,50,30,222,131,
+175,160,168,205,215,205,134,185,181,0,156,253,212,12,122,244,253,225,207,80,78,125,15,122,97,153,15,63,106,135,144,48,192,194,15,183,252,181,207,97,207,231,222,128,36,218,227,147,4,248,7,25,243,50,15,
+110,73,113,237,142,105,119,224,115,111,39,168,203,227,183,29,24,159,215,3,142,65,36,84,94,116,64,228,221,166,78,71,200,144,63,168,231,14,73,245,227,24,231,216,83,150,75,118,201,55,100,231,156,45,172,39,
+159,76,229,114,121,227,252,9,160,0,203,31,79,42,78,113,144,10,28,142,152,207,155,159,175,64,58,113,205,39,157,16,251,176,74,125,112,200,61,115,201,147,229,61,56,227,142,57,53,47,155,106,57,243,231,60,
+245,251,28,89,35,24,234,27,57,25,245,39,249,16,188,61,68,183,5,71,82,214,227,147,219,163,145,236,114,7,110,189,192,35,51,160,27,141,181,193,250,178,28,112,56,4,183,94,196,110,192,239,236,239,181,1,159,
+244,89,241,232,72,0,115,158,48,24,144,122,16,50,49,70,99,234,178,72,8,57,201,179,118,199,168,37,65,231,29,127,78,212,225,36,121,193,148,0,113,214,210,97,219,169,0,47,61,123,127,58,0,99,92,14,158,84,201,
+159,80,174,1,232,7,204,1,250,241,199,215,171,62,212,189,54,74,49,208,133,132,17,156,244,206,61,125,63,76,10,148,201,16,201,223,17,224,129,254,139,50,156,125,113,143,207,56,206,106,48,241,231,239,125,127,
+209,229,63,81,141,235,131,207,57,235,140,80,2,27,192,152,249,230,31,81,14,48,115,217,79,25,235,130,71,189,31,110,70,225,101,147,39,208,219,0,112,112,79,51,116,207,25,192,3,218,151,205,132,30,83,61,178,
+96,151,167,185,89,14,121,244,253,115,78,251,66,17,143,41,79,61,210,233,122,255,0,187,114,188,253,7,110,120,24,0,8,39,119,232,207,142,223,189,179,63,67,204,131,146,58,113,237,234,105,193,229,63,119,204,
+228,245,18,90,118,61,50,37,224,116,207,63,143,53,32,158,49,210,56,134,65,224,155,174,163,215,55,39,112,0,159,203,57,245,12,232,122,11,117,200,198,12,179,2,51,255,0,111,99,31,143,56,234,104,1,161,174,119,
+101,89,212,112,14,94,212,251,117,105,71,234,79,62,157,105,228,207,159,245,232,14,49,243,27,94,9,227,175,154,61,142,1,57,237,233,74,39,64,70,100,132,12,103,2,73,152,174,113,206,239,60,159,78,57,30,249,
+205,59,237,112,12,131,33,61,9,219,44,131,167,124,153,177,234,6,120,235,200,231,32,17,50,78,223,242,249,18,242,70,15,217,241,223,166,36,228,245,228,30,156,242,122,160,134,224,116,189,139,56,207,15,18,145,
+249,76,51,223,140,12,243,140,102,167,251,93,153,110,164,147,158,179,33,206,62,179,156,19,244,3,158,15,52,191,107,181,81,200,111,194,88,191,31,249,108,58,250,145,199,165,0,70,109,238,155,254,95,163,24,
+28,230,117,224,251,1,41,237,129,235,140,243,140,101,86,210,126,166,242,55,39,210,225,84,156,241,253,240,79,60,117,198,120,30,243,11,235,16,48,68,205,223,137,160,228,119,228,150,201,30,156,30,180,191,109,
+176,57,218,179,142,78,15,159,108,14,125,78,83,241,32,243,156,224,224,129,64,17,253,142,117,27,188,254,189,74,221,48,252,48,187,142,113,199,168,198,121,160,66,235,130,215,65,121,31,242,241,57,207,185,33,
+79,39,234,14,71,81,205,77,246,173,56,158,5,231,126,81,236,207,175,63,52,12,114,56,36,19,235,216,10,62,209,167,100,96,106,4,243,193,251,15,94,64,231,236,163,255,0,174,15,7,154,0,96,68,199,252,126,41,60,
+127,203,197,192,60,159,100,62,220,227,28,143,90,122,164,96,243,115,31,57,63,241,243,42,158,153,239,1,233,215,144,113,200,235,147,78,23,118,35,143,46,253,135,124,199,104,216,57,35,140,219,31,161,247,244,
+21,42,221,233,188,3,13,249,227,140,67,100,49,143,164,3,60,247,57,227,175,160,0,131,98,115,139,132,60,156,226,238,110,249,35,145,110,160,147,199,35,142,156,117,167,174,87,59,102,4,17,147,139,183,36,224,
+250,180,3,61,79,114,106,200,184,211,79,72,47,56,207,252,178,181,239,238,35,193,3,253,211,159,195,53,34,207,101,252,16,93,131,220,249,22,167,39,61,207,147,199,92,12,109,235,220,228,208,4,33,163,28,179,
+169,61,127,215,22,60,250,230,216,231,216,112,71,83,142,42,85,48,255,0,178,199,29,200,36,255,0,223,86,95,79,226,207,94,61,102,23,16,30,60,155,226,48,57,242,33,29,135,82,33,63,150,49,156,125,105,194,104,
+91,31,232,247,196,1,193,104,45,143,254,211,92,126,63,76,80,3,22,88,84,28,197,30,7,25,243,0,39,61,72,197,160,193,199,249,52,245,150,212,100,149,132,117,57,7,39,145,129,156,217,140,114,112,78,72,193,39,
+138,148,73,16,251,182,247,99,39,7,109,181,178,158,57,193,249,64,227,156,116,39,189,57,100,218,78,200,46,58,231,231,130,201,121,238,56,117,61,59,227,144,51,159,64,1,90,192,224,31,43,156,31,225,199,60,244,
+242,14,8,207,79,168,245,20,239,244,67,144,22,19,199,114,152,227,158,159,103,28,122,147,140,122,240,50,245,157,142,0,181,60,112,73,142,219,215,159,187,56,24,234,71,99,140,227,60,84,130,73,91,254,88,99,
+175,72,45,50,7,99,205,199,255,0,171,191,184,4,1,44,243,128,45,72,61,1,40,78,61,255,0,118,167,219,0,122,113,201,169,86,43,76,19,229,90,241,156,227,104,198,49,212,108,231,175,248,17,147,151,153,39,28,44,
+114,142,127,231,133,161,232,123,230,224,140,224,117,25,25,198,7,83,70,251,198,39,253,30,67,199,4,195,104,63,30,36,32,119,227,215,241,20,0,8,236,91,25,134,220,118,200,17,227,25,199,63,185,56,199,161,4,
+103,191,98,240,150,35,238,199,109,193,199,202,241,140,17,237,246,100,207,95,95,232,41,159,233,205,255,0,44,100,81,158,162,43,85,24,244,230,81,130,121,193,0,113,238,51,64,75,147,214,41,179,211,62,92,28,
+14,51,255,0,45,121,233,199,7,218,128,38,2,207,57,9,2,240,48,124,200,65,36,244,249,188,159,79,78,255,0,83,78,6,211,56,111,36,115,192,50,194,65,207,28,19,14,115,158,163,215,215,53,30,203,142,234,254,197,
+146,48,115,208,227,18,140,3,198,63,94,230,148,11,133,199,239,89,7,29,85,120,25,193,227,205,227,244,237,215,20,1,40,54,253,20,198,1,7,133,104,185,193,247,141,65,247,235,143,76,242,15,220,247,242,79,113,
+147,3,16,125,127,212,245,30,153,235,199,189,69,190,224,103,50,142,56,225,1,193,233,252,59,135,124,99,190,105,67,205,156,44,164,115,143,154,223,216,227,239,70,64,239,192,60,251,112,64,2,230,54,99,243,195,
+248,172,100,244,244,17,241,233,211,223,140,114,245,96,51,181,227,61,0,196,112,182,49,158,57,143,223,28,228,131,215,217,171,44,221,11,179,250,98,5,7,241,2,28,123,247,228,244,197,56,201,63,96,72,227,143,
+33,177,223,184,132,100,143,111,166,104,1,251,156,12,137,83,25,239,12,24,231,185,5,64,227,183,0,19,138,118,103,56,196,168,59,113,107,109,140,126,96,103,252,143,104,132,147,158,8,101,198,8,253,203,99,158,
+71,13,31,25,207,92,126,125,144,75,32,228,144,64,56,255,0,82,199,212,159,186,163,56,235,192,56,3,28,14,160,18,19,114,65,2,68,61,112,69,173,183,36,159,114,220,3,199,29,176,7,25,203,12,55,188,149,41,142,
+159,53,188,25,3,3,174,221,184,250,103,60,210,253,162,108,16,170,173,140,145,152,88,126,35,42,27,223,169,193,227,61,104,243,230,111,155,10,48,49,145,1,111,208,242,57,231,140,245,30,156,0,52,91,95,156,254,
+242,32,72,239,111,23,36,113,213,95,242,32,250,247,21,32,178,212,187,249,76,8,39,30,92,89,35,176,31,188,102,252,129,252,9,20,225,246,135,31,50,150,201,32,98,210,50,79,78,153,66,71,161,233,199,76,113,78,
+91,107,134,201,16,203,233,197,146,19,234,79,220,224,14,125,129,237,193,160,8,190,203,168,14,130,48,1,224,8,87,129,212,18,87,130,8,56,56,235,212,116,197,60,89,234,71,7,110,236,240,74,194,65,199,255,0,95,
+215,129,192,198,58,83,205,180,160,127,171,151,63,245,233,24,36,126,33,113,233,220,240,72,230,144,193,55,79,46,235,62,162,5,67,219,177,108,17,142,196,231,175,74,0,67,101,168,242,4,7,167,124,38,115,234,
+122,113,239,140,147,193,166,125,150,249,126,252,47,206,127,229,160,39,35,208,121,79,156,242,120,255,0,235,83,76,114,131,201,187,25,235,242,193,142,61,65,144,116,255,0,19,218,147,203,207,38,91,160,71,32,
+98,223,183,176,148,245,236,113,244,57,160,5,251,37,202,130,76,111,255,0,127,36,218,57,233,149,183,56,233,193,56,24,224,226,148,91,92,55,62,89,0,16,51,231,203,145,233,159,244,101,28,241,140,100,246,250,
+183,99,114,60,203,236,113,247,99,182,35,61,65,249,164,61,177,158,157,112,105,68,82,19,130,247,216,198,115,228,192,221,125,113,40,62,188,146,122,116,233,64,18,8,39,81,150,14,188,127,207,70,39,4,112,65,
+48,100,116,60,159,126,40,242,103,95,155,18,182,114,127,215,0,121,39,254,157,207,208,227,145,207,167,45,49,179,1,182,75,242,122,28,219,219,240,51,219,247,235,142,223,78,180,198,142,69,3,155,227,159,250,
+103,0,29,184,226,98,65,235,212,0,61,77,0,72,76,248,219,251,212,57,28,137,67,30,190,214,195,147,207,124,240,125,121,102,110,185,11,36,167,32,241,184,99,143,173,184,3,131,233,223,57,168,243,50,228,55,219,
+8,255,0,182,0,244,235,159,60,112,61,137,235,145,158,133,133,166,31,112,94,99,161,249,237,84,116,233,159,182,15,64,114,70,112,104,1,204,111,114,49,230,246,254,56,176,63,224,63,100,36,241,239,219,156,212,
+101,239,63,219,81,234,22,54,206,56,232,182,4,146,113,234,72,160,155,134,249,74,221,158,224,153,109,91,31,135,219,59,12,1,193,60,122,14,65,28,223,196,179,158,224,21,133,177,219,39,19,28,114,1,61,125,70,
+6,40,0,243,46,72,198,233,128,236,69,187,47,176,25,93,60,228,126,189,249,207,17,180,151,160,96,249,132,55,127,37,178,51,211,57,179,92,116,193,237,130,79,53,47,151,39,85,134,94,1,224,195,17,250,19,150,35,
+235,248,96,240,41,66,76,70,76,82,3,142,233,26,227,219,1,72,24,244,200,233,248,144,8,188,203,161,140,253,163,144,62,236,42,127,85,179,238,73,198,121,61,112,113,130,239,180,76,48,24,92,28,15,187,229,202,
+62,184,11,108,6,127,253,92,129,64,73,9,229,73,192,28,147,6,15,230,185,255,0,3,215,210,149,162,126,71,147,235,203,61,191,62,216,48,224,246,30,152,224,154,0,62,211,180,115,28,131,166,63,119,49,63,250,79,
+249,224,15,240,103,156,9,45,229,200,59,140,64,113,233,206,45,254,188,227,29,122,83,196,109,144,62,206,152,235,193,181,199,36,103,238,219,146,57,199,92,246,235,214,131,25,201,197,164,77,254,240,183,36,
+244,198,91,200,32,96,117,224,241,211,220,2,63,180,99,35,202,126,51,147,229,237,201,252,109,215,28,103,158,125,249,192,163,207,143,248,146,85,245,249,134,1,57,207,27,87,28,113,200,36,14,157,193,126,217,
+137,255,0,143,40,8,7,60,170,156,241,215,139,98,185,236,115,219,241,204,203,22,120,107,40,7,214,24,135,161,234,109,143,65,223,62,252,224,208,5,99,119,108,57,2,67,211,254,90,142,122,227,128,70,58,113,208,
+125,49,71,218,237,112,9,73,57,238,100,7,147,215,164,131,63,78,49,131,222,173,109,139,254,125,160,200,227,27,97,80,14,14,122,192,184,224,103,142,57,164,242,85,243,136,45,125,112,101,181,94,56,234,74,96,
+227,129,131,211,176,24,160,10,127,108,179,4,22,103,92,241,157,196,41,252,230,31,134,122,240,50,77,72,47,108,143,89,95,167,247,250,245,207,62,103,39,35,177,56,207,39,24,169,141,162,28,126,230,200,19,128,
+79,218,45,9,250,242,158,131,177,253,50,41,130,198,18,9,17,217,134,199,24,150,204,31,115,254,172,255,0,143,60,80,4,15,121,107,142,30,66,7,56,5,24,159,206,96,113,215,35,36,129,238,1,168,254,215,8,56,71,
+148,231,62,216,31,83,112,121,231,158,70,51,154,152,233,241,231,133,182,83,158,72,150,203,62,153,232,56,35,28,14,125,113,217,6,158,189,156,40,237,178,230,208,115,211,157,185,35,215,147,142,79,226,0,195,
+121,8,200,105,101,4,142,207,48,30,249,43,115,130,125,113,193,39,166,41,159,105,181,108,110,146,98,58,255,0,203,86,201,206,70,79,152,115,143,127,229,145,86,147,79,201,35,207,144,142,70,5,213,170,227,57,
+35,39,159,229,199,227,82,13,56,12,19,113,33,227,248,175,45,186,116,199,60,125,61,207,28,226,128,41,121,214,127,195,46,79,163,68,237,236,71,45,200,206,121,224,231,173,56,79,1,224,52,120,236,198,1,158,58,
+245,30,224,117,31,141,92,54,11,158,39,144,247,199,219,109,137,231,146,56,192,245,200,0,100,112,71,106,112,179,147,0,172,140,222,164,222,91,240,7,124,171,38,121,207,25,57,28,250,208,5,109,203,128,68,177,
+130,123,249,106,56,207,208,241,245,61,243,78,12,57,27,162,61,178,97,128,231,142,217,28,113,146,71,81,158,15,90,176,44,228,3,32,158,71,63,233,176,227,223,157,228,246,62,156,30,135,187,252,135,206,75,28,
+131,206,46,131,15,204,58,140,113,146,58,113,237,64,21,72,99,156,8,71,57,230,8,7,212,125,211,199,208,226,163,42,249,228,90,3,234,209,67,145,233,209,115,146,49,249,227,21,161,178,69,24,15,211,253,178,220,
+227,35,157,196,142,221,73,35,35,56,167,134,151,24,5,122,114,12,140,57,207,175,61,58,126,7,24,235,64,25,170,211,14,15,246,121,24,24,249,33,28,12,246,41,215,235,129,156,142,59,184,52,141,129,139,28,142,
+131,203,182,61,71,113,176,228,242,113,142,58,251,138,209,2,94,73,72,207,78,93,221,135,215,148,35,129,215,215,166,69,48,153,242,72,138,219,169,231,230,199,126,127,213,145,208,28,125,61,168,2,152,18,244,
+85,211,192,207,36,219,89,128,71,28,103,106,143,126,121,169,115,112,122,11,30,70,126,72,44,148,251,116,96,79,3,174,1,238,49,147,135,239,159,161,22,189,240,112,20,125,78,232,187,129,129,128,57,24,57,34,
+128,102,239,246,82,59,96,12,131,255,0,1,183,61,187,253,5,0,48,35,30,162,216,158,167,17,91,158,122,158,146,47,28,247,25,247,29,41,140,187,126,244,22,205,232,68,86,234,78,49,220,206,62,184,207,65,147,210,
+158,90,227,60,173,177,29,177,142,216,235,186,219,167,36,228,158,153,239,154,66,110,112,74,173,185,3,185,17,228,127,228,168,63,129,3,219,169,160,8,199,57,255,0,71,85,227,168,88,0,250,100,93,16,14,57,199,
+234,58,210,238,35,143,41,112,51,129,242,123,122,92,114,15,60,228,28,242,41,66,222,142,68,113,48,7,63,118,35,223,248,73,183,39,241,198,57,239,142,30,13,232,206,45,162,60,119,146,221,58,31,120,20,241,201,
+247,247,25,4,1,55,147,129,229,14,49,208,3,144,49,235,117,192,233,158,231,7,20,252,183,107,102,99,237,26,156,241,198,49,57,235,238,7,175,61,148,37,241,193,54,144,1,208,145,53,185,61,135,240,162,224,116,
+60,224,118,235,213,219,46,199,75,120,127,7,183,31,240,45,198,55,192,224,103,29,48,120,237,64,0,89,8,31,232,147,100,30,201,32,0,15,116,152,227,30,160,224,122,145,82,42,200,63,229,202,227,131,147,141,252,
+126,115,240,15,228,122,226,154,177,94,103,230,134,37,250,220,91,114,8,61,188,176,120,30,153,201,227,175,21,48,183,156,143,245,17,30,153,255,0,72,181,30,157,136,29,59,100,115,142,184,38,128,27,189,242,
+0,179,159,160,28,180,220,113,201,35,237,64,254,0,113,218,158,166,228,31,150,198,224,246,249,90,113,220,240,73,155,156,231,28,231,129,198,51,154,60,137,0,193,182,143,128,57,55,54,152,30,167,244,245,199,
+94,189,104,22,211,31,249,97,111,192,255,0,158,246,108,72,247,0,128,122,158,15,182,61,40,2,117,123,133,31,241,231,114,188,231,137,39,63,251,80,245,245,30,148,166,107,142,191,103,153,50,78,67,188,224,142,
+9,238,88,125,62,110,122,123,213,97,12,200,73,242,45,128,235,254,186,215,131,206,120,3,28,14,184,60,251,243,151,152,165,234,98,179,231,214,91,97,248,1,159,83,219,143,94,212,1,96,60,132,115,100,88,246,59,
+159,169,199,63,49,92,143,114,7,177,237,74,26,80,71,250,1,7,4,12,228,247,61,14,242,71,92,142,120,234,49,197,83,16,204,1,33,45,57,60,1,52,61,193,236,164,247,245,231,28,250,225,12,18,130,14,219,80,112,15,
+50,198,71,227,144,223,78,59,142,189,69,0,104,239,144,224,155,80,48,49,206,238,131,175,2,81,200,61,243,159,83,76,98,153,230,214,18,114,58,134,200,25,198,62,105,185,36,140,116,236,69,81,217,48,227,101,177,
+198,112,4,177,128,8,246,43,207,167,61,129,25,28,26,55,58,243,178,3,254,236,145,145,199,7,25,141,179,219,167,92,19,207,82,1,162,10,227,229,181,183,7,212,132,95,215,206,7,3,131,208,49,60,10,112,4,140,181,
+189,158,222,1,225,137,201,233,192,118,3,158,184,207,211,165,100,153,101,7,62,76,56,255,0,174,176,40,56,35,39,152,122,231,131,215,167,35,20,134,229,241,128,145,96,103,164,177,147,211,215,236,221,15,24,
+231,7,167,25,228,3,104,8,215,254,88,216,142,50,119,5,25,250,238,113,220,17,130,163,36,211,115,30,114,23,79,7,175,0,99,30,167,111,3,245,239,140,113,156,145,59,12,22,140,142,73,226,104,240,65,237,197,185,
+56,4,17,207,80,113,197,72,183,25,82,2,75,142,70,4,227,183,210,208,116,247,244,28,129,64,26,162,21,115,144,150,60,156,156,70,91,249,186,227,61,249,239,197,13,108,227,133,75,48,57,25,242,176,125,58,25,253,
+71,80,188,114,125,206,88,112,8,62,77,199,61,15,158,7,60,228,127,199,145,29,14,113,236,122,118,127,158,132,99,201,187,237,200,145,0,30,160,147,101,144,122,115,147,244,57,224,3,65,45,152,117,251,32,245,
+253,203,30,158,230,94,62,160,251,231,52,255,0,178,131,218,28,241,202,194,14,50,49,252,79,142,191,94,122,159,92,225,60,75,131,178,235,191,30,116,92,122,140,253,140,30,58,117,239,207,29,29,246,171,114,113,
+178,240,147,198,76,168,216,30,131,253,12,253,70,50,1,231,29,5,0,105,45,164,153,27,26,53,25,60,236,136,116,231,238,147,147,215,7,183,160,230,148,218,79,208,79,16,3,142,34,76,143,94,156,241,212,156,98,179,
+254,212,156,144,183,132,140,131,146,57,244,25,22,67,167,227,212,242,51,76,55,104,49,251,139,179,156,231,151,36,231,60,99,236,126,158,159,92,208,5,230,182,148,13,198,225,48,50,73,88,147,140,122,130,71,
+78,58,246,245,166,52,55,4,96,220,12,119,196,73,146,63,224,39,215,183,127,229,83,237,110,126,237,189,217,207,25,34,99,207,92,100,90,12,122,156,118,234,15,20,230,185,155,25,91,121,199,212,92,30,254,141,
+0,227,130,57,252,78,51,64,14,242,37,0,255,0,164,72,7,161,128,31,212,182,209,142,228,241,199,165,51,236,236,9,63,109,96,48,56,16,91,143,212,201,206,57,224,114,61,48,65,164,55,55,24,207,217,216,140,156,
+7,71,3,60,146,120,128,243,223,131,215,57,207,52,211,119,41,56,251,50,2,127,233,156,222,253,49,17,29,184,24,29,123,129,64,15,242,216,146,26,245,255,0,27,123,80,7,211,106,18,61,143,39,31,197,67,64,220,226,
+249,182,244,57,134,63,111,88,242,125,15,203,207,108,115,152,252,219,128,51,246,69,32,158,73,89,128,200,62,246,141,207,61,120,28,0,65,7,132,51,92,99,254,60,148,228,245,84,115,249,255,0,161,28,244,35,145,
+199,226,40,1,26,217,186,125,180,227,61,118,70,56,62,185,136,112,115,147,237,156,122,152,154,212,2,115,124,71,110,4,71,142,121,28,40,61,71,214,156,207,117,255,0,62,7,232,34,39,185,24,201,178,28,145,142,
+7,28,247,168,115,57,99,139,51,244,40,224,140,143,79,178,142,189,122,15,199,173,0,60,91,168,207,250,116,133,114,120,17,64,73,57,255,0,174,153,232,125,184,231,189,51,201,140,116,185,149,191,237,149,177,
+24,247,83,33,29,249,237,193,207,24,52,130,41,159,165,185,92,246,17,57,63,135,250,49,254,153,63,92,82,125,153,178,67,41,25,207,30,65,56,246,201,135,30,231,142,253,57,201,0,70,133,14,127,210,37,25,207,34,
+59,62,14,71,99,38,7,64,122,99,60,103,25,52,8,80,131,139,153,14,58,229,45,59,100,140,102,69,199,61,248,192,3,158,78,97,123,81,216,74,59,241,108,173,207,32,116,181,63,137,252,113,235,25,181,108,100,153,
+122,115,155,96,125,121,199,216,191,63,175,62,192,22,24,99,163,187,128,1,224,90,47,94,156,253,160,99,191,7,175,29,59,198,202,6,78,78,121,235,37,170,144,71,124,121,163,250,242,49,156,154,128,218,147,209,
+166,0,117,197,178,30,196,127,21,152,207,29,187,246,232,106,171,192,87,33,38,156,28,156,147,99,27,112,70,112,10,192,167,131,254,208,201,234,65,52,1,105,157,87,239,49,80,59,153,172,240,64,207,77,215,99,
+145,215,158,61,125,161,105,131,14,28,28,244,38,91,38,235,207,79,237,0,79,160,233,130,71,124,85,7,89,193,192,187,156,123,127,103,22,245,29,144,130,49,211,140,158,159,88,88,92,246,189,159,158,159,241,46,
+113,183,161,237,25,94,221,7,60,14,189,72,5,243,59,14,140,135,182,1,180,231,233,139,255,0,167,161,224,14,78,49,17,159,218,60,100,228,23,129,115,215,147,254,154,123,224,117,247,3,181,103,17,118,9,197,197,
+211,113,201,22,100,227,215,33,194,131,144,51,156,14,188,84,47,37,218,128,76,215,64,113,159,244,68,31,174,224,51,237,158,158,248,52,1,168,100,36,28,8,176,121,31,189,131,25,237,192,187,61,15,62,199,158,
+184,53,11,50,156,101,163,57,234,124,212,56,227,28,109,185,245,234,62,81,244,34,178,12,247,103,56,51,49,231,164,74,185,236,115,186,76,3,143,240,61,120,135,206,187,29,98,144,247,201,69,31,168,148,15,160,
+255,0,26,0,216,102,32,112,32,60,30,119,167,78,122,230,240,28,224,143,214,160,59,219,180,67,0,227,108,227,240,193,91,194,122,99,177,227,3,212,28,179,61,206,114,97,111,78,163,25,237,156,73,212,1,211,175,
+92,117,166,25,238,48,79,149,39,175,14,224,254,3,237,10,59,30,189,123,99,156,128,95,117,152,112,178,39,126,133,156,243,212,143,244,165,252,243,211,240,21,16,142,118,207,239,87,56,228,109,201,253,111,9,
+237,237,237,214,168,27,203,129,255,0,46,174,70,58,153,166,7,169,231,139,156,99,3,252,240,105,134,234,103,233,100,237,223,155,137,113,158,72,201,50,144,123,245,60,80,5,246,134,112,114,101,112,123,50,197,
+143,94,135,206,110,189,58,16,0,224,246,166,24,166,57,204,172,216,245,140,156,224,250,239,233,248,245,252,234,135,218,39,7,155,22,3,63,195,116,70,125,254,248,255,0,245,15,160,164,55,19,103,34,201,189,14,
+110,55,243,142,57,220,120,244,56,60,250,117,160,11,70,55,25,10,236,61,64,136,54,49,133,231,46,51,142,220,227,212,213,87,73,193,59,100,152,100,245,54,233,143,209,241,145,201,7,190,48,70,122,198,215,146,
+47,91,54,201,231,253,116,152,231,190,4,68,122,241,158,125,129,168,218,249,249,38,208,175,92,16,210,54,125,248,132,140,247,35,25,193,206,70,40,1,199,237,127,243,222,65,159,75,88,78,112,115,222,65,208,117,
+233,233,220,128,132,220,240,5,196,185,236,126,203,8,25,244,36,202,115,245,168,78,163,143,224,216,71,60,199,49,198,58,228,253,156,14,51,237,252,233,135,81,124,228,20,7,212,219,204,123,231,156,70,188,114,
+123,119,231,142,128,15,144,220,245,51,55,76,252,214,214,199,62,249,44,70,63,14,255,0,129,131,116,185,249,166,198,120,255,0,85,100,164,143,161,113,239,199,229,142,114,199,212,229,201,229,15,184,181,145,
+186,116,63,52,109,244,232,112,59,117,195,63,180,37,63,199,130,115,194,217,183,56,247,251,57,31,144,36,1,206,56,160,9,204,140,189,103,64,64,232,82,203,183,252,12,175,28,118,192,63,164,13,113,33,200,243,
+226,231,61,13,160,192,250,135,235,236,7,242,164,55,211,46,9,36,131,200,31,98,99,193,0,243,254,139,232,79,183,25,238,50,207,237,85,31,123,36,224,243,246,61,163,159,251,118,95,199,174,56,200,230,128,23,
+206,115,255,0,47,8,153,61,190,200,115,238,73,144,54,112,58,122,112,113,81,188,211,12,109,189,227,209,163,183,0,30,251,114,73,237,200,3,211,156,19,72,53,117,83,192,24,207,123,83,250,21,141,7,166,79,81,
+237,217,167,88,231,1,99,25,231,155,121,7,3,185,220,66,231,235,131,128,65,199,96,4,55,23,56,199,218,198,63,217,75,108,159,92,141,163,63,175,225,76,103,102,31,53,219,246,233,13,183,24,231,160,200,57,233,
+219,223,129,74,117,41,27,162,194,120,227,253,24,0,0,245,204,160,14,188,103,57,246,167,11,249,186,136,225,63,75,112,10,245,224,17,112,120,238,122,114,64,24,205,0,87,46,231,254,95,92,1,252,62,93,160,31,
+145,92,246,30,164,158,253,5,70,93,65,230,241,179,193,199,151,110,58,103,36,237,83,201,200,237,235,235,86,154,242,118,234,132,156,118,182,4,114,49,213,166,97,200,235,219,183,29,68,70,119,39,152,27,57,229,
+133,180,120,198,58,113,38,127,17,233,210,128,34,50,166,57,184,102,235,199,149,17,234,51,245,32,244,31,160,168,139,161,227,206,124,158,194,8,134,125,122,175,184,227,147,215,53,51,78,221,226,144,99,140,
+152,84,14,252,114,228,17,245,3,61,51,81,249,131,159,221,202,50,65,255,0,143,116,32,113,142,166,84,56,232,122,231,140,14,160,80,4,94,92,103,25,150,66,123,255,0,163,33,24,244,229,24,28,142,152,199,115,205,
+46,200,219,143,49,192,31,244,235,0,207,177,62,75,17,211,215,3,235,213,228,22,31,41,97,207,252,240,56,30,188,11,156,250,116,227,235,81,249,18,54,73,124,228,241,155,102,25,231,177,243,207,61,123,122,251,
+80,2,121,113,130,118,200,192,244,255,0,85,109,249,1,246,98,125,250,254,93,212,199,27,240,210,22,28,140,50,67,208,228,224,255,0,163,143,235,215,223,144,90,100,114,83,156,240,208,246,35,190,24,224,14,189,
+121,30,189,152,214,170,188,23,80,59,97,31,111,3,60,99,158,222,185,234,51,138,0,95,179,197,145,243,161,238,113,246,113,239,200,54,126,222,160,117,0,100,26,107,195,145,242,133,36,118,223,108,51,140,115,
+129,104,70,123,244,62,216,168,190,203,16,108,153,80,227,156,159,181,113,145,254,201,199,94,152,199,97,212,98,147,236,214,228,228,203,110,64,193,228,221,130,6,50,121,44,123,115,145,192,193,7,60,224,1,222,
+84,221,66,117,28,21,107,102,244,237,246,17,199,185,250,102,151,202,186,39,32,48,200,238,45,215,145,232,13,139,103,31,222,239,156,244,166,253,158,223,140,77,106,15,80,1,189,227,147,156,254,241,65,39,142,
+255,0,135,21,27,65,105,147,190,123,67,219,37,175,24,156,244,3,51,242,127,46,160,244,234,1,100,91,223,0,0,145,179,215,165,169,193,233,255,0,62,67,60,103,211,166,59,230,158,177,234,96,224,76,216,227,144,
+182,131,56,235,247,172,199,78,156,122,244,29,106,153,134,199,167,157,97,255,0,124,93,3,143,94,103,31,166,73,252,234,38,130,199,167,157,105,142,185,219,57,30,156,3,54,113,223,60,156,246,199,20,1,120,174,
+165,146,124,231,3,217,236,78,112,59,230,204,49,28,113,131,222,155,187,82,36,3,59,243,216,125,143,175,65,156,91,227,235,223,4,122,85,81,22,158,7,19,90,147,207,252,179,185,192,206,50,78,38,28,245,231,142,
+79,183,44,48,233,231,172,246,103,131,214,59,161,143,252,142,56,227,156,123,114,1,57,0,188,23,80,63,242,221,200,250,89,158,71,214,223,57,233,212,156,113,140,224,128,241,253,162,48,60,231,63,85,179,227,
+255,0,32,3,250,31,240,205,16,216,16,7,218,44,176,79,67,13,217,3,216,31,180,55,161,244,29,58,241,151,136,172,0,255,0,143,171,81,158,128,69,112,57,29,7,207,51,103,60,250,250,231,140,208,5,237,183,199,150,
+144,109,207,25,16,14,15,115,136,121,246,231,215,233,78,17,207,199,204,188,99,4,197,25,7,212,156,70,58,244,233,142,123,10,207,219,167,242,13,204,103,36,242,34,114,15,61,73,32,245,199,169,4,99,174,105,219,
+180,241,140,220,68,49,200,204,69,72,198,123,146,1,35,175,7,223,158,180,1,160,82,80,65,102,136,12,115,251,136,91,31,64,200,15,115,146,56,227,156,98,138,160,38,176,31,242,250,170,113,212,40,61,255,0,222,
+207,99,156,31,108,28,224,148,1,235,12,32,206,69,250,227,36,144,77,179,12,231,190,34,108,30,185,228,15,199,21,11,45,187,100,125,185,114,51,198,216,184,45,206,126,88,128,28,30,57,28,103,57,206,107,72,50,
+16,115,0,57,29,86,123,197,233,207,25,183,218,115,244,235,211,185,16,177,69,251,176,99,31,222,158,225,187,159,91,124,244,245,238,120,160,12,183,134,62,159,110,61,51,204,81,63,25,29,138,1,219,7,144,7,39,
+158,148,193,110,167,254,95,92,140,140,129,10,0,127,5,218,121,239,143,169,226,181,126,67,144,96,80,120,199,239,231,201,245,227,236,199,240,253,61,41,166,53,126,138,163,233,44,216,255,0,210,110,63,82,15,
+177,160,12,239,178,71,156,181,201,228,103,238,76,62,159,118,96,1,245,249,112,121,235,78,22,168,78,126,217,131,142,152,151,3,175,172,140,122,129,247,134,79,115,233,124,218,112,72,61,176,7,153,112,190,184,
+1,150,211,25,207,64,121,197,49,109,9,229,87,156,245,18,203,142,255,0,223,177,62,189,115,219,185,160,10,94,71,205,149,188,98,78,56,220,248,233,217,115,156,253,56,57,207,61,156,96,155,181,211,99,182,76,
+216,247,60,2,59,114,121,192,199,227,162,44,137,251,199,158,167,13,41,39,56,227,141,63,24,29,59,243,211,182,17,236,3,103,231,112,61,149,198,59,14,186,120,30,185,250,30,61,0,51,252,171,147,200,156,156,113,
+130,210,144,122,0,61,207,61,135,94,112,105,86,43,193,255,0,45,20,243,208,25,65,35,158,14,84,224,245,239,211,167,165,90,58,104,255,0,158,211,103,4,225,86,63,228,214,35,24,193,237,215,143,106,136,216,133,
+56,19,94,103,156,225,99,0,99,251,184,179,61,243,193,25,231,233,64,12,16,222,55,76,183,183,206,70,59,113,176,128,123,243,248,118,20,241,109,112,120,116,37,187,146,204,185,231,167,17,12,126,29,115,215,154,
+140,90,176,192,50,93,183,29,138,2,122,224,224,105,217,254,126,185,239,74,109,88,231,23,23,235,198,112,8,62,152,224,105,126,185,29,15,166,57,34,128,39,242,174,49,143,40,99,158,12,178,145,212,112,49,24,
+7,212,245,252,122,210,121,115,41,199,146,0,228,140,59,30,72,247,129,185,250,131,192,168,5,186,0,1,146,241,179,215,33,78,72,29,179,165,3,234,58,129,244,20,8,35,3,135,185,3,177,104,213,185,57,207,63,96,
+231,167,160,199,25,160,9,140,119,57,249,109,217,186,128,1,124,96,31,246,109,125,7,57,28,114,42,51,29,201,63,241,234,66,145,147,149,155,32,127,192,96,199,60,99,145,201,237,75,228,38,63,215,221,40,207,63,
+232,145,127,38,177,25,60,112,71,177,250,52,198,132,130,47,110,248,198,118,193,110,15,25,236,108,215,245,250,243,64,14,219,56,60,194,221,241,205,194,158,56,227,16,160,29,14,70,127,76,210,152,230,35,38,
+9,1,255,0,126,228,143,94,234,221,71,64,49,212,116,230,154,177,174,121,191,187,83,211,6,11,79,80,59,91,3,238,48,113,248,115,82,20,64,51,253,165,116,51,223,201,182,29,0,207,2,212,142,228,122,117,197,0,40,
+141,136,230,59,140,246,1,230,0,30,153,228,12,103,190,72,199,115,64,128,131,210,96,71,127,54,83,140,119,33,79,108,147,156,123,100,102,128,171,255,0,65,73,113,211,152,173,251,156,100,159,179,145,199,225,
+252,242,161,20,245,213,102,246,197,188,29,189,196,35,35,240,207,168,160,5,242,159,248,90,96,70,73,201,185,126,253,48,95,25,246,252,7,76,83,124,153,15,45,36,189,121,6,9,200,199,175,223,231,0,231,175,36,
+123,10,177,229,160,28,106,242,158,57,30,84,64,128,113,199,8,64,36,122,240,61,142,41,2,14,10,234,211,140,140,28,8,7,28,231,248,1,231,62,159,149,0,52,64,196,227,123,15,92,219,74,115,142,185,249,206,127,
+17,206,56,207,119,249,14,185,204,152,244,34,213,201,57,207,247,165,36,243,129,211,173,40,142,50,6,117,123,130,51,253,232,212,142,112,126,229,187,115,233,201,224,103,142,129,68,16,144,49,170,221,103,131,
+131,112,65,252,150,211,35,235,147,158,189,113,128,1,97,4,130,110,31,7,143,248,246,96,59,116,204,227,60,12,30,6,122,114,51,78,54,241,244,50,177,201,255,0,159,68,63,250,21,201,228,250,227,56,61,40,22,177,
+147,147,170,78,71,4,230,89,201,244,237,8,29,243,156,116,226,157,246,40,136,32,106,147,142,255,0,241,241,114,152,206,51,247,96,60,99,219,219,181,0,47,147,23,32,72,73,231,35,236,145,15,207,12,222,249,252,
+58,246,13,172,100,112,236,7,253,122,41,207,62,162,64,113,223,3,29,251,154,111,216,6,78,53,57,251,96,253,178,235,241,235,0,63,145,252,133,59,251,56,0,55,106,50,145,255,0,95,215,99,158,220,132,28,114,125,
+61,104,2,85,179,224,224,231,0,127,203,148,141,146,122,231,107,62,59,31,94,188,83,190,199,30,50,113,219,173,155,33,253,114,48,0,3,29,120,231,3,171,23,78,94,191,111,7,156,101,181,43,165,60,251,8,216,99,
+252,59,246,67,166,33,57,251,114,28,118,254,209,188,57,234,51,205,185,246,61,113,199,57,160,9,227,180,65,146,2,30,196,108,41,215,146,64,40,121,0,158,131,24,201,199,172,130,36,206,2,146,64,207,202,195,0,
+119,231,201,207,183,112,1,224,129,214,184,210,211,24,91,136,136,56,193,251,101,225,207,175,75,112,14,58,245,39,129,234,48,225,165,1,157,178,91,144,127,233,234,236,245,3,146,10,142,189,178,58,126,52,1,
+47,148,56,6,25,136,199,105,78,14,126,150,236,122,125,6,122,123,184,91,198,184,62,76,205,219,253,121,3,215,0,155,66,65,193,62,189,62,245,87,58,83,146,62,104,125,62,89,101,60,113,140,6,28,126,189,122,83,
+215,73,3,146,99,237,206,230,207,126,164,171,117,255,0,60,244,0,159,100,64,96,70,192,12,15,154,120,243,193,199,120,1,237,238,7,210,156,68,67,57,80,8,207,5,161,56,25,193,35,253,23,144,115,208,145,211,0,
+83,70,154,23,25,16,158,71,102,111,175,38,17,158,221,189,240,121,169,86,197,23,172,80,18,113,255,0,44,85,129,231,156,16,128,143,200,100,244,28,80,3,21,99,39,129,30,58,127,173,183,94,125,212,91,147,159,
+168,56,231,161,205,76,161,23,128,234,131,3,133,107,102,233,216,102,212,245,231,184,31,76,211,197,162,113,182,222,212,146,57,63,103,207,78,15,252,176,63,250,17,252,122,212,159,98,97,140,219,218,12,142,
+171,101,184,130,120,199,48,129,211,211,143,81,222,128,26,28,140,98,224,140,250,53,184,198,121,192,255,0,68,35,234,125,106,101,108,1,186,105,73,63,197,136,48,72,232,79,250,41,245,232,6,7,7,34,162,22,82,
+228,226,214,34,7,65,246,53,30,253,215,35,158,78,57,247,231,151,139,89,151,57,181,139,29,191,209,79,82,63,188,78,6,59,240,121,199,175,32,19,41,220,71,239,165,199,29,22,14,185,236,126,203,249,240,127,30,
+149,56,10,113,155,153,84,130,57,104,226,35,61,79,34,220,119,245,29,78,122,112,43,45,180,229,115,246,88,179,158,158,81,32,254,34,54,35,190,122,122,1,129,78,242,103,29,108,97,32,14,143,28,248,29,56,249,
+45,199,62,164,147,143,122,0,185,187,104,202,220,146,48,62,244,22,236,51,255,0,126,193,198,125,176,121,29,184,118,230,60,139,136,113,141,220,218,71,159,205,109,206,79,0,146,15,225,205,83,88,110,20,113,
+99,110,57,199,9,117,207,83,215,236,199,63,137,57,167,20,186,228,157,62,14,61,34,186,60,99,143,249,96,15,233,146,126,180,1,113,124,226,114,36,183,36,103,159,178,131,223,61,62,205,140,254,25,199,60,154,
+156,249,202,185,51,195,208,156,45,137,200,224,30,159,103,252,243,207,92,112,114,50,241,49,36,127,101,160,247,16,223,117,199,98,98,24,61,241,199,66,71,0,83,26,222,224,145,255,0,18,204,147,219,202,187,198,
+51,207,240,12,115,250,113,198,65,160,13,64,204,73,6,88,185,28,230,204,47,78,227,247,67,28,14,223,83,205,4,19,201,104,200,207,104,14,49,237,149,227,129,254,0,226,179,22,222,96,64,254,202,110,135,254,88,
+92,17,199,60,150,79,229,239,233,82,172,14,51,157,45,65,244,48,92,54,73,35,159,245,125,58,99,35,167,24,197,0,94,193,28,6,132,103,63,242,236,196,251,114,25,122,123,241,207,210,145,149,142,126,104,51,235,
+246,86,192,56,235,254,183,167,28,245,61,48,106,183,150,216,63,232,17,224,99,35,236,183,59,120,201,0,6,136,142,58,96,119,206,121,205,56,124,170,55,88,40,237,197,148,188,245,56,255,0,80,9,239,131,208,17,
+159,67,64,18,108,148,116,54,223,67,108,249,199,60,243,113,237,142,113,156,254,74,191,104,7,143,179,254,22,172,123,142,184,187,29,123,156,16,7,94,153,168,252,184,219,147,101,32,35,210,203,161,237,203,66,
+1,231,156,117,246,228,101,205,10,175,2,214,96,113,156,27,56,212,30,185,255,0,150,125,114,58,224,17,211,38,128,37,219,113,157,193,17,186,253,219,121,84,231,183,63,108,62,135,24,252,57,197,60,37,202,243,
+229,204,15,180,87,24,233,234,110,200,31,136,235,232,77,83,49,1,147,246,103,7,176,242,96,80,62,185,132,241,223,166,13,52,36,135,56,141,151,185,59,97,200,24,235,197,171,99,211,240,25,226,128,46,254,248,
+18,54,220,49,207,28,78,51,233,145,246,190,7,126,64,199,62,217,145,77,232,3,17,204,50,58,159,180,247,239,242,221,113,145,142,157,61,185,170,4,202,135,32,73,211,186,194,56,245,230,195,174,64,24,200,252,
+248,33,150,78,56,152,14,156,121,88,227,220,89,140,159,166,1,199,106,0,186,77,224,228,172,160,245,4,253,171,32,250,228,207,239,254,62,148,6,186,254,35,39,29,193,185,57,233,235,59,15,78,49,199,28,213,19,
+43,156,31,244,142,188,0,168,115,216,96,181,168,3,219,158,223,147,73,114,79,203,114,192,117,202,218,129,140,114,57,181,63,152,193,239,245,0,188,90,101,206,230,97,143,246,101,63,166,238,58,142,159,168,166,
+153,153,126,244,238,62,137,47,56,231,251,224,250,103,0,115,142,216,170,108,142,65,219,246,128,71,175,144,125,114,62,91,117,199,94,122,113,211,190,97,11,32,39,30,113,57,200,201,94,8,200,200,42,136,49,223,
+25,235,239,64,26,95,105,7,131,114,64,200,224,199,54,7,108,145,184,240,70,63,195,56,195,124,229,31,242,244,135,215,34,94,164,250,30,192,99,56,199,110,188,86,119,250,70,65,2,70,57,239,129,193,61,0,3,156,
+116,62,191,92,18,163,207,39,148,155,174,112,25,192,237,156,124,164,17,192,28,14,253,57,160,13,1,52,68,252,215,118,234,8,232,198,101,244,234,85,255,0,51,192,247,166,180,176,114,171,119,100,195,254,186,
+220,14,127,239,238,123,140,244,254,85,79,100,189,94,57,240,71,77,142,73,228,119,101,29,136,61,50,56,35,181,38,194,72,2,41,70,123,152,156,228,227,184,83,237,219,219,145,210,128,38,50,69,222,230,192,114,
+15,18,202,73,233,206,11,48,60,122,123,130,122,97,190,117,183,0,220,90,103,208,49,35,25,231,39,205,92,254,4,251,118,203,68,40,126,250,55,209,173,102,60,243,158,177,177,252,142,7,227,72,96,140,28,170,28,
+12,231,22,109,143,251,232,195,159,167,39,183,30,160,15,19,218,128,127,125,106,24,119,29,14,113,211,18,231,250,142,188,227,1,12,208,243,182,104,115,219,1,137,198,61,167,207,229,140,14,226,155,177,65,199,
+150,223,133,180,152,250,124,176,237,199,249,52,132,96,103,202,148,142,159,241,238,221,57,254,244,96,227,175,61,187,224,80,4,101,212,158,25,9,36,245,51,227,7,211,18,62,125,63,19,207,106,76,41,61,34,39,
+145,147,231,228,12,251,231,0,227,160,61,113,83,237,132,128,60,153,120,235,251,136,178,78,71,118,136,147,219,156,147,214,147,17,1,254,166,81,244,133,9,252,66,195,143,81,198,127,90,0,174,200,73,24,142,35,
+199,4,73,114,7,7,145,128,0,199,62,153,235,207,74,141,163,36,143,221,68,113,144,0,121,142,126,128,198,72,30,231,60,14,157,42,238,97,4,126,230,114,127,235,222,217,191,71,141,88,116,63,128,52,164,194,78,
+124,155,190,64,7,22,214,139,234,113,157,163,29,65,247,35,28,28,2,1,158,33,147,25,17,40,198,7,203,17,112,7,115,131,110,73,244,244,239,144,65,167,162,56,251,195,158,188,89,130,15,57,199,22,192,241,128,15,
+67,239,86,201,81,200,142,243,111,167,149,110,64,246,255,0,87,140,103,145,200,3,166,71,57,11,174,63,212,222,227,158,0,183,95,76,112,54,144,15,124,103,243,38,128,43,109,221,193,69,57,4,2,109,138,143,204,
+192,71,231,156,114,57,205,68,96,200,35,11,144,87,111,238,8,30,224,145,105,129,211,220,14,155,185,171,155,155,156,193,126,127,224,80,47,78,153,253,231,227,140,145,200,245,20,240,19,28,193,126,185,25,225,
+199,191,92,79,193,29,49,156,115,156,227,138,0,162,32,3,27,132,67,158,232,185,246,24,54,185,193,199,118,61,115,82,44,42,188,171,192,189,56,242,162,203,100,243,141,208,0,120,60,142,255,0,141,92,10,128,228,
+65,168,158,157,100,114,58,127,177,43,1,158,58,100,247,227,57,15,249,6,15,217,111,207,176,146,231,159,193,24,31,175,211,218,128,41,24,164,57,80,224,227,156,164,86,205,239,158,97,56,199,183,94,64,230,155,
+229,77,255,0,61,8,25,61,109,173,137,247,60,68,61,125,120,201,246,173,3,44,99,5,161,191,29,70,9,188,110,252,99,44,115,215,235,211,61,41,124,200,64,226,59,176,59,145,246,159,99,206,1,39,61,121,24,29,136,
+226,128,41,162,72,51,155,151,24,236,45,173,200,227,32,143,187,142,152,244,231,7,156,242,224,183,3,159,182,55,126,144,219,167,67,147,216,231,220,227,249,19,86,75,197,140,236,185,198,127,231,165,226,145,
+143,97,9,63,81,147,249,103,0,120,88,128,208,220,176,30,179,93,99,3,142,173,22,7,39,184,231,168,61,232,2,176,251,78,62,91,185,57,235,242,197,223,174,112,158,167,176,199,39,158,148,224,47,216,141,151,151,
+25,201,193,6,46,78,15,251,167,25,238,50,79,177,230,173,1,110,7,54,247,56,246,187,156,231,159,120,0,3,160,199,113,145,211,138,144,53,184,4,11,89,249,206,115,117,56,25,61,242,182,185,56,3,185,60,145,64,
+21,64,213,192,192,190,185,207,56,24,200,25,235,252,67,39,243,231,6,148,13,101,176,5,245,198,238,248,139,119,78,185,195,231,235,216,99,142,188,217,50,70,49,139,105,71,31,243,249,32,206,51,199,207,102,48,
+58,99,158,167,63,87,171,240,115,11,142,192,139,225,207,110,166,211,177,247,39,29,250,224,2,182,205,105,121,123,235,156,103,161,136,140,31,196,30,122,113,140,231,7,61,48,224,117,129,214,242,99,234,89,27,
+167,127,186,163,25,245,57,234,71,189,88,193,251,202,38,3,57,35,237,235,223,235,110,59,99,158,131,168,3,160,76,22,227,201,149,135,80,126,223,31,211,181,176,255,0,36,246,57,160,8,183,234,216,45,246,198,
+231,39,133,185,231,169,231,3,3,29,58,254,103,52,227,54,170,20,110,187,114,127,237,228,227,140,242,54,30,191,239,117,29,133,78,21,201,193,181,185,219,193,249,117,56,249,57,57,7,16,0,59,119,250,140,114,
+87,108,106,121,177,186,57,201,25,212,83,7,183,77,171,248,224,227,62,253,0,32,19,106,68,101,167,148,244,228,11,204,119,199,27,8,247,233,142,57,38,141,215,167,239,77,48,231,28,69,114,114,115,211,238,12,
+112,59,142,189,189,109,170,169,3,253,6,83,207,59,175,208,113,142,216,112,58,254,31,92,138,118,27,181,137,198,120,63,109,207,29,185,55,107,199,92,96,1,199,176,192,5,48,47,14,49,44,221,241,155,123,134,250,
+227,247,109,146,63,17,216,210,226,237,120,50,201,215,156,90,204,9,57,235,147,109,156,99,156,17,234,120,230,174,249,114,17,255,0,30,39,7,254,159,151,232,58,222,12,253,113,140,231,212,211,150,49,208,216,
+185,219,223,251,66,16,48,61,197,239,3,28,30,57,227,25,205,0,83,13,117,143,245,211,144,0,227,203,148,96,246,231,236,192,128,59,99,183,94,130,156,26,108,156,60,184,60,100,121,171,159,115,152,135,184,228,
+85,134,84,193,205,147,145,232,47,115,193,234,56,186,57,244,227,245,230,147,108,120,231,78,98,15,253,62,129,219,60,169,184,57,247,24,207,94,59,0,8,10,205,212,200,253,191,138,225,79,190,78,206,61,57,198,
+123,1,217,202,38,95,249,107,38,59,102,121,7,167,247,148,19,219,61,42,80,176,30,70,152,87,183,55,131,142,122,113,49,28,227,174,48,121,167,108,128,140,27,34,15,61,111,151,175,166,76,167,29,178,8,199,184,
+224,208,4,95,189,227,50,201,215,28,92,62,6,14,57,224,117,63,237,17,237,212,132,101,156,156,139,169,87,160,230,239,167,4,131,134,126,15,215,62,131,28,212,203,26,110,194,89,14,152,0,106,17,103,190,15,36,
+243,232,79,168,30,180,242,135,156,219,109,57,193,255,0,76,143,29,51,217,72,252,185,250,228,80,4,107,29,200,7,253,42,94,112,6,111,148,3,239,213,177,130,65,245,30,253,195,13,223,95,180,74,123,15,248,153,
+129,250,168,95,81,143,188,51,208,247,167,109,65,213,31,3,39,139,232,70,63,242,89,143,167,35,156,12,19,138,82,208,12,101,38,193,244,187,76,3,234,72,179,31,203,146,123,154,0,143,202,184,94,25,167,108,250,
+106,163,240,224,145,249,119,244,192,34,159,229,200,121,50,72,64,207,252,196,151,131,220,112,231,146,58,123,243,146,71,13,50,194,49,132,155,129,206,110,226,39,191,93,214,160,17,249,19,143,92,81,231,195,
+145,152,164,32,14,171,115,108,113,223,156,91,46,125,142,79,208,118,0,120,73,134,115,36,248,237,139,245,108,231,191,229,142,152,247,207,64,245,89,143,83,118,71,81,182,238,28,99,220,144,56,227,29,127,173,
+68,110,33,227,17,206,14,59,220,91,54,79,29,132,64,245,207,166,15,24,110,112,134,232,47,57,149,64,244,150,220,14,253,115,26,140,30,131,3,129,232,69,0,88,34,108,224,189,224,60,241,230,66,220,243,213,148,
+130,123,103,243,4,210,121,19,184,206,110,113,198,50,109,143,212,157,231,35,174,0,39,183,94,184,174,47,0,225,90,66,6,49,137,237,115,211,144,62,92,140,99,24,206,125,169,223,110,126,6,233,129,206,73,243,
+109,207,92,227,238,186,244,199,32,12,30,56,56,224,2,113,111,115,215,50,113,199,49,217,227,168,32,19,180,147,199,60,14,185,24,239,70,203,133,57,37,193,232,7,217,161,99,200,228,100,69,143,215,28,28,251,
+212,55,135,36,153,92,119,39,205,183,92,114,122,238,147,142,158,195,167,21,34,221,134,201,50,55,78,166,91,98,58,122,253,161,73,60,123,159,67,214,128,45,230,96,6,100,117,198,73,34,218,48,1,231,63,194,56,
+7,60,227,242,167,171,142,67,94,108,57,7,139,120,191,95,220,19,212,115,131,245,200,198,40,249,177,177,201,145,78,122,150,150,12,114,123,109,190,7,191,167,31,149,27,185,202,188,71,156,243,52,64,143,82,10,
+223,228,227,60,131,159,169,20,1,117,194,158,127,180,27,142,128,91,70,59,240,50,98,28,228,231,169,192,205,68,86,34,121,212,2,243,198,98,136,28,130,122,230,50,7,94,156,119,234,58,87,103,98,70,36,65,238,
+46,148,126,36,125,176,142,79,160,231,61,241,77,207,39,50,67,145,201,221,118,132,156,250,145,113,156,3,255,0,214,61,48,1,97,188,162,62,109,65,88,117,24,85,30,216,38,48,115,245,32,231,177,198,42,50,144,
+28,226,253,115,220,41,152,14,160,242,4,24,32,251,143,78,5,66,101,64,49,230,71,207,247,110,226,3,241,253,233,192,192,193,39,241,230,151,114,224,15,58,29,189,126,107,152,155,191,29,27,60,250,113,219,147,
+197,0,72,99,132,103,254,38,4,103,140,3,47,35,143,238,219,103,29,250,156,247,245,44,16,192,220,155,226,121,228,9,46,151,159,64,86,220,156,156,245,199,124,103,165,39,149,11,114,211,218,142,78,1,152,19,239,
+146,11,117,237,223,3,175,74,67,4,29,124,251,35,142,153,144,176,252,145,115,219,215,159,196,80,0,45,173,151,63,233,115,100,119,23,183,49,128,72,235,131,10,158,152,56,250,119,32,84,77,109,110,15,203,123,
+47,108,147,168,79,129,156,156,99,106,243,248,30,61,58,151,27,120,78,118,203,106,222,132,25,143,110,56,32,113,158,159,203,21,17,182,35,238,121,77,159,68,13,207,76,130,67,30,7,183,165,0,39,146,131,238,94,
+77,211,7,26,133,192,3,147,142,17,227,227,211,140,140,158,157,153,246,117,7,38,226,82,73,207,26,141,210,231,233,251,252,253,122,245,60,227,21,33,183,148,241,211,211,247,74,167,144,58,15,43,161,63,128,30,
+184,20,195,103,49,60,51,128,71,123,98,195,159,82,32,199,166,121,239,193,20,0,166,32,57,243,230,97,129,193,212,239,73,207,124,31,56,115,219,190,50,112,121,38,163,48,166,65,105,38,60,100,255,0,196,194,228,
+117,198,79,207,59,12,115,216,100,246,237,71,216,238,58,2,73,235,145,98,199,158,196,176,65,211,63,221,30,189,249,103,216,238,240,64,27,185,206,126,192,231,62,220,0,220,122,177,231,174,40,1,193,16,125,217,
+46,27,29,133,243,144,121,244,105,192,56,199,82,61,1,244,164,40,189,74,92,183,57,56,190,32,103,232,37,29,125,185,244,239,72,214,119,88,3,98,147,216,46,156,227,29,123,228,17,211,243,247,168,154,222,248,
+12,42,73,198,63,229,198,65,129,235,203,140,227,62,248,193,3,208,128,60,180,99,248,46,177,144,50,111,219,7,240,243,251,113,199,76,142,65,25,52,214,158,51,199,149,112,123,243,121,187,63,92,202,71,228,127,
+14,106,187,38,164,15,250,139,150,30,169,167,191,29,122,126,240,113,215,156,113,211,216,70,87,81,193,62,69,224,4,117,54,197,79,111,225,243,127,192,254,116,1,56,48,231,254,61,167,35,39,4,221,190,48,7,161,
+148,31,95,92,227,211,171,8,180,99,205,155,177,245,105,25,201,7,60,140,203,183,29,56,32,1,158,58,224,213,105,53,5,36,21,184,35,190,232,164,0,123,13,165,137,227,220,228,246,60,10,129,229,189,201,39,113,
+235,247,226,159,249,9,51,249,143,168,24,20,1,105,163,182,201,43,167,49,237,146,209,242,59,100,25,59,122,140,145,245,34,160,101,140,241,253,156,56,199,222,16,17,142,164,124,210,103,35,56,246,253,106,6,
+184,186,24,204,113,130,0,36,52,51,0,114,78,56,46,7,110,7,35,245,168,13,221,206,72,242,226,36,116,196,82,40,4,12,31,152,200,51,219,146,59,159,122,0,182,241,19,144,44,35,29,248,242,84,254,59,101,4,250,245,
+227,156,241,138,172,109,101,57,34,198,60,100,224,179,170,231,168,232,179,231,175,114,65,224,28,226,170,60,243,183,88,130,144,64,200,73,15,225,196,185,239,233,233,80,179,207,201,194,1,236,143,219,61,132,
+131,3,29,120,61,7,90,0,180,96,101,57,107,59,101,201,199,250,224,120,207,92,53,207,190,121,30,134,163,54,172,224,255,0,162,192,7,60,44,169,143,205,174,9,29,241,201,250,158,181,73,222,76,144,118,3,140,224,
+194,252,30,196,124,231,35,212,1,249,213,118,119,35,151,135,35,177,138,76,119,244,56,39,158,58,247,206,49,64,23,94,205,129,31,232,208,131,219,116,144,158,7,111,154,224,115,201,239,156,117,206,106,187,218,
+202,15,22,214,216,57,25,47,110,73,198,79,63,233,31,78,122,118,25,61,106,180,146,156,19,45,168,29,64,48,187,103,24,231,147,212,244,228,17,138,132,200,253,154,209,142,49,197,167,111,169,193,201,200,239,
+238,50,104,2,71,181,148,19,139,91,101,61,50,166,16,79,60,241,246,129,220,30,127,152,192,168,140,114,131,205,172,57,3,131,251,178,113,207,164,253,113,145,199,53,17,158,64,78,76,28,103,238,219,40,57,30,
+156,159,254,183,24,239,80,153,55,19,153,81,72,193,57,135,24,7,156,12,74,7,111,78,156,99,3,128,9,94,41,24,18,108,160,113,156,243,201,3,158,159,189,35,146,79,160,200,205,66,209,70,120,109,49,27,142,48,136,
+125,114,48,93,136,30,220,100,100,116,164,18,39,57,152,19,232,0,29,125,252,211,238,64,192,247,61,169,141,50,114,68,174,72,7,179,31,195,27,136,247,30,153,233,142,160,11,229,91,12,147,166,192,158,159,187,
+82,125,199,29,71,174,120,233,206,105,130,56,72,200,179,181,66,64,235,26,142,248,228,228,159,78,48,49,222,160,107,129,212,203,62,65,60,40,32,118,192,57,99,131,199,101,252,128,53,1,157,121,24,145,192,4,
+97,164,147,235,156,99,232,70,120,244,219,216,2,121,33,139,156,217,217,96,3,214,54,231,183,59,15,0,244,232,63,2,14,107,180,118,228,255,0,199,149,136,61,134,201,137,39,185,245,61,123,126,125,170,35,62,15,
+250,150,117,207,81,32,207,175,117,236,56,199,231,222,152,110,35,4,110,134,85,224,113,188,131,159,248,10,1,239,156,115,232,40,2,99,20,35,11,246,59,37,35,140,108,185,32,30,70,79,203,143,76,245,56,57,24,
+226,155,229,198,8,2,222,204,30,225,82,225,112,7,76,113,140,28,28,96,122,250,113,92,220,197,147,148,184,29,185,184,145,65,61,190,236,99,190,56,207,110,157,105,162,107,114,115,135,252,111,46,61,56,231,202,
+61,121,199,61,255,0,48,9,218,40,243,254,162,207,56,206,119,77,206,58,140,20,193,35,191,81,143,210,35,12,71,150,138,215,161,201,6,64,126,167,230,7,24,250,251,241,80,60,214,234,113,229,169,239,243,93,202,
+196,30,48,114,240,251,115,235,159,202,3,60,68,147,229,32,56,227,253,41,177,237,200,131,57,227,176,233,215,173,0,90,107,120,242,72,134,216,243,199,252,124,19,237,247,101,83,252,249,233,218,152,83,140,11,
+120,56,207,221,91,214,199,226,210,158,189,250,243,197,81,55,81,14,162,5,245,45,116,249,227,169,255,0,143,124,127,42,97,185,183,32,157,208,49,227,254,95,14,6,122,228,181,190,71,65,156,19,220,231,2,128,
+47,21,76,16,108,227,39,169,30,85,231,83,219,191,3,158,252,250,241,80,249,113,30,150,80,156,14,158,77,200,57,231,211,130,58,117,63,129,237,88,92,197,145,251,200,49,140,156,92,171,159,76,124,208,12,246,
+235,200,39,56,201,52,245,184,70,56,19,40,36,113,137,148,128,122,15,187,23,28,241,142,112,120,236,104,2,66,0,60,89,5,219,142,150,215,109,158,248,24,247,238,58,126,84,155,187,53,161,244,56,180,189,231,182,
+14,93,125,184,233,249,83,12,128,115,246,200,129,61,158,117,7,220,0,209,142,156,113,130,127,149,69,231,184,56,251,93,177,233,144,215,49,14,71,29,151,160,233,193,233,233,64,19,180,137,211,236,110,123,144,
+182,247,160,145,156,116,18,28,241,232,49,158,157,6,27,231,34,231,22,19,117,228,125,147,81,56,231,57,249,100,11,255,0,234,200,30,181,158,226,110,72,189,180,81,198,127,125,3,99,233,251,188,247,3,7,158,255,
+0,86,139,153,183,124,186,133,175,29,48,32,201,3,167,204,23,143,67,238,78,61,8,4,230,112,14,127,179,231,35,140,147,101,127,206,15,187,146,125,112,123,14,6,120,43,246,188,240,52,230,0,1,203,89,94,0,127,
+28,22,30,228,140,251,96,83,77,205,215,253,4,96,199,112,124,160,49,212,228,227,31,161,233,192,230,163,18,204,122,106,22,253,78,0,251,62,79,83,250,250,241,211,56,52,1,41,184,56,57,177,28,250,219,221,1,143,
+115,176,17,144,71,111,94,79,74,67,114,237,129,246,28,147,232,183,10,56,246,101,29,122,242,72,35,223,154,105,107,133,201,254,208,183,231,147,185,109,251,113,140,231,142,51,238,58,243,156,133,251,69,207,
+125,78,28,118,192,135,7,62,152,219,248,96,253,40,1,62,211,39,31,232,12,48,7,67,42,247,63,135,97,199,182,120,192,163,237,44,195,38,212,130,48,121,119,206,1,244,227,143,83,201,253,105,166,226,97,141,218,
+156,124,99,161,79,231,184,99,167,108,116,61,70,42,35,119,38,72,26,162,19,129,156,96,243,219,36,22,228,251,116,199,189,0,79,230,191,79,179,21,235,247,101,61,61,58,12,244,207,231,215,21,30,93,143,54,210,
+15,125,242,227,161,231,42,164,30,157,207,233,197,53,103,102,28,234,113,130,7,35,4,129,233,213,80,131,142,164,119,237,128,5,6,92,28,255,0,104,6,29,126,86,101,227,29,177,40,234,15,25,207,126,249,160,0,135,
+227,109,185,192,29,60,211,156,113,215,41,143,231,211,158,212,187,31,39,54,140,1,192,207,218,54,231,176,225,97,37,177,207,39,142,184,166,249,208,147,150,186,98,59,98,232,12,255,0,228,67,143,126,152,227,
+61,120,137,166,181,206,90,234,64,49,255,0,63,131,143,204,156,245,237,211,158,15,4,128,77,228,183,95,46,117,7,140,11,178,167,158,203,254,142,79,29,6,113,223,208,26,97,138,76,124,162,241,179,142,183,96,
+0,120,24,63,232,160,254,88,207,234,99,51,90,156,129,168,74,0,199,31,104,126,63,76,244,238,58,126,149,11,92,217,103,107,93,202,195,24,36,221,12,115,232,8,36,231,184,33,70,15,78,132,128,76,97,156,156,21,
+186,207,253,125,33,0,15,127,41,123,245,39,166,121,246,71,73,83,171,94,1,158,191,104,82,114,9,227,33,6,0,200,233,215,214,160,223,167,28,98,118,39,24,249,167,39,159,193,113,236,114,58,231,142,1,165,206,
+156,113,153,138,145,143,249,110,66,242,122,242,160,158,58,227,177,205,0,75,153,0,192,150,244,113,131,155,140,126,155,48,57,62,164,117,237,156,40,119,255,0,158,247,131,142,113,119,17,35,167,102,32,14,58,
+230,160,11,166,231,6,120,152,114,50,92,19,223,60,237,35,183,3,60,227,20,236,233,163,129,32,192,232,160,140,123,243,206,63,1,192,245,198,40,2,93,238,50,68,247,103,7,189,229,184,57,60,242,10,145,140,147,
+252,88,60,142,188,81,80,19,166,19,203,145,156,244,5,198,120,7,24,136,246,238,79,80,61,193,40,3,222,28,67,234,224,245,27,103,80,15,24,7,11,26,99,156,231,215,166,123,212,97,160,201,203,74,61,54,220,198,
+120,28,103,230,39,29,127,81,205,93,251,41,233,230,91,143,124,228,122,231,151,220,115,208,112,58,254,81,253,144,240,68,246,156,123,242,6,125,156,1,244,39,24,62,244,1,91,48,228,2,247,31,240,27,152,65,25,
+231,161,4,142,113,211,176,60,115,77,38,219,146,90,243,131,140,9,237,241,159,67,132,28,224,227,142,72,252,9,181,246,66,65,221,53,159,61,129,64,79,126,173,41,198,59,231,39,189,39,217,56,225,237,136,233,
+195,197,232,58,231,140,140,247,224,250,208,5,34,150,236,1,2,240,244,255,0,150,150,204,15,183,221,82,191,92,115,192,207,106,141,161,140,30,22,239,56,233,139,115,238,123,143,78,70,123,125,13,105,27,102,
+232,94,220,224,100,29,214,216,201,237,215,143,124,14,58,250,229,159,100,207,36,219,103,35,25,54,231,140,250,5,35,211,36,99,219,167,32,25,155,63,184,102,31,239,67,106,125,142,73,147,32,159,124,115,158,
+253,28,35,115,198,249,113,232,33,179,35,233,205,199,35,57,199,160,199,227,112,218,1,247,141,153,236,126,85,99,143,112,16,123,241,219,25,35,213,143,104,173,218,209,177,233,26,112,120,35,145,25,231,215,
+28,246,246,160,10,165,8,200,5,200,29,115,21,152,3,175,95,244,162,123,116,0,245,193,192,165,17,72,120,87,198,122,3,13,160,244,61,238,64,227,156,253,50,1,169,141,179,140,4,138,211,211,59,73,56,250,4,253,
+50,79,79,64,41,166,41,120,200,129,79,251,42,228,254,4,174,61,57,3,168,232,59,128,52,195,39,251,57,207,4,195,98,79,175,81,57,61,135,67,215,158,212,211,29,199,64,33,39,175,252,122,90,183,94,14,113,118,190,
+128,131,140,30,120,197,72,98,112,57,32,96,117,199,0,250,252,200,48,58,122,142,217,205,51,105,0,229,151,57,224,109,32,127,227,163,158,49,237,223,165,0,52,45,224,36,4,183,227,7,45,105,108,51,249,94,1,232,
+57,7,174,70,121,204,138,111,7,39,236,163,156,255,0,199,173,176,25,227,156,253,180,183,110,224,253,57,161,137,31,199,23,221,255,0,158,147,140,227,144,78,0,28,241,220,251,228,211,60,193,198,102,133,113,
+158,68,151,0,247,200,226,67,235,232,121,29,58,228,2,194,188,202,114,198,212,159,107,123,110,58,231,4,222,28,227,60,242,49,215,147,210,67,44,184,25,242,57,236,33,181,7,62,231,206,108,247,239,129,199,190,
+40,249,140,8,43,115,18,158,188,79,54,63,13,204,63,153,60,159,74,127,159,46,121,185,66,71,253,61,16,57,199,253,52,250,244,233,237,154,0,180,103,149,112,3,91,158,120,6,27,79,115,212,205,215,252,70,113,158,
+30,183,147,130,2,181,168,7,159,185,167,183,57,228,227,205,200,239,198,51,236,106,178,220,202,49,254,146,6,51,210,234,92,99,140,2,23,104,61,113,235,207,57,192,53,47,218,92,253,235,175,110,110,164,39,183,
+115,130,15,97,235,239,154,0,178,46,231,32,157,214,231,142,63,209,236,70,79,124,129,55,28,122,15,126,244,27,185,255,0,231,173,178,241,255,0,62,246,192,241,142,56,126,71,108,14,189,176,69,86,243,211,24,
+55,1,143,124,222,21,0,14,15,12,196,227,233,156,117,244,163,205,83,210,107,124,113,193,212,25,79,126,14,20,253,121,28,240,115,214,128,44,253,178,66,127,214,219,100,0,120,142,17,158,195,140,115,159,76,146,
+57,60,230,156,110,220,255,0,203,104,7,166,60,129,245,24,100,39,32,231,140,116,245,3,53,88,54,254,60,216,73,61,255,0,180,219,31,66,26,34,15,126,227,245,169,182,244,249,224,39,254,191,213,207,78,70,74,32,
+7,39,56,201,232,120,160,7,125,166,92,100,207,7,96,51,228,129,143,111,221,145,147,237,143,196,81,246,153,207,221,154,223,158,78,124,158,135,191,48,19,235,211,7,241,166,226,60,100,155,115,235,139,213,207,
+92,246,142,65,158,185,252,77,40,142,223,36,129,110,65,232,13,217,57,234,120,30,90,242,121,232,15,30,249,20,0,158,125,207,67,61,177,201,227,15,108,159,250,21,160,63,128,35,174,1,166,180,147,187,5,15,14,
+114,121,91,139,33,219,57,255,0,143,126,189,122,244,233,193,205,79,229,218,147,145,21,184,35,29,46,177,248,144,99,108,158,51,144,57,244,25,228,242,173,206,54,164,3,147,247,174,71,228,115,18,116,233,147,
+145,239,158,128,16,19,63,66,241,241,158,60,203,118,231,36,231,229,131,7,140,243,207,248,2,41,143,63,186,192,35,254,90,218,131,140,228,240,214,248,24,61,243,236,61,165,41,10,158,86,19,207,33,110,160,4,
+122,31,153,9,0,253,9,206,57,3,32,184,121,3,28,70,163,57,226,226,212,145,233,255,0,46,196,158,221,243,252,168,1,139,4,199,130,209,129,130,115,246,155,37,61,122,96,196,1,237,158,253,58,129,154,120,182,126,
+238,128,30,164,92,217,115,235,214,63,174,122,227,176,197,78,30,0,51,230,113,128,112,178,219,55,167,111,179,14,56,60,99,175,28,243,151,137,97,198,126,102,193,236,109,1,237,208,253,159,241,254,164,244,0,
+131,236,195,169,151,61,51,254,149,102,121,238,127,213,131,207,78,252,114,15,122,119,217,226,29,101,60,28,140,92,88,49,207,209,192,255,0,30,131,29,106,67,52,67,254,122,116,236,246,124,119,255,0,159,124,
+246,252,232,243,80,141,193,231,231,253,187,63,80,113,255,0,30,195,235,215,212,231,158,64,21,97,139,254,123,74,57,207,250,221,56,28,117,206,54,254,61,71,245,169,132,80,17,204,178,147,216,249,246,4,31,94,
+221,115,244,28,118,233,81,111,32,147,186,224,228,30,76,214,35,215,251,208,244,235,211,140,96,114,49,134,22,232,73,152,109,231,31,105,176,30,253,60,140,245,57,192,247,226,128,47,36,48,175,89,72,3,57,221,
+37,177,31,92,40,35,255,0,175,233,82,20,182,4,98,97,145,234,240,142,157,49,136,207,63,253,99,158,152,162,179,122,52,132,130,58,220,217,30,163,24,201,61,207,64,23,183,210,165,76,54,70,215,25,236,110,44,
+143,227,193,95,110,160,147,238,120,160,11,69,224,65,147,32,60,17,133,158,19,187,254,249,139,60,250,116,206,112,15,118,25,147,179,33,29,112,39,92,231,140,117,183,32,144,6,7,81,201,227,142,16,41,56,228,
+241,233,113,107,142,61,66,176,206,122,246,207,78,153,52,223,36,147,194,150,207,59,188,200,143,24,199,5,101,28,116,236,70,58,28,80,1,246,132,255,0,107,62,190,106,113,233,144,108,178,61,191,44,12,114,225,
+113,232,195,158,121,184,141,79,92,255,0,207,152,61,178,125,14,104,48,202,71,8,71,24,207,154,7,113,217,110,121,239,140,116,234,125,221,228,57,0,22,92,116,57,105,143,78,231,19,159,108,242,122,123,96,0,63,
+207,118,3,11,25,29,71,250,72,39,219,59,109,201,199,76,224,115,207,92,19,74,205,49,228,194,135,62,183,18,176,56,235,192,182,92,99,131,215,212,246,230,49,109,180,240,201,201,229,149,165,25,199,108,44,167,
+233,237,233,233,58,219,72,57,89,85,112,58,25,103,234,59,224,56,231,168,239,207,126,40,2,34,38,28,173,188,89,4,117,184,152,31,126,176,100,14,70,48,127,157,40,51,28,102,218,48,70,56,243,229,98,56,193,224,
+91,176,232,120,231,143,113,86,214,25,191,231,184,247,62,117,201,227,176,27,102,25,201,61,112,61,59,230,165,251,51,156,19,56,232,113,153,110,178,6,121,233,184,254,190,184,200,160,10,67,207,237,110,156,
+255,0,211,118,235,211,128,45,251,99,233,193,226,164,218,236,114,96,232,127,231,164,135,29,58,109,132,99,212,113,211,147,237,99,201,11,199,158,170,15,253,52,189,60,241,220,66,220,113,159,203,32,12,229,
+190,94,63,229,176,61,176,175,124,70,113,199,6,33,143,110,58,30,15,114,0,4,10,6,228,227,208,59,28,1,238,99,30,188,129,215,235,147,83,47,151,143,151,159,193,155,7,169,4,133,192,244,224,0,122,140,142,106,
+1,27,103,62,100,152,237,251,219,145,159,251,234,32,61,49,206,9,237,158,68,200,164,145,243,74,71,25,197,196,156,243,239,27,19,239,244,201,197,0,57,88,103,6,34,125,62,86,60,243,158,2,30,222,153,254,180,
+121,235,199,200,170,7,96,135,39,234,77,171,31,175,35,181,76,34,12,113,153,65,239,254,145,158,188,224,131,26,227,182,121,247,250,74,177,51,28,42,200,61,115,114,0,231,215,228,35,28,142,191,202,128,43,253,
+166,63,239,5,224,28,97,84,12,250,159,179,99,60,119,62,180,45,218,14,60,195,219,7,112,63,150,34,83,252,248,227,25,34,173,152,164,81,147,30,225,156,243,112,188,15,193,23,28,142,164,3,142,15,173,33,10,58,
+196,153,255,0,175,147,248,242,7,190,127,19,216,80,4,34,236,140,17,33,61,241,242,253,121,204,124,115,215,183,92,210,155,146,252,229,71,177,17,243,212,231,2,60,3,207,183,7,169,226,164,5,1,200,142,44,158,
+126,91,128,15,166,122,145,199,229,249,10,153,118,96,19,176,100,143,249,121,128,19,158,163,37,193,252,199,211,56,197,0,83,243,36,207,203,36,96,246,194,196,115,206,122,149,3,234,112,15,127,66,23,204,185,
+36,124,209,227,190,18,219,39,212,244,36,28,224,228,30,7,183,2,239,151,25,57,218,20,14,120,186,182,97,219,184,144,116,32,131,156,145,220,113,202,132,133,70,124,200,198,120,230,226,18,126,163,19,231,30,
+188,115,237,214,128,41,249,151,32,17,193,7,248,182,219,140,30,59,146,56,250,16,56,244,52,171,44,224,125,245,232,127,231,220,224,243,233,40,28,30,195,242,205,90,38,17,192,146,18,48,78,90,72,248,56,60,241,
+51,116,192,199,63,135,172,102,88,84,252,179,219,228,1,156,96,224,224,28,3,191,215,131,146,62,128,142,0,32,38,103,255,0,150,146,103,208,121,56,207,24,24,19,142,61,50,0,227,175,122,65,29,195,28,146,73,29,
+152,91,143,192,255,0,165,12,254,126,226,159,246,168,198,0,186,133,122,28,3,17,207,212,51,231,167,227,198,59,156,39,219,160,239,122,128,244,3,203,132,227,144,58,25,6,125,57,231,56,250,208,3,132,119,11,
+252,33,136,198,56,183,206,113,147,255,0,47,76,72,63,143,244,160,249,248,63,187,201,231,143,46,28,140,116,224,76,126,153,224,244,199,29,88,215,64,143,146,244,103,251,223,103,180,60,242,7,25,114,126,189,
+61,58,211,12,237,142,111,80,231,131,254,141,109,245,32,226,49,211,30,160,14,249,235,64,18,19,42,243,229,156,250,5,3,35,161,193,19,147,199,78,157,70,49,200,163,205,147,144,97,102,32,3,203,56,56,25,207,
+38,78,252,118,61,126,181,81,165,114,14,219,197,3,251,194,8,65,250,116,3,245,253,72,168,76,151,0,146,53,30,61,60,136,72,207,95,66,14,48,15,99,207,79,64,13,31,180,55,79,178,28,247,253,252,163,208,115,135,
+30,135,208,103,160,28,211,76,211,156,149,128,142,157,39,144,156,143,82,119,118,207,67,158,113,84,60,201,142,51,120,27,60,100,90,219,118,227,254,121,31,115,156,246,239,221,8,153,186,220,174,222,114,198,
+218,212,228,253,60,142,7,190,65,36,253,69,0,94,47,114,195,254,61,217,185,239,44,135,7,158,132,128,7,108,247,237,239,81,145,114,78,126,204,192,251,150,56,30,217,252,62,191,134,77,66,135,143,244,149,239,
+201,180,181,246,227,253,81,245,207,231,64,133,15,252,188,35,103,143,248,242,177,36,254,34,223,56,29,198,115,154,0,178,4,192,227,236,164,158,115,150,151,24,61,240,161,129,235,220,31,169,166,159,48,156,
+125,151,233,204,128,129,199,253,59,231,174,122,156,99,142,59,64,97,140,28,25,34,56,32,127,199,173,160,25,255,0,107,54,196,228,31,97,147,235,145,77,43,2,142,102,139,190,236,219,192,190,231,238,216,244,
+35,175,56,192,227,56,205,0,74,208,72,78,69,184,193,192,198,247,4,126,118,248,199,108,227,243,165,242,37,29,33,80,79,92,200,196,243,211,147,110,73,28,127,179,208,246,25,168,140,182,120,33,165,139,142,121,
+137,72,39,25,255,0,159,34,123,119,28,112,123,211,24,216,156,22,123,124,30,230,0,78,126,162,196,103,175,78,128,231,185,160,11,62,75,140,31,38,60,242,73,36,99,28,140,243,30,114,57,233,250,244,12,104,1,198,
+244,183,233,201,218,24,227,161,200,42,122,246,56,57,35,183,25,172,23,78,206,9,181,227,191,217,137,24,227,254,157,70,120,192,224,14,122,113,72,6,150,15,222,181,7,166,124,137,63,50,22,215,36,12,112,57,62,
+221,40,2,118,182,143,60,164,44,61,0,64,14,127,224,11,210,153,246,88,72,201,130,219,140,115,228,198,253,114,1,201,67,199,95,76,254,57,17,17,165,54,65,185,182,92,118,251,60,160,158,156,12,91,244,224,99,
+142,222,244,162,61,63,35,23,118,192,127,180,179,41,206,120,7,253,28,241,200,232,123,158,132,16,0,38,22,208,103,136,108,242,79,39,201,64,122,14,184,140,158,51,207,57,199,166,42,65,4,67,63,232,246,64,30,
+191,184,136,231,56,224,157,152,247,199,182,56,60,213,102,91,46,71,218,160,110,152,195,92,245,25,224,5,183,200,250,227,185,25,0,243,22,108,15,89,227,255,0,201,210,15,212,121,35,39,240,30,189,104,2,231,
+145,30,72,242,109,51,216,253,153,15,126,219,10,156,99,176,61,253,51,131,203,128,31,154,43,94,249,197,161,28,241,140,126,244,1,142,125,122,15,198,136,22,35,165,194,228,241,133,23,131,233,141,219,114,6,
+7,4,142,194,143,38,201,249,23,0,99,39,149,148,19,234,1,103,235,215,212,245,244,197,0,93,41,7,104,237,215,254,221,15,97,235,231,143,108,227,31,174,105,12,48,100,101,34,247,197,180,156,158,184,192,185,4,
+117,233,158,6,73,237,85,86,43,101,198,46,164,207,0,109,145,199,30,156,73,140,118,193,57,0,14,212,252,192,160,143,181,55,182,103,113,249,252,205,233,253,58,208,4,222,76,57,255,0,86,8,61,197,164,167,39,
+185,230,228,247,236,57,61,189,229,16,195,145,251,160,121,231,125,141,193,232,64,56,197,200,235,219,182,58,112,50,106,171,192,65,255,0,73,102,3,174,39,147,111,126,219,129,250,251,244,165,243,33,24,197,
+198,126,183,18,168,3,232,37,235,206,71,25,231,156,10,0,208,6,217,48,26,48,125,214,206,236,3,211,32,109,184,56,63,94,69,63,204,183,31,118,39,0,224,97,109,174,216,254,183,68,14,61,113,223,240,206,23,49,
+224,15,56,15,92,75,51,30,6,58,239,239,235,144,78,51,214,164,91,132,99,254,177,184,224,16,210,144,123,243,153,135,7,25,57,7,167,76,1,64,23,252,216,148,127,171,144,15,65,111,56,245,255,0,166,228,30,252,
+114,105,124,248,207,68,147,63,245,198,127,94,191,235,8,252,7,233,84,252,212,234,38,97,129,253,233,78,59,228,254,245,185,207,25,227,219,175,15,15,144,54,206,56,238,197,198,15,253,246,125,187,122,123,80,
+5,141,251,185,11,33,61,191,113,35,96,30,195,39,39,63,137,39,0,158,212,236,176,234,31,211,230,180,126,61,185,70,56,247,28,84,2,71,94,4,200,71,66,192,57,250,117,235,233,239,239,79,89,184,255,0,92,128,241,
+146,109,164,98,71,224,156,117,239,206,113,207,92,128,75,158,112,22,76,255,0,215,166,61,129,249,161,7,182,121,36,116,4,243,144,245,102,28,109,97,156,243,246,53,39,166,58,253,159,57,227,235,248,84,98,92,
+168,31,107,143,160,224,89,202,79,254,139,32,18,123,30,253,50,72,169,4,202,78,13,200,32,112,79,216,223,31,250,0,207,226,48,126,153,160,7,124,237,218,94,71,81,109,201,193,60,224,160,235,140,99,3,129,211,
+165,41,138,70,192,86,185,4,119,16,17,142,132,14,16,0,121,245,250,144,56,160,78,135,131,114,216,201,31,241,233,34,241,235,196,100,99,24,235,131,208,14,152,169,209,144,128,68,236,84,28,18,109,165,28,113,
+200,59,0,61,251,114,125,5,0,68,33,157,112,166,107,144,59,101,63,194,50,1,193,235,216,245,230,158,34,108,115,52,231,177,2,57,91,4,140,31,187,24,25,207,242,232,51,146,242,241,119,184,33,135,66,45,95,212,
+224,228,198,73,227,175,81,219,36,115,77,19,198,189,110,213,125,140,46,163,56,199,252,240,227,183,126,72,201,20,0,171,110,121,249,238,70,61,96,152,126,132,175,225,145,223,182,105,226,56,151,171,207,147,
+234,147,3,145,193,57,14,57,201,62,184,28,117,60,52,205,25,206,111,23,147,158,4,139,158,217,10,45,253,49,249,142,221,19,205,182,36,6,184,66,49,207,18,231,36,114,120,183,233,158,222,159,133,0,63,247,65,
+128,6,115,140,28,129,54,65,237,159,156,16,63,17,211,56,230,156,38,136,103,230,159,7,212,220,30,254,130,114,70,58,128,71,96,13,70,102,180,81,129,117,25,207,80,36,185,65,244,199,217,207,177,231,142,189,
+243,73,230,217,227,45,44,71,235,60,153,30,249,251,63,24,233,200,232,56,61,232,2,192,185,183,57,204,147,14,127,191,120,184,227,159,185,43,49,250,113,144,120,35,129,75,246,168,6,54,180,131,25,231,206,212,
+65,32,231,25,195,28,117,231,220,224,158,245,87,125,155,14,36,183,35,211,207,147,215,161,197,182,122,227,165,27,172,136,233,108,74,242,127,126,78,113,236,214,234,61,185,24,199,94,180,1,49,189,135,142,84,
+255,0,192,245,3,142,221,216,254,61,72,199,106,107,94,219,158,137,19,156,17,247,111,179,140,231,25,224,99,4,240,51,212,250,156,192,101,180,57,59,160,80,51,200,150,33,142,123,110,128,128,51,232,59,158,64,
+168,195,91,49,255,0,89,15,167,252,124,68,58,1,201,219,108,48,79,229,207,189,0,76,215,112,228,129,2,31,114,183,161,189,198,74,159,110,253,168,23,113,114,60,164,7,182,26,236,145,159,85,48,156,143,174,50,
+58,15,72,194,219,182,6,232,143,95,249,111,25,31,159,150,61,185,36,224,246,199,21,33,130,32,65,196,93,0,199,157,1,244,193,3,203,92,14,121,231,161,206,70,40,1,141,121,26,12,170,227,61,8,51,2,15,29,8,183,
+193,239,158,59,224,244,229,203,122,204,120,200,237,146,247,29,63,11,81,206,15,36,19,236,41,86,4,207,240,12,246,73,45,79,61,71,93,167,30,167,35,28,142,42,69,182,220,120,228,118,43,53,145,227,158,205,42,
+156,12,247,233,233,232,0,211,114,228,228,201,145,208,145,246,146,63,54,182,250,118,57,199,64,120,0,152,31,249,104,184,25,195,121,114,18,51,236,214,216,39,174,9,227,175,169,169,197,155,1,192,148,142,48,
+4,150,99,240,24,144,142,125,64,198,105,194,198,227,130,145,221,224,158,162,107,62,185,255,0,174,138,58,99,29,63,42,0,166,210,198,70,4,128,16,114,118,199,10,147,245,38,12,245,61,14,9,199,61,49,64,33,185,
+50,177,30,138,45,215,161,235,254,163,211,57,231,182,79,74,186,108,110,152,129,139,211,236,101,181,198,59,242,46,115,208,140,112,61,72,244,112,211,175,143,32,221,128,59,180,240,245,237,140,79,128,122,247,
+207,225,138,0,167,132,201,204,140,56,199,205,44,35,175,83,128,171,215,166,70,122,140,210,8,161,60,139,133,29,191,227,225,65,25,199,92,178,243,158,252,123,115,87,134,157,120,71,204,110,115,207,73,226,206,
+59,231,116,224,114,120,56,244,201,226,154,108,46,70,65,12,127,222,150,38,61,7,164,153,232,127,78,9,61,64,41,24,160,201,31,105,133,143,188,234,49,211,57,30,114,16,71,111,231,215,15,16,91,55,6,123,113,207,
+95,182,128,84,3,200,192,156,140,115,208,245,61,27,184,179,246,41,243,202,19,237,186,48,15,174,7,152,49,219,156,122,118,163,236,114,99,33,29,122,116,154,48,7,215,231,61,189,9,239,205,0,64,214,150,156,159,
+54,3,255,0,111,136,121,227,39,45,58,227,63,143,231,80,155,91,101,39,230,183,39,174,126,219,6,72,206,8,35,206,57,32,156,227,56,28,131,232,45,155,41,8,63,43,143,251,108,132,119,31,194,164,131,248,246,60,
+244,166,11,73,1,35,5,143,3,153,148,227,211,239,17,232,120,60,99,168,232,104,2,169,183,131,4,151,139,142,255,0,110,132,14,185,237,55,61,64,227,147,238,13,70,99,143,144,26,50,61,181,4,29,253,166,108,158,
+123,99,31,141,93,107,89,71,36,109,231,130,103,182,108,30,112,0,102,35,28,127,46,163,138,97,130,110,191,187,227,28,155,139,95,254,54,228,251,240,15,92,17,64,21,64,183,3,230,81,206,49,183,80,32,125,14,28,
+245,56,232,127,60,10,136,180,67,128,9,56,227,253,56,183,32,142,62,105,56,60,117,201,231,25,28,102,174,24,228,95,189,229,158,73,63,191,183,24,39,175,205,228,144,113,238,15,7,214,162,59,151,7,98,103,140,
+226,120,50,120,249,120,49,12,116,235,156,158,196,80,5,83,46,220,225,28,117,231,237,135,142,123,254,247,159,195,219,182,41,159,104,39,238,163,123,145,124,221,125,72,19,99,39,241,57,61,122,98,118,50,56,
+198,9,25,231,100,241,131,140,250,136,199,63,200,131,233,80,178,200,189,86,98,63,235,237,73,207,61,176,188,245,61,190,180,0,158,123,244,30,111,28,159,244,166,126,190,184,152,103,241,198,112,49,142,42,6,
+153,250,98,64,61,12,173,201,235,193,51,31,83,147,248,12,118,113,243,121,194,220,96,17,145,246,149,61,135,92,54,113,211,191,31,141,70,76,227,157,147,15,251,123,198,73,25,201,62,96,199,64,15,29,115,211,
+173,0,33,149,200,10,22,64,78,6,68,204,196,117,228,254,252,28,251,130,123,15,106,102,231,231,253,107,28,241,153,216,31,195,253,32,30,189,6,115,220,115,154,113,146,113,192,142,102,0,114,124,240,56,193,207,
+241,49,200,200,61,58,241,80,249,178,2,78,201,71,28,31,53,143,184,251,141,156,231,219,35,218,128,36,196,199,254,88,177,237,204,248,36,242,1,39,237,36,156,142,135,118,79,39,174,8,105,89,212,101,96,112,121,
+255,0,150,204,123,115,255,0,47,67,235,237,215,57,197,66,103,207,105,65,199,83,37,217,57,245,56,148,116,207,56,224,241,207,164,15,43,140,133,50,250,140,205,116,188,2,113,201,184,39,158,156,224,113,222,
+128,39,103,152,12,16,235,201,29,79,32,131,158,126,216,8,200,3,147,211,223,24,49,23,147,163,51,142,248,18,162,144,51,208,150,184,57,4,122,243,207,83,210,171,153,229,25,59,228,30,128,92,92,49,224,140,156,
+121,195,60,99,158,1,252,41,166,119,0,124,196,227,159,153,238,127,44,153,113,248,125,121,192,160,9,9,124,228,121,199,158,162,91,118,30,188,230,110,131,220,96,14,8,232,68,15,36,163,56,91,142,224,18,240,
+243,143,66,36,35,24,35,166,113,233,72,110,165,7,134,143,29,56,51,30,185,234,76,220,122,140,142,61,51,154,129,238,38,108,228,166,59,96,76,220,142,167,151,63,152,32,116,245,160,0,201,56,232,146,17,201,193,
+146,33,199,35,159,152,150,244,199,175,210,162,107,139,142,203,47,124,128,195,25,60,28,20,228,129,142,248,245,35,129,150,73,59,129,200,67,244,134,66,120,227,143,152,159,174,113,219,214,170,201,112,199,
+130,131,25,255,0,158,50,175,175,25,220,61,187,28,242,15,25,160,9,158,233,192,32,219,74,221,178,88,30,61,122,117,30,231,158,213,77,239,115,130,97,156,116,207,49,131,207,185,101,111,78,227,158,58,98,161,
+105,73,251,160,12,122,197,56,233,234,124,220,115,200,229,114,115,199,35,154,142,210,28,252,160,243,201,88,100,62,185,224,147,159,161,61,65,24,227,128,11,45,120,153,193,73,71,60,7,120,71,39,60,115,55,61,
+73,193,245,21,31,218,20,253,196,144,243,193,223,111,180,147,244,184,24,199,126,59,145,158,42,147,76,224,224,40,233,212,219,131,235,198,9,83,199,30,167,3,140,84,45,33,96,50,6,79,0,125,147,183,168,193,57,
+30,188,117,57,60,80,5,246,159,140,24,229,57,200,225,208,140,156,246,19,169,99,245,227,158,181,9,124,130,89,92,99,158,235,142,56,201,23,93,49,207,211,233,89,204,75,228,99,61,121,75,100,60,113,234,7,32,
+112,7,36,1,215,189,66,200,57,5,238,83,32,96,121,8,58,247,224,228,250,115,198,51,210,128,52,26,80,79,241,117,35,230,156,169,56,244,38,232,99,220,96,142,164,15,72,154,80,6,2,18,125,174,142,58,122,155,156,
+144,58,14,69,103,121,104,51,153,166,235,252,81,34,243,245,36,117,3,175,227,207,20,52,72,113,251,246,28,144,114,34,83,215,182,88,228,247,207,61,113,156,80,5,166,149,27,230,101,115,142,72,251,81,235,236,
+13,234,247,3,0,250,12,117,230,35,44,71,180,171,131,159,248,250,141,122,243,222,252,156,117,237,158,63,56,60,136,123,222,200,50,59,181,183,255,0,23,159,110,114,122,243,158,65,228,66,223,243,16,228,14,51,
+228,3,158,115,130,114,9,199,78,156,242,112,122,128,74,198,54,249,129,144,147,215,55,131,63,78,47,36,29,56,227,62,128,142,149,11,162,100,229,143,174,60,242,78,122,240,21,219,175,83,234,121,60,129,77,48,
+90,30,127,180,88,28,114,3,192,58,112,115,140,12,118,246,199,24,235,77,251,53,153,63,242,17,36,140,113,231,70,185,227,190,222,50,115,199,7,39,174,40,1,143,26,117,7,119,179,75,41,231,128,63,133,135,61,6,
+123,231,219,16,152,144,228,133,64,71,39,153,200,198,15,31,44,99,62,190,158,158,242,155,123,48,113,246,169,8,201,255,0,151,128,122,158,196,129,140,245,29,121,224,99,53,3,219,217,28,145,117,40,62,166,225,
+84,14,189,15,152,155,71,61,243,252,232,1,173,25,92,157,177,100,116,7,237,0,14,167,128,34,96,7,182,122,83,8,200,203,36,36,156,140,136,174,95,175,124,139,126,195,142,70,120,60,156,211,13,189,160,207,250,
+74,145,211,6,248,243,244,219,49,231,219,190,105,141,5,145,254,56,155,35,189,241,36,126,11,40,39,241,31,134,104,1,228,176,236,131,146,51,246,105,193,199,28,100,219,231,183,78,49,215,176,20,195,51,14,20,
+103,220,91,207,212,123,136,1,237,215,223,214,161,54,214,64,145,230,68,6,122,27,169,51,140,115,255,0,45,73,28,240,48,51,159,213,134,222,215,28,60,56,254,35,246,217,241,143,76,7,57,60,117,236,40,2,86,158,
+114,79,202,185,235,131,29,200,250,228,125,148,240,48,114,7,60,103,166,106,54,154,233,72,249,147,140,127,203,59,145,142,63,235,135,25,233,200,246,199,3,16,180,80,169,206,32,99,144,63,227,238,225,143,183,
+44,122,125,57,35,182,9,196,111,228,130,62,72,15,210,105,152,228,113,201,82,71,76,31,127,82,51,64,19,155,169,193,31,42,100,244,192,186,81,198,121,57,143,110,127,145,35,25,28,8,141,229,208,251,184,97,156,
+112,210,142,61,137,81,180,16,125,57,244,197,86,116,135,28,71,1,32,127,12,179,231,183,95,155,143,92,96,31,165,64,35,140,242,86,220,117,234,247,57,199,28,231,113,235,199,175,52,1,109,175,174,123,40,39,190,
+233,36,3,240,200,35,39,31,137,235,147,81,181,229,193,0,236,7,191,250,245,36,251,0,98,244,245,61,179,142,181,6,16,127,4,7,168,226,107,144,127,60,17,140,125,120,198,122,156,63,116,124,102,24,248,28,15,54,
+236,242,61,254,204,71,76,113,147,238,120,160,6,61,245,208,57,8,227,215,18,71,237,234,54,244,3,245,21,17,212,110,184,4,75,211,179,91,182,7,224,65,207,60,246,7,210,164,44,185,207,217,215,142,152,154,85,
+56,227,185,180,61,185,235,198,120,35,138,105,153,71,203,228,116,231,31,107,124,147,233,159,177,113,142,153,255,0,245,80,5,115,123,112,196,252,178,125,27,202,235,245,221,200,224,16,57,31,129,197,39,218,
+101,39,44,25,125,137,128,131,158,51,141,195,160,232,72,250,227,20,230,153,78,118,219,150,235,214,242,64,49,199,111,177,112,59,117,239,211,160,168,140,190,150,133,114,56,198,160,235,146,120,56,6,200,19,
+233,199,255,0,168,1,126,211,38,120,86,110,14,2,164,24,29,57,251,204,122,125,56,166,155,139,146,70,209,32,24,198,12,86,223,252,88,201,254,124,103,221,9,114,112,182,108,114,56,39,81,148,142,123,99,236,92,
+242,7,167,245,164,217,47,241,90,71,156,224,103,80,151,167,191,250,38,64,252,191,30,40,2,111,62,232,12,145,47,212,69,8,237,219,231,31,134,51,245,206,64,4,247,39,31,189,184,4,117,2,36,24,4,142,121,118,30,
+184,39,142,185,199,67,24,86,193,255,0,66,76,140,17,183,80,144,31,214,207,56,245,231,142,184,235,150,178,51,30,109,35,246,255,0,78,152,144,59,228,249,11,199,176,254,188,0,79,230,92,100,19,45,234,142,112,
+126,207,11,55,32,100,99,120,224,251,100,96,26,144,77,51,30,39,212,9,228,0,109,173,199,112,115,134,147,39,24,234,61,71,106,160,209,99,145,107,18,250,226,245,193,235,219,116,121,56,60,30,7,230,50,99,11,
+32,255,0,150,17,3,156,100,221,72,73,193,31,119,17,142,253,185,247,4,116,0,216,223,112,113,182,123,240,120,224,193,16,200,238,48,172,195,223,167,57,247,52,111,184,231,253,38,244,3,219,100,71,57,60,140,
+5,231,185,233,250,115,89,5,110,27,33,34,132,228,116,243,38,235,219,170,2,125,206,123,251,226,154,177,223,117,88,173,212,115,200,243,216,140,1,198,50,51,253,125,77,0,109,49,148,224,125,175,80,39,174,4,
+49,19,143,94,163,191,4,96,126,98,144,25,199,91,205,68,118,0,196,157,127,8,219,24,227,7,208,214,80,107,208,57,54,249,193,24,217,47,29,78,120,147,118,6,115,215,131,237,71,159,118,58,201,2,243,217,102,200,
+244,56,50,12,115,216,99,167,113,64,26,219,164,61,111,47,155,254,0,122,241,255,0,76,58,245,235,234,59,12,81,89,34,230,236,15,245,144,231,174,20,202,126,188,23,3,243,207,215,165,20,1,245,119,218,101,198,
+87,200,198,79,86,145,201,236,120,23,64,224,127,187,219,35,140,213,118,186,159,39,229,131,239,99,238,205,219,158,64,156,159,169,206,13,48,194,135,35,118,211,156,157,226,223,29,121,255,0,150,11,143,83,130,
+56,24,247,168,76,42,57,89,80,28,103,1,33,227,191,247,48,50,61,15,110,115,206,0,37,105,229,97,130,150,199,253,225,115,159,80,63,215,156,126,56,168,26,103,61,98,180,92,122,44,231,167,82,115,40,36,251,12,
+14,153,166,145,183,254,90,198,125,136,139,61,65,62,222,185,56,30,249,205,11,50,174,114,217,193,206,86,72,7,191,25,233,239,159,202,128,15,48,30,162,1,206,78,33,185,29,8,199,91,145,140,100,103,129,156,231,
+7,187,124,216,251,173,191,94,134,25,191,50,69,217,39,4,143,78,123,14,5,56,221,227,149,146,65,219,229,154,48,123,30,187,186,147,223,142,115,212,10,103,219,137,235,45,199,213,174,33,231,167,171,174,51,142,
+223,160,160,0,201,14,55,31,178,228,2,62,236,224,241,212,227,237,67,158,223,129,207,36,84,5,227,206,67,91,0,78,64,242,164,96,56,236,76,204,125,123,247,224,85,159,237,2,48,3,206,120,61,46,45,207,184,255,
+0,150,199,249,241,252,144,234,44,57,87,184,232,120,55,54,228,96,231,166,102,235,233,243,28,30,73,4,154,0,160,237,17,234,209,251,109,137,193,32,227,166,103,92,224,115,130,122,118,226,161,34,22,25,243,0,
+207,7,17,0,79,97,247,174,142,57,233,197,106,13,74,108,100,9,241,140,115,115,102,61,63,189,57,94,157,207,127,90,83,125,112,195,63,190,193,228,41,189,176,32,126,31,106,83,206,50,58,115,64,24,194,8,73,63,
+191,32,128,49,196,89,236,115,131,117,159,94,57,237,248,141,108,8,24,159,158,121,17,219,191,64,79,63,190,60,12,247,35,235,218,181,254,223,62,126,236,216,200,207,250,85,143,62,252,78,113,212,231,25,244,
+232,49,79,91,198,110,26,43,134,35,0,109,187,181,29,51,211,239,103,240,198,15,96,113,128,12,95,37,215,4,94,48,227,156,219,66,71,208,109,152,245,192,24,25,231,191,160,18,126,171,116,78,0,25,242,237,211,
+56,60,240,84,145,146,7,57,207,173,110,137,153,129,38,59,175,169,154,38,62,156,20,139,39,159,83,236,79,52,209,185,137,59,39,24,35,4,148,56,29,179,251,130,73,245,57,0,31,92,3,64,24,227,237,99,0,76,231,31,
+194,12,67,62,217,9,235,232,122,241,131,192,167,102,244,30,30,92,246,27,163,35,7,177,194,100,117,224,125,9,173,177,11,55,62,83,176,245,8,51,211,215,203,80,104,251,35,30,12,50,145,145,212,168,7,140,224,
+126,232,19,252,129,227,183,0,25,43,37,218,253,233,95,158,128,156,17,211,161,85,76,143,192,245,252,166,89,27,63,52,146,147,235,184,159,195,239,174,120,227,146,126,157,142,136,179,78,51,110,114,123,29,128,
+117,247,64,126,163,175,174,71,1,223,100,64,56,182,152,28,116,2,38,246,233,177,73,207,7,32,241,193,29,48,64,41,44,189,9,146,115,244,235,215,7,168,32,116,199,211,167,188,171,117,16,35,13,54,71,64,24,2,57,
+250,117,199,78,160,231,240,171,95,103,0,2,96,186,4,1,214,6,96,48,122,101,73,200,238,48,49,211,140,241,75,229,147,194,193,118,222,223,102,185,25,24,29,48,128,99,62,128,231,242,200,4,31,109,136,99,115,221,
+12,112,64,126,189,63,217,206,58,245,231,223,185,95,183,69,140,7,187,199,125,179,1,250,30,57,60,119,192,207,165,72,97,152,12,139,107,133,193,227,54,247,39,7,28,96,96,123,246,0,156,210,5,155,7,116,23,76,
+122,28,91,76,49,248,231,233,145,253,40,1,162,246,223,4,179,223,12,241,196,200,79,62,193,119,28,158,228,250,83,126,215,102,217,196,183,227,25,57,4,19,206,121,44,28,30,71,211,57,24,21,32,251,78,56,182,186,
+108,114,51,109,54,120,62,160,46,51,159,94,128,243,82,44,151,105,129,246,107,149,236,127,115,54,49,142,115,144,64,227,29,137,29,253,192,32,251,93,152,235,113,168,115,254,207,3,254,5,231,128,7,213,79,60,
+123,128,93,219,17,133,155,82,108,158,118,148,30,221,12,172,113,158,188,19,86,197,205,200,56,43,48,227,248,160,148,237,206,56,56,137,248,231,156,3,237,233,79,251,69,192,224,121,253,242,4,51,227,176,193,
+205,184,231,158,113,199,56,250,128,85,55,16,224,109,109,68,127,188,99,231,168,238,231,249,127,245,207,180,231,163,234,25,206,6,29,112,71,24,63,42,240,125,115,158,71,90,181,231,206,126,247,156,56,60,180,
+50,128,112,49,211,236,217,199,31,175,52,198,156,224,100,147,156,228,236,96,0,250,60,31,197,235,198,61,248,200,4,6,119,234,31,80,39,221,148,244,207,80,87,60,119,231,156,116,28,16,191,107,43,193,251,105,
+35,147,157,153,39,219,247,100,125,15,166,62,149,48,152,19,247,87,183,95,43,142,157,3,219,48,252,120,60,156,251,72,178,46,112,93,0,57,207,252,120,146,8,233,201,181,235,192,237,244,32,102,128,43,173,231,
+60,11,238,51,192,231,156,31,72,73,245,62,132,241,198,0,171,41,116,231,159,42,249,143,96,68,248,244,4,132,141,70,58,103,156,100,142,41,225,98,110,68,202,72,245,91,44,131,248,219,231,140,244,4,98,156,35,
+141,191,229,186,19,158,112,186,112,198,78,15,30,74,231,28,231,60,254,56,20,0,162,234,94,134,218,228,140,99,149,148,126,36,236,97,248,231,241,25,225,126,208,88,129,246,41,75,122,242,57,232,121,48,144,51,
+223,158,156,244,163,236,240,156,131,114,7,61,211,75,246,245,183,99,158,125,105,78,159,11,114,178,171,118,206,205,48,15,124,145,22,62,184,3,183,4,208,3,132,141,198,108,229,81,236,51,199,39,63,234,151,52,
+230,159,7,2,222,78,6,56,96,163,219,25,141,191,159,106,140,105,209,142,142,184,29,182,233,140,125,191,229,158,122,117,192,28,103,223,50,45,132,35,36,180,93,241,148,176,35,175,95,146,21,7,7,212,123,146,
+104,1,203,43,19,254,167,28,244,105,128,30,217,204,92,113,156,103,175,92,138,148,56,254,40,97,198,120,253,240,60,126,9,143,124,247,60,96,113,66,88,196,223,198,135,183,9,106,7,126,152,183,97,249,127,46,
+150,23,78,66,49,149,43,130,70,69,167,81,147,255,0,62,160,255,0,147,239,128,8,130,135,206,35,136,122,228,131,158,59,228,14,64,235,208,15,76,84,139,110,196,103,203,182,3,208,204,131,29,6,114,196,30,61,0,
+238,50,6,70,102,93,58,5,234,16,250,159,221,15,94,155,109,118,246,231,156,241,82,139,27,113,255,0,44,98,63,86,69,227,255,0,0,200,4,103,190,58,115,156,114,1,83,236,161,73,253,213,142,227,207,205,53,174,
+123,100,28,228,129,211,223,245,166,155,48,199,38,43,33,158,72,243,173,215,7,62,190,89,95,175,61,240,50,42,255,0,216,237,135,33,98,86,207,39,237,35,28,113,206,219,18,160,255,0,192,143,106,149,109,173,186,
+111,140,31,123,182,24,62,196,88,16,51,239,142,62,97,214,128,51,197,134,120,2,197,73,198,63,127,108,217,4,113,201,135,211,24,231,189,63,236,29,6,235,19,207,79,180,67,140,231,191,238,185,207,247,177,252,
+185,188,97,181,92,22,149,61,201,189,96,0,250,141,60,147,207,97,207,67,199,57,83,29,145,198,93,48,123,139,183,32,3,215,7,251,59,62,222,244,1,159,253,154,199,63,45,142,59,1,52,44,78,79,25,30,94,127,159,
+79,198,164,93,53,113,243,36,29,64,56,104,184,60,118,8,120,247,31,143,57,171,102,27,51,159,222,160,239,197,219,145,146,50,115,155,14,56,207,225,220,244,32,181,182,110,68,233,128,6,63,211,63,151,252,75,
+206,127,3,235,192,160,8,62,197,16,24,253,216,199,164,145,14,113,216,237,57,199,56,192,199,235,151,27,88,193,199,202,57,199,252,124,40,39,62,202,8,25,247,0,245,4,113,82,11,59,60,13,215,41,146,9,0,93,147,
+220,245,43,166,253,114,63,26,70,181,181,237,124,84,142,152,186,63,215,77,244,245,236,125,104,0,22,208,158,199,156,112,39,102,62,153,27,81,79,25,239,146,15,115,156,148,251,28,35,32,53,194,231,158,37,185,
+7,140,147,130,36,31,200,115,234,14,42,31,38,223,63,242,16,148,12,228,1,118,58,15,247,172,15,57,60,28,119,232,91,154,81,2,28,237,190,157,143,109,215,40,127,28,155,37,57,7,156,146,56,56,236,104,2,116,183,
+136,17,135,184,232,50,62,209,48,56,28,127,20,224,255,0,76,245,226,165,41,2,245,154,224,30,188,203,48,245,24,255,0,143,128,127,35,245,170,134,219,112,193,185,112,79,4,153,208,159,65,128,108,184,198,125,
+113,200,228,28,83,197,162,240,69,217,207,0,124,224,28,244,57,2,219,25,247,198,51,248,208,4,173,228,231,134,156,250,226,226,231,174,15,80,38,108,245,239,208,159,201,133,237,129,228,220,103,29,69,212,192,
+159,94,237,199,28,115,219,24,207,20,207,177,48,201,23,82,145,254,206,15,111,81,106,7,184,207,95,212,159,98,155,31,241,247,40,232,48,89,126,189,173,50,58,158,114,126,135,184,4,166,91,82,6,217,167,0,14,
+119,93,204,216,239,222,63,148,126,62,181,4,147,69,208,74,112,58,131,52,204,51,233,150,3,129,249,147,214,159,246,59,156,2,103,118,244,59,147,7,29,0,63,101,3,156,16,123,130,122,147,138,111,217,46,78,112,
+196,156,240,60,213,7,241,2,223,30,220,143,65,216,208,4,6,104,243,254,189,23,61,154,121,1,224,227,128,78,51,248,14,252,247,166,25,162,199,252,125,162,129,216,92,49,36,156,159,83,215,174,72,35,176,201,235,
+96,219,94,3,141,161,155,174,60,200,113,245,255,0,143,126,217,231,158,167,30,180,245,181,188,99,196,80,183,24,193,100,94,70,59,139,71,25,245,233,236,9,52,1,72,92,32,206,47,34,63,41,198,110,192,60,231,214,
+54,193,246,36,123,250,212,130,80,192,145,119,16,3,175,250,80,110,167,190,20,113,233,211,145,206,106,232,178,188,25,38,40,1,199,31,49,57,199,109,203,96,64,227,39,32,99,29,128,168,205,181,214,121,130,34,
+123,254,245,143,83,199,252,184,175,176,31,150,51,205,0,85,251,66,142,5,220,103,36,116,153,191,19,141,195,211,252,138,12,224,252,223,109,85,7,168,19,19,244,227,122,250,122,12,247,205,90,54,247,92,17,101,
+25,32,127,207,121,6,122,96,99,236,132,112,56,201,24,234,48,113,202,11,107,174,246,42,65,61,5,212,160,126,95,99,97,200,231,166,122,26,0,170,46,100,201,217,126,1,231,238,176,60,118,255,0,150,160,145,245,
+246,60,154,107,201,112,78,227,126,132,12,245,1,187,231,254,126,23,158,153,62,157,170,241,130,117,193,251,3,158,199,109,196,205,128,79,7,63,96,35,25,62,135,131,147,140,96,188,193,55,95,177,79,145,199,47,
+49,227,30,130,196,122,96,19,140,103,57,160,12,159,54,228,144,5,226,253,118,40,24,237,214,118,36,158,59,254,0,231,1,23,15,214,228,18,57,255,0,82,73,237,211,18,14,216,231,35,233,205,104,121,114,244,54,146,
+143,98,46,27,233,255,0,46,128,228,245,201,56,31,78,66,121,50,17,204,18,140,143,73,129,36,118,249,109,179,147,199,25,244,160,12,239,46,231,0,125,160,224,245,45,110,14,57,28,115,112,6,14,62,188,241,131,
+76,107,123,131,214,224,30,73,207,217,34,36,122,143,245,228,96,99,185,254,181,160,240,72,191,118,25,189,126,95,59,233,222,1,212,28,231,140,250,142,180,211,111,54,63,212,220,158,128,29,147,55,30,185,48,
+147,223,176,25,201,224,240,64,6,127,217,36,60,180,200,221,240,108,98,245,227,36,77,207,60,231,57,61,189,3,26,197,220,224,121,88,255,0,175,72,215,60,240,121,148,227,142,189,61,241,138,208,54,178,240,68,
+19,171,112,65,242,100,36,127,223,73,207,39,158,6,56,245,166,181,164,185,228,92,39,80,8,128,130,125,122,195,248,126,157,49,64,25,255,0,217,146,117,15,23,7,143,244,120,51,143,76,249,167,158,61,243,248,83,
+134,152,196,146,206,167,254,216,193,141,189,73,1,100,231,211,7,211,169,227,22,205,164,163,144,243,142,157,96,63,76,143,221,142,248,244,28,211,62,197,57,228,92,48,237,134,128,167,24,62,217,62,152,227,185,
+233,212,2,15,236,232,193,5,140,71,56,227,201,132,122,12,159,222,3,131,145,199,78,122,17,74,116,219,83,128,234,152,250,68,1,252,165,7,211,39,3,175,167,53,99,236,18,231,253,120,7,187,121,77,159,167,86,31,
+83,140,140,158,132,209,253,158,253,174,113,238,99,7,175,78,0,24,35,190,71,229,64,21,255,0,178,172,114,48,35,4,30,232,9,192,231,167,154,58,143,166,78,120,228,83,191,179,173,15,79,35,30,241,115,142,217,
+196,135,169,235,146,120,245,205,74,52,249,200,35,237,205,140,244,242,91,215,60,97,71,95,115,215,215,186,255,0,103,204,78,13,222,123,115,15,127,124,144,79,63,207,140,226,128,26,52,235,85,24,11,110,71,28,
+236,35,61,135,59,179,216,247,227,144,123,210,253,146,217,115,181,109,71,60,28,73,237,145,204,153,7,212,227,158,63,7,27,25,87,165,236,124,118,54,204,6,113,207,76,159,78,252,122,114,105,194,210,64,0,251,
+109,182,112,63,229,131,250,12,19,132,221,147,232,122,112,59,138,0,136,69,110,9,203,91,224,122,38,225,208,250,146,125,61,201,197,47,149,108,57,243,45,207,160,251,57,35,242,43,206,122,117,227,57,247,15,
+107,73,6,113,125,110,51,131,129,111,47,36,227,214,18,123,114,115,215,35,210,161,54,243,231,31,108,183,3,31,197,107,33,227,175,79,39,25,227,31,94,184,230,128,37,88,237,79,36,64,79,175,146,15,78,70,1,101,
+0,245,236,56,233,207,20,239,38,216,143,147,236,195,36,241,228,38,65,200,236,100,60,251,30,216,231,181,85,41,50,245,185,183,108,241,159,177,184,234,49,158,45,178,79,190,71,65,159,82,194,38,206,4,208,99,
+156,145,101,38,6,121,200,2,216,103,223,39,169,61,179,64,23,150,56,243,128,214,249,236,124,149,199,224,9,237,235,207,25,233,156,212,234,172,191,199,106,79,111,221,198,8,207,252,12,31,204,142,255,0,134,
+72,55,24,32,60,4,103,25,54,178,140,250,112,34,35,60,100,227,183,167,52,185,151,28,253,141,128,193,33,173,165,36,240,6,112,35,201,201,246,224,14,14,73,192,6,208,98,70,89,96,111,194,60,15,94,119,241,219,
+2,152,95,4,225,109,241,146,56,11,145,216,242,172,123,123,251,113,88,202,206,78,0,178,95,113,111,56,39,243,139,175,176,7,169,237,82,134,98,112,210,90,97,120,200,182,149,128,246,57,133,71,126,231,158,122,
+243,64,26,133,193,32,101,71,60,225,65,28,250,114,114,122,114,63,19,222,158,10,145,141,224,127,219,48,115,130,125,15,161,227,56,247,172,130,171,222,104,14,57,0,91,56,198,115,142,119,169,192,246,0,158,195,
+140,212,128,33,0,249,209,177,227,36,194,0,232,15,0,203,145,233,142,71,83,197,0,105,133,92,242,201,131,234,131,32,228,156,142,135,60,127,158,106,81,24,35,43,180,227,3,37,1,36,243,158,196,243,145,192,63,
+151,34,179,113,16,193,50,69,208,99,16,47,60,243,255,0,45,184,30,157,51,207,60,154,95,244,98,57,158,52,25,237,31,12,114,57,193,185,10,79,3,175,233,156,80,6,142,194,57,59,49,219,228,115,128,51,254,195,99,
+233,159,78,105,192,6,28,125,159,254,5,12,167,25,24,254,234,255,0,245,185,25,239,89,202,182,253,230,140,231,25,99,4,100,118,233,153,155,156,122,147,199,52,132,89,243,254,151,2,246,193,183,143,35,234,3,
+19,244,234,71,175,90,0,186,209,246,97,7,124,5,183,149,179,207,24,201,25,198,122,126,39,154,103,217,123,143,33,142,50,119,91,204,113,215,142,17,128,227,167,39,220,142,113,91,253,21,128,219,119,25,29,112,
+45,65,39,166,54,230,66,122,244,62,157,185,52,245,142,220,113,246,197,35,159,148,89,68,113,220,255,0,203,92,131,193,28,145,159,203,0,19,249,35,163,36,93,58,249,15,131,158,191,194,15,111,78,79,39,60,211,
+150,8,242,112,32,57,235,242,50,16,126,165,125,199,243,29,106,29,150,204,0,55,157,250,253,138,28,142,7,127,180,140,115,142,56,199,115,65,130,22,4,139,191,199,236,246,224,116,198,121,156,250,115,215,167,
+225,64,22,124,160,188,3,108,0,231,1,216,127,48,58,142,153,24,28,118,0,211,130,145,129,251,143,78,46,78,125,7,1,200,239,215,56,235,211,182,115,91,66,121,251,105,255,0,192,107,51,193,60,1,251,224,65,253,
+123,224,82,11,56,55,2,47,100,199,97,228,90,12,246,28,125,163,166,126,153,231,140,98,128,52,203,74,128,241,16,198,71,250,231,97,211,140,117,28,158,231,159,108,210,9,100,61,89,15,4,1,230,56,31,65,192,199,
+97,212,241,215,190,105,173,130,100,31,182,202,65,207,2,43,33,198,51,208,200,79,208,224,247,29,106,101,211,87,181,204,131,182,124,187,78,0,239,129,58,100,125,56,60,112,71,52,1,103,206,156,1,203,109,57,
+25,75,151,29,58,119,35,233,248,224,226,158,179,76,15,252,188,48,60,96,93,186,231,158,14,123,14,221,115,239,214,171,13,56,103,6,230,86,7,175,203,100,59,114,78,110,250,142,132,241,238,7,38,143,236,213,92,
+19,35,156,143,75,12,245,233,143,180,177,29,1,231,241,197,0,94,91,201,83,134,73,200,56,63,241,253,38,125,123,133,255,0,235,250,226,157,246,198,99,157,179,131,216,253,177,201,227,190,7,94,221,112,14,48,
+58,85,31,177,67,215,113,99,140,252,207,96,164,122,3,254,146,14,50,63,167,56,229,13,172,60,228,33,247,221,102,15,161,4,172,204,59,255,0,123,166,62,148,1,163,246,150,56,2,43,140,116,226,227,118,79,57,251,
+202,78,6,127,19,158,40,23,46,48,13,181,204,131,35,63,189,32,3,211,25,10,61,123,103,235,84,5,180,89,200,142,22,32,224,124,246,167,240,63,190,7,175,81,233,192,207,90,156,90,70,127,229,222,219,29,255,0,121,
+6,9,24,199,30,97,192,192,237,142,71,94,128,0,89,243,243,203,105,243,30,156,153,38,108,123,18,34,227,232,63,10,67,44,7,33,172,10,241,212,203,50,158,231,158,23,212,113,140,250,144,51,81,173,178,96,98,218,
+199,160,56,105,32,231,190,70,28,14,167,175,7,142,49,221,134,209,70,115,107,167,243,235,36,39,147,140,255,0,203,80,79,28,30,63,60,102,128,37,45,110,121,251,18,158,184,38,230,81,200,244,36,145,200,227,249,
+103,154,97,16,48,230,210,53,201,193,13,114,196,119,238,195,131,156,112,72,232,61,197,68,109,148,117,182,211,70,51,131,230,68,59,118,249,219,249,30,220,81,246,120,199,252,187,105,205,211,24,184,140,114,
+61,64,97,206,63,161,231,57,160,9,12,80,115,254,139,110,163,147,205,210,31,230,164,227,166,64,207,227,156,83,60,168,207,75,104,48,72,31,44,200,113,211,129,146,6,6,125,9,199,30,130,158,33,140,3,155,107,
+14,221,46,0,56,24,199,5,137,61,198,114,63,193,194,0,121,22,214,125,123,78,141,200,199,3,46,15,249,24,56,160,8,126,206,196,124,177,219,142,49,159,181,70,184,231,211,61,70,7,97,131,239,156,6,9,120,202,219,
+96,16,73,55,192,12,227,140,237,96,127,0,71,167,24,169,141,154,177,230,222,33,143,238,220,34,156,231,190,91,7,234,15,81,158,156,82,155,48,56,22,195,35,184,186,92,140,228,243,129,212,254,62,221,242,1,92,
+192,122,121,118,45,208,100,234,45,145,158,115,180,73,131,199,161,231,219,28,55,236,210,175,59,108,113,207,91,173,195,243,50,47,191,60,250,251,212,230,217,114,62,89,23,28,96,93,41,61,64,237,30,79,57,232,
+112,57,244,229,124,149,201,1,103,200,227,229,184,35,156,12,227,247,12,14,115,198,73,25,193,237,138,0,135,202,156,2,118,89,145,215,34,104,136,39,232,100,61,115,207,28,143,206,152,68,253,226,177,56,199,
+71,139,7,168,207,200,224,228,103,156,158,217,239,83,249,113,131,243,45,238,120,201,251,64,246,24,200,180,227,24,233,131,248,241,147,98,16,8,251,103,160,205,194,115,244,34,200,147,145,199,94,15,184,205,
+0,65,137,14,72,142,208,99,142,140,195,235,145,49,231,220,31,231,154,77,252,141,201,107,212,157,219,28,241,235,196,254,195,144,50,127,148,141,18,242,49,112,62,179,156,159,167,250,25,30,253,6,8,197,51,203,
+64,0,50,93,47,174,39,61,251,159,248,151,147,143,80,121,245,0,10,0,93,209,30,11,90,14,192,121,115,3,245,226,70,235,211,56,207,167,74,105,120,135,83,110,79,168,142,240,250,227,36,72,56,207,182,50,58,96,
+26,107,67,22,9,251,69,192,192,28,25,229,234,59,241,167,31,98,65,3,174,114,42,3,10,127,207,205,200,247,55,83,117,207,81,255,0,18,179,219,61,57,199,174,104,2,86,184,139,186,219,176,199,120,175,9,35,191,
+38,65,215,174,75,118,244,24,168,77,202,116,88,109,192,207,95,179,221,46,78,70,63,229,191,191,115,222,154,209,1,192,184,155,3,174,111,103,63,134,63,178,7,31,134,114,115,210,161,49,15,249,248,11,236,215,
+23,68,247,244,210,212,116,199,226,15,36,26,0,155,237,35,24,197,183,78,226,117,24,63,73,137,24,193,24,193,233,147,81,180,155,178,65,128,115,253,235,190,222,225,179,208,227,184,61,59,138,137,227,200,57,
+149,48,6,78,46,47,61,8,228,46,151,254,62,152,233,85,140,104,9,221,50,158,195,18,106,188,100,242,56,211,23,215,57,224,125,65,197,0,89,44,231,144,33,99,140,128,178,106,36,96,250,228,112,121,207,36,143,206,
+171,188,146,47,88,225,32,117,230,252,247,232,79,144,122,122,228,15,210,152,68,67,57,147,143,105,117,97,255,0,182,75,158,131,249,243,131,81,180,150,235,193,118,199,28,9,53,33,131,235,147,106,115,192,239,
+249,119,160,1,217,216,100,65,16,62,161,245,50,120,237,129,104,123,123,227,215,28,85,86,55,71,229,22,177,56,236,65,212,193,235,158,79,217,192,237,198,121,21,43,77,105,200,222,199,142,55,62,160,7,191,252,
+186,28,250,117,0,143,200,69,231,219,174,2,201,30,58,159,158,255,0,129,192,255,0,159,83,142,123,96,117,200,25,234,1,11,71,112,126,245,149,184,61,201,26,151,76,116,201,183,35,142,15,227,206,115,81,60,59,
+190,245,181,186,31,93,151,100,228,114,62,244,64,31,169,201,60,113,86,13,213,185,199,239,33,28,227,37,239,250,251,127,163,12,117,29,198,125,125,34,107,136,58,25,161,32,118,13,168,49,250,128,81,121,228,
+245,31,76,131,64,20,218,212,99,238,170,142,135,108,87,68,12,116,7,17,242,62,131,145,145,147,222,9,45,83,188,114,30,184,34,218,244,142,70,123,70,58,231,191,126,113,215,23,90,75,60,101,153,24,112,8,197,
+224,56,235,211,7,60,228,15,167,61,170,179,205,166,245,40,128,130,120,217,117,192,236,114,74,28,117,227,252,128,12,247,182,143,28,199,55,184,54,87,184,60,122,224,28,99,190,0,227,21,70,72,99,25,255,0,71,
+151,211,38,198,232,129,237,146,195,245,29,199,62,187,94,126,154,1,193,139,36,255,0,118,228,1,198,63,231,182,123,103,144,50,115,235,80,73,54,158,70,73,135,129,201,43,57,207,3,147,185,136,247,198,127,194,
+128,49,140,22,228,252,241,58,129,208,125,138,239,32,227,168,38,68,7,167,167,0,96,99,179,26,222,220,31,249,108,1,228,230,206,115,223,3,173,199,191,56,25,235,210,180,153,244,227,150,45,108,167,29,76,83,
+12,250,117,199,32,224,115,211,3,173,66,127,179,223,128,109,136,247,71,25,247,0,17,215,215,211,131,64,20,126,207,102,71,207,28,135,4,157,194,218,65,239,211,237,4,19,235,214,161,100,178,67,133,18,131,200,
+24,182,153,73,233,140,126,248,3,147,156,227,142,71,76,102,173,180,86,12,112,18,46,50,119,4,184,35,223,147,48,0,140,244,29,59,158,213,89,160,211,129,200,88,184,61,160,156,243,211,254,126,48,221,6,14,49,
+64,21,202,90,177,225,46,155,158,158,76,216,252,54,185,198,123,114,122,240,125,88,201,8,56,22,183,68,28,140,20,186,7,140,119,201,7,24,227,229,24,245,237,78,54,250,91,31,153,55,31,246,97,156,47,62,254,107,
+14,50,70,58,119,197,70,246,218,120,57,85,43,199,93,143,129,219,248,164,7,167,39,24,235,212,208,2,60,112,100,15,179,93,14,188,129,55,28,243,158,50,49,198,70,127,31,70,24,163,24,38,11,160,56,206,68,192,
+118,238,101,76,231,183,79,113,138,79,34,208,18,3,49,239,130,140,127,79,55,61,59,254,98,163,120,32,32,227,145,220,152,136,28,243,252,114,183,60,30,120,250,28,226,128,28,99,180,57,13,21,224,237,242,188,
+131,30,231,51,247,200,231,61,79,28,116,99,67,102,0,1,117,3,215,56,121,51,249,253,173,122,247,199,67,147,201,36,212,13,4,63,120,29,189,57,11,16,32,241,220,200,7,63,136,60,118,197,68,214,241,16,112,236,
+121,231,111,150,7,29,48,4,195,57,207,61,113,215,20,1,33,142,220,15,245,90,137,231,248,153,243,192,57,36,157,65,72,60,99,57,31,136,168,29,96,198,4,90,136,29,130,151,233,219,56,212,199,78,217,53,19,218,
+33,228,57,95,168,118,227,215,247,119,3,158,189,137,63,133,48,218,5,3,247,136,113,207,250,169,14,15,76,229,167,39,191,64,71,25,197,0,13,28,127,243,239,169,145,239,59,40,60,228,140,54,167,145,156,112,7,
+235,76,242,208,0,126,201,168,142,164,150,184,56,246,233,169,224,241,143,195,233,203,26,211,57,231,143,246,96,159,0,122,227,206,231,7,159,232,48,50,207,179,227,163,238,206,121,54,247,37,70,120,193,204,
+196,99,24,24,227,143,90,0,71,88,129,63,232,215,248,61,188,242,122,117,255,0,152,158,78,123,245,250,99,172,68,68,8,63,102,189,231,25,253,241,239,211,59,181,110,188,28,159,110,122,230,137,34,201,249,157,
+72,232,71,216,238,189,115,193,18,19,142,115,237,236,8,168,26,33,140,9,48,70,9,197,173,216,237,223,44,222,163,191,92,140,208,0,239,16,96,26,222,232,122,3,39,113,220,49,213,24,118,39,143,65,129,81,153,35,
+108,226,11,143,92,150,44,58,122,11,204,227,182,65,60,31,81,154,129,226,80,112,102,147,211,253,68,219,143,124,0,220,99,29,9,35,220,26,103,144,8,226,89,72,57,7,16,202,0,232,15,42,236,7,81,219,235,142,180,
+1,51,16,71,16,55,94,119,6,238,122,96,221,28,255,0,65,199,66,106,22,3,24,17,160,61,120,216,9,206,48,115,231,55,94,123,251,10,140,218,156,101,90,126,123,249,115,227,0,245,198,63,159,229,233,1,139,105,230,
+105,184,236,17,240,114,121,201,97,199,227,211,181,0,78,71,251,4,253,124,188,103,211,27,185,201,245,60,16,42,49,232,98,70,244,83,28,71,235,208,140,231,191,56,62,189,234,22,16,14,12,151,4,241,201,227,36,
+251,5,200,244,25,56,32,122,226,162,63,101,7,253,109,201,207,97,42,47,254,132,220,129,249,116,239,138,0,180,192,245,16,162,129,129,129,105,9,207,76,245,110,79,175,92,19,233,81,21,101,206,98,32,123,218,
+91,103,30,196,176,233,223,142,112,123,85,98,182,196,115,37,215,29,8,185,128,115,248,201,187,142,51,156,122,231,7,134,55,146,189,30,228,142,1,221,121,8,207,25,234,31,191,94,51,249,224,208,5,193,158,161,
+23,160,231,236,182,157,57,235,243,103,7,223,131,248,212,101,241,156,236,4,231,131,103,107,130,78,56,7,204,3,56,39,166,15,126,188,213,54,10,70,64,185,108,122,222,160,227,142,164,72,160,243,245,61,251,84,
+123,3,30,4,217,227,57,191,92,243,219,137,186,227,30,191,202,128,47,241,207,42,79,189,173,151,61,15,4,202,63,200,201,237,81,49,112,15,220,250,44,86,36,247,236,243,119,28,224,250,243,232,105,249,110,188,
+17,40,192,228,53,251,55,174,51,251,210,7,57,252,248,197,55,107,142,72,3,221,174,165,56,201,61,74,205,142,6,122,112,78,115,128,8,160,11,89,36,242,174,64,236,34,211,241,192,244,243,189,58,115,193,235,140,
+83,241,146,2,198,115,158,49,21,166,122,240,48,178,227,177,29,72,227,138,168,55,224,128,208,14,57,253,252,160,159,78,68,132,140,14,184,25,245,61,233,133,103,39,229,149,87,145,130,147,59,250,246,98,163,
+161,206,115,199,224,40,2,248,73,63,231,156,160,243,200,142,28,119,199,2,80,58,123,228,245,200,232,84,6,199,222,152,16,112,70,203,113,158,248,255,0,90,9,62,156,243,216,242,69,103,133,186,3,6,103,111,83,
+185,79,212,129,243,99,57,238,121,231,215,148,34,227,161,153,192,232,6,1,31,64,22,51,254,121,245,52,1,127,99,18,126,119,25,25,193,88,9,246,60,92,3,252,240,121,198,72,166,148,96,51,190,76,227,130,18,60,
+159,206,126,135,215,24,200,244,170,127,57,192,50,237,192,201,27,99,252,206,232,251,122,122,253,51,78,30,98,145,139,176,160,142,203,6,120,237,206,7,233,156,103,156,208,5,143,40,62,120,118,231,188,105,147,
+236,72,114,15,61,199,63,165,6,208,144,127,114,72,237,152,75,103,35,29,156,113,223,142,115,131,239,81,229,176,15,219,156,250,145,29,171,99,212,125,222,135,176,36,243,244,192,76,231,254,95,29,187,129,229,
+91,3,158,253,19,211,63,76,231,168,197,0,41,179,66,48,98,112,50,56,88,72,25,4,145,147,188,28,12,242,7,81,198,57,38,156,44,99,0,19,27,119,227,202,127,99,253,243,129,236,15,95,66,42,2,20,19,155,137,14,59,
+8,237,63,246,104,8,250,115,254,52,214,207,24,105,200,56,232,186,120,206,121,233,228,175,94,253,79,94,79,20,1,103,236,171,156,4,144,123,152,164,29,58,3,150,29,254,184,244,239,69,65,135,39,38,57,143,24,
+228,105,227,62,189,80,96,251,254,67,166,74,0,250,213,150,101,4,19,9,24,61,22,219,36,142,184,202,147,236,7,127,165,87,104,220,228,144,65,7,140,71,109,143,115,129,19,103,160,35,3,250,138,213,111,237,28,
+113,20,160,14,115,246,116,61,143,95,223,144,72,199,93,167,57,199,166,98,63,218,71,35,116,168,15,93,182,145,100,147,192,3,230,92,3,207,70,35,142,73,192,52,1,151,137,70,65,206,61,15,146,58,242,79,221,24,
+24,0,145,199,92,30,121,168,136,57,25,28,247,42,209,143,228,217,233,212,14,0,239,197,106,50,94,129,146,100,108,30,191,99,129,143,254,61,49,227,61,71,92,241,215,53,11,67,116,73,37,165,24,232,126,197,106,
+71,127,250,109,129,237,131,223,4,227,34,128,41,109,114,70,31,111,176,120,193,35,241,112,79,78,189,51,74,98,113,207,152,195,215,18,40,60,123,179,145,238,114,61,186,26,178,35,157,115,151,159,35,169,251,
+13,159,29,63,189,49,234,23,169,30,253,79,40,90,94,115,231,30,127,231,210,208,1,142,223,43,31,199,165,0,84,228,17,251,233,190,161,225,199,108,156,110,207,190,123,100,244,24,164,37,113,197,203,168,29,48,
+208,17,158,185,193,144,12,241,238,125,57,235,107,204,3,27,164,152,31,250,225,8,192,28,228,97,136,57,235,219,24,39,4,240,88,72,36,226,121,71,63,243,202,28,242,7,93,171,219,142,113,143,83,218,128,41,238,
+57,226,230,92,113,212,219,0,125,240,37,200,39,60,243,159,94,105,75,129,255,0,47,50,142,65,251,240,99,158,132,226,227,183,76,140,1,233,207,51,156,131,204,236,71,113,180,0,63,1,25,227,145,142,125,126,148,
+211,243,100,125,160,129,236,28,28,122,96,195,130,126,157,15,79,112,6,121,174,6,69,221,198,70,48,162,88,192,235,147,140,94,241,142,152,239,198,49,140,82,137,165,110,126,217,115,239,251,252,30,15,181,249,
+193,39,142,157,253,233,54,168,39,247,142,249,224,146,178,159,167,72,70,8,29,113,201,227,36,145,64,85,4,224,182,61,132,170,113,236,76,3,167,166,113,142,51,64,18,43,92,49,226,230,236,129,158,147,6,207,182,
+77,209,39,29,186,142,185,169,11,93,15,249,111,124,71,180,235,207,57,231,253,36,147,223,140,99,36,117,236,193,176,15,226,110,167,239,201,219,143,249,228,78,62,158,188,118,167,131,9,28,160,207,168,145,243,
+232,56,54,196,250,103,146,126,157,128,16,61,208,60,53,247,39,147,231,68,50,48,123,180,217,224,245,28,103,32,99,34,165,18,93,54,6,251,243,233,153,109,240,78,8,193,253,233,36,251,96,117,207,56,53,24,142,
+2,55,124,156,255,0,121,228,63,206,219,3,208,12,254,56,226,156,176,64,120,242,98,127,171,3,235,219,236,199,249,243,215,183,32,19,98,235,174,111,143,167,239,98,35,211,169,145,177,223,140,103,177,236,41,
+226,59,194,15,239,46,128,198,48,211,71,130,61,240,224,17,142,253,63,90,133,32,128,103,54,86,199,182,50,59,231,130,68,25,199,64,123,117,61,56,169,252,184,192,207,246,117,168,236,9,10,65,7,190,76,42,79,
+30,224,116,207,90,0,110,219,206,130,105,206,50,112,178,199,219,142,138,14,125,61,179,143,114,134,59,208,6,233,110,113,158,165,201,7,140,12,98,35,140,231,57,207,94,7,76,212,129,16,125,237,62,195,24,233,
+251,144,121,199,57,104,243,143,64,114,121,56,237,82,1,22,6,108,180,228,244,203,91,131,238,51,180,0,59,99,7,161,200,160,8,124,153,0,222,211,185,238,114,216,63,248,252,7,191,115,249,250,200,134,78,211,62,
+123,228,193,143,166,126,204,216,198,73,198,8,60,250,212,152,181,94,30,211,76,4,241,150,154,220,1,143,247,70,115,207,24,31,202,144,173,161,201,242,52,130,49,208,58,147,198,56,200,83,158,253,49,207,126,
+40,1,132,202,121,55,17,241,140,31,220,156,125,113,104,78,120,237,129,198,113,138,113,243,177,143,181,194,62,141,24,60,127,187,108,9,250,15,202,159,139,92,113,111,166,31,164,163,30,188,252,171,207,79,111,
+160,226,149,124,140,124,214,154,89,4,140,97,243,223,253,223,167,124,103,210,128,34,49,59,117,184,183,193,4,228,249,152,245,232,182,248,28,243,146,63,3,145,81,52,108,188,9,237,78,73,192,81,59,117,228,100,
+139,98,123,246,199,60,26,185,254,143,142,44,236,20,14,184,249,193,7,25,227,127,7,185,200,29,41,60,200,0,56,134,213,121,254,21,97,143,174,1,201,60,227,175,227,64,21,87,43,203,73,98,217,192,231,237,75,131,
+244,48,113,198,51,145,223,57,230,159,148,56,255,0,143,51,244,146,113,201,237,196,67,56,245,35,175,29,58,205,190,14,233,111,219,157,210,168,63,80,16,96,12,116,245,237,222,158,175,109,140,5,183,235,145,
+134,185,207,208,149,95,76,17,158,221,199,66,1,95,9,144,63,209,23,140,3,190,126,113,245,140,31,97,245,206,59,82,133,81,157,169,106,220,21,24,121,142,15,183,201,201,28,116,39,39,173,90,223,0,199,49,96,28,
+127,173,189,24,245,251,202,120,200,237,212,125,77,61,101,64,72,67,31,56,31,122,240,254,127,184,108,243,211,140,122,208,5,47,36,48,221,228,91,183,124,131,117,215,216,168,192,36,251,159,67,138,105,138,21,
+63,53,186,126,18,92,142,72,24,192,105,1,227,158,192,114,58,102,181,209,92,231,158,1,3,59,37,35,61,243,186,212,19,211,215,215,161,232,255,0,45,136,207,152,7,108,42,78,71,94,251,109,192,227,147,200,61,191,
+16,12,165,75,126,15,217,1,207,117,146,231,158,153,251,172,192,116,233,248,253,100,205,168,35,253,8,158,73,201,105,0,61,240,119,41,36,246,231,255,0,174,117,86,50,0,30,105,4,224,127,168,155,7,142,199,200,
+4,227,57,239,239,238,239,46,97,192,148,128,61,99,155,28,253,109,155,174,58,131,158,180,1,65,5,169,31,241,224,8,245,220,139,192,231,169,24,28,99,30,156,227,60,212,131,236,99,165,148,131,233,60,103,211,
+182,14,15,108,227,234,122,85,229,138,228,253,215,140,130,71,83,40,0,30,78,113,106,51,146,120,29,56,200,60,84,194,43,161,159,245,96,117,59,82,66,79,83,198,97,24,39,61,58,251,30,180,1,72,45,174,56,180,148,
+119,200,96,73,250,237,136,228,115,199,80,127,154,129,103,144,26,214,78,191,196,202,27,174,49,254,172,30,113,234,127,94,116,54,93,117,25,199,27,136,139,191,124,103,111,215,223,39,218,141,147,156,102,45,
+196,30,191,103,136,146,61,249,39,175,190,59,231,147,64,21,0,177,60,11,34,59,231,124,92,30,49,207,151,158,156,243,142,121,246,169,66,218,130,49,107,48,231,171,79,23,95,99,179,63,65,145,233,131,222,114,
+147,140,159,179,159,168,130,48,15,76,243,230,14,248,252,126,180,152,150,62,77,176,235,198,232,80,159,94,118,92,12,12,96,129,200,160,6,129,110,127,229,131,131,211,230,120,155,63,248,239,39,142,49,249,96,
+138,123,36,42,57,128,14,56,0,199,199,64,51,128,164,30,253,178,65,236,70,65,119,114,189,44,208,244,28,91,199,142,121,57,47,63,36,145,206,119,117,60,12,100,60,222,92,30,5,164,39,57,36,121,49,12,147,142,
+62,91,145,238,56,199,78,113,193,160,8,74,67,159,145,2,158,184,243,20,28,113,193,11,32,227,235,142,79,78,148,190,82,103,161,4,246,243,88,227,182,56,185,199,29,115,248,241,83,125,174,240,140,11,120,151,
+30,182,249,199,30,215,138,122,246,252,14,14,112,45,212,248,230,21,231,210,9,72,63,136,190,94,62,160,103,158,212,1,24,134,35,199,35,184,229,24,224,247,201,184,83,142,167,169,247,193,166,155,120,50,73,66,
+192,12,110,41,17,244,24,36,221,55,82,58,228,16,123,118,54,77,228,157,50,64,32,15,150,218,66,0,193,200,230,249,134,59,116,28,126,0,130,238,96,56,119,199,32,237,181,108,254,126,123,31,110,57,25,244,160,
+8,150,40,8,255,0,86,15,108,108,136,241,223,164,252,156,12,243,207,224,106,79,179,196,79,250,176,1,198,127,112,160,126,59,101,60,254,7,140,116,169,5,220,161,120,146,101,239,197,171,30,190,185,221,239,158,
+122,231,190,72,107,93,77,252,83,92,1,201,226,216,147,131,207,7,28,143,78,192,113,237,64,13,22,182,189,226,131,223,125,190,73,199,7,238,238,60,243,219,140,156,113,205,59,200,177,7,136,173,148,140,125,219,
+114,190,249,63,40,234,56,7,234,113,156,130,130,237,185,6,230,228,12,115,139,64,49,199,77,195,111,29,50,123,250,3,64,158,54,255,0,151,203,209,145,222,54,140,126,5,91,174,71,76,254,20,0,241,109,108,199,
+136,224,244,0,196,192,12,114,73,253,211,113,212,19,211,191,36,230,166,75,104,184,62,76,12,8,237,10,241,208,245,251,41,201,237,201,237,199,169,172,10,112,69,229,225,207,251,114,140,3,236,119,3,223,169,
+207,173,12,209,96,102,230,237,177,193,205,193,25,39,3,149,49,17,248,30,158,180,1,124,218,64,7,250,155,113,237,228,174,7,115,145,246,110,7,94,167,62,181,25,182,141,73,33,45,113,232,99,126,114,57,192,88,
+112,59,224,99,142,163,154,167,190,220,245,154,224,146,14,115,113,15,168,201,44,240,231,223,235,156,231,173,52,201,110,113,153,110,10,143,75,139,67,233,253,232,71,78,58,145,219,147,197,0,92,48,118,197,
+170,99,210,57,134,9,200,35,34,220,30,199,184,207,36,81,228,185,192,204,3,167,33,46,50,122,96,143,151,7,160,199,227,207,76,83,221,110,127,229,163,158,63,138,234,197,70,9,228,157,195,158,189,0,234,106,61,
+214,195,143,49,119,17,144,5,213,143,56,234,121,100,224,142,14,121,28,244,24,160,11,230,9,65,200,116,0,244,230,116,57,244,1,144,99,216,131,158,231,6,143,223,160,220,28,128,56,249,93,178,1,239,130,7,7,142,
+221,113,158,8,205,13,214,202,121,146,49,238,110,172,134,49,131,212,220,255,0,156,142,220,83,195,219,227,153,33,61,127,230,35,167,175,29,57,2,111,95,78,113,130,49,214,128,39,45,115,187,137,91,167,28,231,
+211,156,43,103,249,102,154,222,126,73,121,19,233,151,238,125,65,31,145,233,245,56,168,67,91,17,194,161,25,237,125,166,182,127,55,199,31,95,115,156,12,176,188,0,113,31,183,252,125,105,39,63,129,147,185,
+199,81,215,28,10,0,123,59,159,249,107,30,51,143,245,132,96,254,46,70,51,207,78,57,24,3,130,198,44,63,229,178,227,35,24,42,120,60,146,126,111,175,108,255,0,70,230,51,202,169,231,176,159,74,62,231,254,90,
+99,142,59,246,200,20,164,38,65,9,39,3,254,123,88,31,166,66,146,61,50,58,100,30,40,1,60,195,129,150,7,175,33,88,251,118,83,223,158,122,115,206,40,220,78,6,65,207,64,70,15,182,73,140,250,241,200,31,134,
+48,198,66,189,16,247,31,52,182,35,7,60,142,228,254,120,24,24,233,81,249,115,147,145,26,145,199,73,237,56,207,251,170,127,92,254,180,1,49,4,243,229,227,25,201,38,60,99,219,54,199,167,126,167,223,156,22,
+18,121,221,10,17,199,95,44,156,250,227,236,216,62,167,174,61,57,20,207,38,112,15,238,250,241,145,53,176,234,57,232,195,211,176,29,79,67,73,228,92,140,129,27,14,58,125,166,46,125,64,3,39,215,160,193,247,
+192,160,5,98,188,230,40,71,64,49,26,122,18,9,205,183,25,250,140,138,2,147,247,86,220,2,59,170,227,156,246,22,199,156,158,126,156,243,77,242,110,240,63,119,38,125,167,4,99,159,69,232,113,211,156,31,92,
+114,255,0,179,93,149,36,69,32,4,240,124,222,249,207,24,65,252,250,251,226,128,24,201,42,130,79,144,63,221,137,72,198,70,72,253,206,51,223,60,251,103,165,33,18,48,201,116,94,217,16,33,253,118,1,193,199,
+81,156,212,139,103,115,140,148,155,234,173,35,231,140,140,144,189,179,192,235,218,131,107,112,132,102,57,137,61,153,167,7,142,0,25,192,247,62,153,28,226,128,32,33,151,172,203,219,159,33,84,251,96,133,
+193,227,166,71,76,208,51,218,100,29,0,249,99,28,224,30,114,51,159,192,112,58,14,181,63,149,56,199,201,32,24,224,110,155,241,255,0,150,202,15,211,143,94,120,160,69,32,0,24,238,78,79,252,246,184,92,254,
+87,62,253,51,130,51,193,205,0,69,146,122,92,128,51,198,21,14,48,115,131,129,200,233,198,57,235,239,72,100,101,231,237,104,8,244,183,39,62,216,5,71,25,28,243,219,160,171,139,110,64,4,219,94,176,63,221,
+150,232,255,0,237,199,60,251,227,57,62,148,226,128,117,181,191,28,12,5,154,235,63,145,184,56,61,241,250,10,0,160,211,156,18,111,176,49,255,0,62,227,219,28,52,252,254,93,122,243,128,67,114,65,218,111,220,
+241,199,250,58,131,192,232,127,122,15,169,56,227,190,51,87,54,196,56,107,125,68,115,252,83,93,19,207,78,179,14,189,64,7,243,164,43,9,224,91,106,3,158,114,110,72,30,252,93,174,122,30,123,158,228,208,5,
+63,60,231,254,63,100,110,15,91,101,24,61,51,146,228,19,233,232,48,114,123,31,105,139,0,60,242,177,232,7,217,23,7,140,241,232,113,253,65,2,173,178,194,163,34,43,209,245,251,86,49,158,63,229,248,17,147,
+208,115,207,115,156,211,75,198,63,229,157,241,207,29,28,1,142,159,122,248,128,51,234,115,145,211,176,0,172,46,17,78,65,157,206,7,91,115,140,127,192,85,192,238,112,126,190,149,42,220,142,201,114,79,28,
+249,46,51,248,24,182,246,24,3,215,29,41,12,202,15,9,122,190,224,145,193,250,95,169,236,125,120,247,166,188,135,3,254,66,4,228,240,173,39,7,142,70,111,88,116,57,31,54,51,233,197,0,73,246,131,207,203,115,
+129,207,252,122,76,126,185,196,39,63,150,7,126,180,134,224,231,34,57,216,117,249,173,101,3,158,185,6,21,252,70,239,210,161,51,178,240,26,251,168,25,60,176,56,228,113,115,223,250,243,158,13,39,157,47,25,
+107,192,49,223,0,14,120,56,105,207,62,163,191,61,249,160,9,154,224,156,131,4,222,219,45,165,95,78,228,244,247,219,158,189,51,194,111,39,159,34,227,39,176,73,115,249,40,239,128,56,231,183,209,130,105,1,
+226,230,113,159,80,79,160,57,1,200,28,247,255,0,235,212,137,53,192,25,91,153,152,228,30,35,25,244,63,51,2,120,250,118,227,61,192,1,184,255,0,203,189,199,30,171,114,15,28,28,140,134,192,207,169,235,214,
+159,131,222,9,187,244,251,72,231,0,227,253,103,29,199,92,100,118,166,249,151,32,231,237,51,242,120,206,208,122,117,194,196,122,123,119,60,140,1,67,77,118,79,51,200,78,57,195,18,113,239,152,15,65,142,70,
+127,165,0,73,176,16,113,20,227,174,50,110,6,126,159,190,36,96,156,158,7,97,197,42,169,25,220,36,81,234,207,49,198,14,57,221,41,35,250,31,90,128,201,118,113,137,164,3,221,142,71,110,130,217,179,208,158,
+221,125,197,0,222,49,230,229,136,224,224,153,78,58,116,63,96,97,198,63,49,223,6,128,39,59,58,137,31,161,39,47,41,228,253,38,252,143,191,174,5,32,100,207,36,158,255,0,235,166,231,190,78,110,1,31,67,223,
+219,138,136,173,200,231,205,83,216,124,132,245,62,167,76,201,231,220,82,236,185,98,51,49,29,190,88,128,198,113,212,255,0,102,128,125,49,142,70,121,205,0,78,88,0,56,227,61,165,115,216,118,55,99,158,120,
+252,187,28,168,104,243,247,228,4,224,113,35,117,224,115,186,87,24,207,24,31,129,230,161,49,92,15,249,110,224,14,135,28,142,121,224,105,71,249,228,231,142,105,184,159,145,231,59,0,114,112,64,56,247,15,
+165,168,245,199,35,242,232,1,115,128,62,89,15,185,39,39,143,125,221,190,131,167,181,27,219,24,19,40,206,48,11,127,77,195,219,150,60,255,0,58,120,127,239,76,79,125,211,68,185,193,245,254,207,227,142,196,
+122,138,112,44,48,15,154,65,3,63,233,8,50,72,25,231,251,63,24,199,94,63,250,192,23,54,146,56,152,115,207,18,0,48,7,7,151,7,62,254,158,216,169,60,185,59,76,126,190,99,159,81,129,243,176,63,135,183,122,
+169,187,162,149,184,39,212,78,157,189,127,226,91,159,233,154,145,72,207,9,55,227,115,233,237,253,155,207,183,32,228,119,160,11,75,21,193,224,74,9,62,236,216,227,216,19,223,174,14,125,41,126,205,122,199,
+135,110,152,192,87,110,114,79,0,0,123,251,127,132,66,89,23,164,46,192,127,122,240,175,30,227,251,56,116,237,131,143,95,116,243,229,4,31,41,87,166,49,120,119,110,56,235,254,140,163,143,126,163,211,145,
+64,19,253,143,80,39,151,101,32,113,136,36,110,50,115,134,17,183,225,144,126,189,40,54,154,138,156,137,157,123,228,65,115,156,122,18,176,247,244,29,241,245,168,190,208,228,40,40,164,231,39,117,235,31,124,
+129,179,111,183,32,158,123,100,138,83,60,128,140,197,111,223,27,174,151,60,99,29,84,99,35,215,146,79,60,0,104,1,230,219,83,200,31,106,147,140,140,180,55,163,143,111,220,175,28,118,246,231,4,138,62,201,
+169,114,13,211,140,122,37,248,57,224,227,238,15,175,254,131,199,34,51,112,196,130,82,223,158,155,39,87,250,12,150,57,252,63,173,60,207,43,1,181,98,29,243,149,207,81,140,157,188,129,207,124,30,153,198,
+48,1,32,178,191,35,62,124,196,15,225,242,245,15,212,178,99,144,57,201,244,231,61,91,246,59,213,251,147,74,15,253,115,212,113,158,58,236,135,190,79,67,211,189,71,246,137,185,253,228,11,235,148,79,203,230,
+66,63,92,243,199,179,126,208,228,129,231,66,15,60,128,152,236,58,0,51,193,25,4,17,212,115,146,40,2,199,217,47,216,0,102,112,58,103,102,165,201,3,167,48,103,183,175,214,154,214,87,60,230,226,124,103,144,
+33,213,72,198,71,24,22,248,200,245,60,103,167,187,77,204,159,243,245,30,59,98,43,114,127,84,201,224,123,115,250,183,207,29,238,135,185,11,108,15,229,179,3,130,63,66,65,235,64,14,91,75,143,249,248,155,
+0,231,62,78,169,193,237,140,218,246,231,190,127,42,113,181,148,31,245,242,231,254,185,234,128,242,115,200,251,56,31,137,4,30,64,199,25,143,207,135,3,117,195,17,207,67,96,6,57,207,252,179,246,29,79,92,
+240,113,81,153,109,248,6,228,140,247,18,88,142,125,63,212,73,207,39,234,73,226,128,38,54,205,208,188,184,233,247,117,14,115,238,208,100,123,246,226,149,109,227,7,12,178,19,215,32,93,3,142,113,128,109,
+207,7,7,62,189,253,42,1,37,167,123,135,61,49,182,107,47,126,184,179,245,207,29,41,185,179,56,62,100,172,125,12,182,67,242,205,144,252,242,115,199,60,228,128,92,242,226,0,174,103,3,24,224,220,3,215,140,
+147,7,161,28,224,241,248,3,17,242,64,233,47,60,114,196,28,30,164,159,35,158,196,112,115,211,28,156,87,197,161,60,144,8,254,244,246,75,215,190,22,221,78,120,231,131,252,169,65,178,56,44,16,244,200,51,219,
+246,228,28,24,0,245,198,56,57,7,189,0,74,60,129,157,178,63,61,71,155,248,227,230,182,207,29,50,15,62,253,40,102,132,12,249,136,8,3,59,203,131,146,59,17,108,7,60,116,206,57,193,168,75,217,227,10,145,244,
+227,116,209,12,15,92,8,177,142,1,228,227,61,42,61,214,156,15,42,46,217,255,0,74,132,12,14,56,196,63,94,7,244,160,9,133,212,107,209,144,142,58,72,87,167,98,26,18,79,29,255,0,46,135,33,188,67,252,15,142,
+7,203,58,247,231,159,220,96,140,31,126,222,181,1,146,220,18,68,86,216,28,141,215,128,243,211,162,199,131,131,223,0,140,226,144,205,9,232,150,103,158,8,154,67,134,250,164,13,220,99,24,192,231,138,0,147,
+237,49,177,193,12,48,79,30,108,120,39,156,103,228,199,25,228,129,145,147,147,211,8,94,51,213,138,142,184,251,73,193,207,208,12,96,250,113,159,165,52,79,31,65,111,3,119,249,94,119,28,255,0,219,144,231,
+60,96,17,239,236,211,113,131,145,109,18,140,117,197,206,112,123,225,109,114,127,63,95,99,64,18,22,206,66,204,195,174,63,210,159,3,129,200,218,235,158,112,15,83,250,154,140,110,239,46,122,159,150,225,200,
+198,113,140,137,64,233,250,146,48,115,64,187,114,9,242,35,200,32,100,69,118,113,207,80,77,184,57,224,116,7,30,190,168,110,92,14,22,51,215,130,183,132,224,116,28,90,176,28,112,14,1,60,227,20,0,162,34,195,
+62,99,3,140,113,61,192,235,208,252,179,0,121,233,159,229,79,242,165,3,229,149,142,79,121,167,7,143,165,202,254,39,143,94,228,212,127,106,152,174,21,23,60,240,171,56,234,58,29,214,160,241,211,163,122,122,
+138,143,205,187,108,229,23,129,128,2,205,156,125,62,202,71,183,64,58,102,128,29,34,92,130,113,43,1,206,118,79,32,63,173,208,61,184,201,4,231,168,7,152,153,46,49,147,114,203,129,198,233,176,115,199,93,
+215,132,183,110,220,100,118,234,51,93,30,54,33,32,113,190,38,57,228,143,226,181,4,117,4,14,160,158,42,22,23,68,159,221,32,56,199,22,203,147,212,240,90,3,235,199,28,246,61,136,2,149,148,2,126,221,18,140,
+241,186,114,50,71,184,191,94,135,130,49,193,168,91,207,228,13,78,212,17,206,62,211,41,207,176,255,0,137,162,245,250,14,63,10,26,59,188,110,242,36,35,251,203,21,176,193,199,76,52,32,123,19,145,158,113,
+200,166,19,122,48,4,46,8,0,114,150,159,135,252,177,56,227,245,244,160,8,221,174,135,63,218,81,55,80,0,157,176,127,22,213,123,15,124,103,60,85,99,37,217,39,58,138,241,206,211,42,227,215,175,246,147,3,211,
+248,136,224,99,154,181,254,157,146,77,179,183,24,229,173,1,228,116,193,131,32,28,142,224,30,167,165,65,44,119,164,18,45,220,99,144,3,90,231,211,63,234,122,231,156,246,61,241,138,0,133,164,184,193,221,
+122,27,60,99,206,65,208,243,147,246,230,201,198,63,187,223,219,16,52,242,40,201,184,80,125,229,143,177,207,252,254,156,253,7,94,216,56,167,52,87,131,254,93,165,201,238,94,2,72,231,131,192,24,239,156,14,
+125,5,86,120,110,207,91,105,248,60,226,91,124,243,233,201,206,126,185,246,235,64,13,121,207,57,156,115,129,196,176,228,253,51,122,114,58,244,56,7,184,224,26,237,118,23,118,110,88,12,0,113,52,32,28,0,57,
+197,201,24,231,4,114,7,126,184,169,12,115,142,62,207,62,122,241,58,231,32,227,174,15,228,72,201,3,29,115,81,249,115,243,254,143,115,235,242,207,156,127,223,24,245,192,60,245,228,142,148,1,15,219,35,60,
+125,166,71,57,224,44,208,28,142,128,16,37,36,227,241,207,82,77,33,185,76,127,172,159,62,130,120,65,231,216,202,57,255,0,35,214,156,203,114,63,229,141,246,7,165,203,12,122,240,31,62,223,159,185,168,88,
+92,19,147,21,226,231,160,50,187,99,36,113,196,128,123,117,235,159,108,0,49,174,224,92,2,110,59,231,51,218,244,235,222,82,65,224,118,193,53,19,93,219,117,37,193,236,94,123,47,92,114,70,72,199,80,79,30,
+158,235,36,119,4,228,67,118,59,231,124,164,30,123,143,181,71,211,4,103,143,94,184,196,36,92,47,85,156,31,127,59,56,39,169,3,81,221,211,211,28,117,29,69,0,60,222,64,6,60,216,240,70,126,107,171,37,63,82,
+25,79,226,112,121,57,192,57,168,141,212,68,100,77,110,58,117,188,179,3,235,196,88,198,58,224,159,215,20,127,164,116,34,102,245,249,110,71,39,177,206,162,57,235,198,51,158,123,84,101,166,25,6,57,79,92,
+229,36,39,233,205,249,236,61,123,227,35,173,0,49,174,83,7,23,112,130,58,102,230,211,223,144,118,16,123,142,231,240,224,196,110,213,73,205,229,191,3,254,126,109,0,39,29,206,220,14,59,100,231,29,186,135,
+51,48,206,98,152,99,183,147,41,227,219,26,134,61,113,131,142,190,213,93,203,127,207,47,161,107,119,56,235,140,238,189,36,113,201,207,94,185,228,228,1,230,249,9,63,191,180,108,0,50,110,109,138,142,199,
+56,195,17,235,140,130,7,4,84,13,116,31,59,78,156,78,58,253,170,221,125,120,56,149,123,99,223,183,108,213,71,112,189,70,15,175,144,20,118,232,126,213,158,157,121,63,78,152,172,94,62,11,44,99,60,146,97,
+92,159,252,152,111,199,56,199,29,104,2,219,200,91,156,233,231,177,219,123,23,28,117,255,0,143,165,247,61,192,61,49,138,133,154,67,247,127,179,248,200,24,190,67,201,245,255,0,72,36,99,212,156,122,213,118,
+146,17,252,49,156,255,0,211,36,231,30,222,103,124,14,121,231,25,237,80,188,150,249,251,177,228,140,127,170,76,125,6,115,207,211,185,160,11,5,167,25,32,105,227,175,252,191,224,224,250,109,149,190,152,199,
+78,245,27,53,198,78,86,200,244,206,47,216,231,166,62,227,158,132,227,215,175,29,49,81,150,221,179,136,99,39,212,198,157,57,236,34,7,144,122,253,7,122,174,233,26,158,45,226,35,156,101,20,14,167,169,104,
+113,252,198,57,250,128,93,99,54,48,124,133,207,80,151,151,4,114,61,167,83,211,240,21,93,196,227,59,118,30,63,231,250,229,115,158,128,126,252,142,195,25,199,61,120,197,82,36,114,5,180,4,103,7,146,7,94,
+122,32,25,235,208,31,66,56,0,183,156,96,91,64,125,150,71,244,207,42,96,110,135,219,7,242,160,9,220,206,115,145,25,56,255,0,160,148,249,244,239,49,227,158,50,79,61,187,136,72,156,131,195,39,80,74,234,19,
+99,60,250,76,9,247,231,3,62,252,194,229,134,63,209,134,115,158,4,141,235,192,197,176,57,233,207,31,78,113,81,141,220,109,180,147,174,11,4,184,96,7,99,242,192,71,185,234,49,147,142,40,2,127,46,99,201,150,
+227,219,110,163,48,0,119,33,126,212,15,61,242,112,123,224,212,77,189,71,18,220,103,140,159,237,9,200,253,110,136,7,249,142,56,56,53,3,137,250,172,14,9,60,143,34,236,244,199,100,128,142,114,79,204,122,
+143,122,133,190,210,57,242,28,18,59,219,222,100,119,228,121,39,61,177,128,70,121,231,176,4,173,230,96,31,62,224,18,123,94,76,221,125,113,116,15,191,78,163,28,230,161,110,153,251,77,209,57,228,125,170,
+224,126,162,243,191,31,82,126,180,194,243,140,229,10,244,235,111,124,163,61,59,91,17,219,158,156,145,219,52,195,60,192,16,200,70,125,96,191,201,28,243,197,182,61,64,239,158,128,208,4,108,57,63,189,186,
+32,113,205,229,216,235,235,182,243,145,158,14,120,199,99,76,118,140,14,68,228,99,140,92,206,73,198,63,139,237,138,221,63,31,115,210,156,110,14,123,1,219,41,121,250,238,181,192,193,233,143,115,146,41,12,
+204,79,14,160,30,127,213,220,241,142,191,122,205,129,56,57,227,0,142,231,154,0,174,101,141,115,196,192,99,156,220,206,70,58,231,38,237,143,63,151,52,195,113,8,233,230,115,140,129,115,55,24,207,57,23,39,
+240,232,126,157,167,107,135,0,254,249,20,14,63,212,220,99,156,127,211,136,3,241,30,252,14,106,47,180,48,255,0,151,155,124,156,28,52,87,0,250,116,251,32,7,142,14,8,199,94,121,160,8,76,209,144,78,91,142,
+121,186,186,234,126,151,4,115,140,28,241,252,195,124,240,6,76,113,17,158,166,226,237,191,48,37,63,65,193,231,60,250,89,55,123,67,31,180,217,99,221,37,0,250,240,96,94,160,123,113,248,226,35,125,26,242,
+103,211,193,238,66,75,147,158,79,68,199,167,167,106,0,131,237,99,166,33,239,147,231,207,237,198,214,98,125,61,253,135,112,220,113,129,28,7,62,179,79,142,189,136,13,146,122,242,48,61,69,74,111,226,234,
+37,176,235,130,113,32,39,184,235,108,196,119,250,243,72,183,97,135,7,79,97,254,243,254,60,27,62,6,6,57,192,232,58,80,3,5,202,243,254,141,108,120,206,68,247,35,211,146,49,158,63,158,56,199,21,34,207,25,
+235,5,176,24,200,204,147,247,235,142,153,250,159,83,211,52,199,153,120,4,233,192,250,100,253,112,51,102,15,76,103,167,210,152,94,50,50,198,203,105,35,238,227,25,60,112,126,204,63,62,79,3,211,128,9,204,
+241,241,136,237,135,253,181,184,0,117,35,238,191,61,121,24,61,248,207,20,195,50,103,62,69,139,115,247,77,197,224,3,156,99,253,91,28,142,227,112,24,231,39,173,86,111,40,28,131,107,201,231,150,199,167,63,
+232,185,35,175,0,30,227,165,27,160,127,188,214,167,167,1,101,7,39,167,62,80,83,144,71,80,122,14,253,0,39,50,130,112,45,44,95,32,117,185,190,35,191,176,207,255,0,88,10,143,113,7,254,61,108,125,71,239,174,
+249,29,49,201,24,63,161,231,140,210,121,48,144,48,182,231,35,156,121,153,61,51,199,149,142,188,142,188,14,40,48,196,71,252,178,0,30,152,148,142,221,188,131,223,28,15,229,212,0,204,110,1,107,75,79,125,
+179,207,158,122,117,207,62,153,250,84,101,35,39,155,40,49,208,237,150,70,227,182,64,235,236,62,185,28,145,79,91,116,7,129,1,207,36,149,155,35,177,198,109,79,61,79,45,211,156,140,212,158,73,81,255,0,44,
+6,72,232,172,115,215,191,217,148,143,196,227,31,141,0,65,136,65,255,0,143,56,149,125,11,205,212,116,36,2,72,239,208,96,231,158,180,132,68,71,22,208,140,0,1,223,43,103,24,207,92,247,60,145,145,236,59,88,
+216,0,201,120,151,253,216,220,147,234,1,9,158,49,201,200,198,58,83,112,51,128,224,159,250,230,248,250,253,222,159,207,143,173,0,64,18,49,207,145,110,56,25,63,189,228,243,198,10,115,215,177,235,212,19,
+78,242,215,0,249,17,31,247,98,152,245,200,200,33,72,199,212,30,156,227,138,155,37,126,236,128,16,49,128,146,126,31,242,200,126,60,243,218,143,180,202,163,30,106,125,60,167,108,99,190,89,8,237,199,3,60,
+227,61,64,4,107,26,228,102,217,57,239,228,203,216,143,246,23,147,142,61,64,61,71,52,84,191,106,98,48,28,241,212,136,149,64,255,0,190,162,32,254,35,6,138,0,251,48,216,167,252,242,132,244,225,146,33,129,
+219,27,8,235,249,31,74,141,173,99,7,254,61,224,36,31,155,144,125,121,198,211,250,176,200,252,64,211,243,97,200,6,246,232,231,161,222,87,61,241,147,118,64,237,193,0,251,211,75,71,130,5,220,253,14,7,156,
+163,143,160,149,189,250,244,239,144,13,0,101,24,87,144,45,237,136,234,1,35,29,123,124,235,129,147,215,160,234,87,181,68,97,4,159,244,75,96,15,35,253,86,123,130,63,214,228,116,199,94,113,211,156,85,247,
+32,146,62,213,62,51,222,71,199,166,120,108,113,142,152,224,246,230,161,116,36,228,221,220,46,122,157,236,71,234,14,49,254,122,80,5,67,108,88,109,22,214,160,231,56,204,35,183,168,152,49,235,207,79,94,148,
+207,176,63,252,251,91,28,115,242,188,121,35,175,252,247,199,94,122,117,199,122,153,161,67,215,82,184,25,206,54,202,171,156,247,3,4,241,237,128,7,60,84,94,76,99,254,98,115,177,224,252,215,17,244,245,57,
+95,234,49,250,0,8,218,194,76,146,109,109,193,206,70,94,53,39,169,237,49,227,3,168,3,212,117,166,253,146,113,143,244,107,92,118,217,48,29,51,193,59,207,3,219,147,216,84,141,0,101,249,47,156,142,217,158,
+33,184,241,254,200,236,121,199,183,21,92,219,48,60,220,179,100,145,254,182,50,58,30,191,40,200,247,7,29,104,1,237,101,59,227,16,66,189,63,229,170,158,126,155,15,83,144,63,253,120,79,236,203,131,213,34,
+7,29,156,130,8,245,33,64,227,175,79,95,76,211,62,206,79,62,121,227,254,154,192,125,123,109,39,220,245,206,58,231,0,6,197,179,143,49,207,31,222,140,140,117,224,136,142,61,57,56,224,243,138,0,119,246,84,
+221,119,70,9,245,222,71,78,135,229,247,25,39,56,63,163,255,0,177,156,140,51,194,51,220,7,244,234,6,194,7,78,235,207,76,147,197,66,108,101,110,172,231,216,12,103,216,98,46,254,252,126,66,149,44,102,94,
+72,114,49,198,124,190,231,7,57,79,64,71,61,250,30,180,0,211,163,158,126,117,199,60,121,114,28,28,122,44,89,233,223,175,79,106,140,233,68,30,85,27,147,214,43,162,72,235,252,49,142,79,212,116,61,192,171,
+45,109,40,198,17,88,245,10,219,50,125,198,20,227,208,242,62,130,158,32,188,81,149,182,136,140,158,67,19,147,147,199,39,156,231,176,236,122,100,80,5,95,176,21,254,13,189,0,62,69,233,94,135,168,192,235,
+140,123,99,61,115,78,22,96,231,228,136,156,117,54,154,131,103,29,250,243,235,208,15,97,86,252,139,188,15,244,40,88,158,135,103,62,185,224,158,221,56,237,77,107,107,178,121,181,140,15,64,192,103,62,188,
+31,126,252,114,51,198,40,2,185,176,39,57,16,17,212,3,167,223,237,29,254,240,144,126,164,241,249,24,141,139,14,86,43,70,0,114,27,75,191,198,126,190,122,158,49,201,192,57,198,120,171,158,69,208,0,45,186,
+41,61,188,200,200,233,216,20,233,245,227,3,241,1,183,186,199,205,7,61,127,214,160,29,56,198,2,224,114,51,212,228,253,5,0,84,16,58,117,182,178,4,1,199,216,111,87,36,227,29,110,10,243,236,79,185,201,228,
+17,201,156,253,154,215,28,130,126,195,63,39,62,247,3,140,15,81,142,64,29,113,107,109,212,89,30,66,47,61,238,113,147,212,140,249,131,183,62,222,158,146,111,184,198,124,164,32,3,210,234,28,129,198,49,190,
+97,220,247,253,77,0,81,217,32,25,54,240,40,245,251,36,248,245,36,102,231,129,198,14,58,123,10,149,25,248,11,28,24,233,129,101,47,167,175,218,201,61,57,200,3,208,146,48,103,105,37,56,204,17,28,14,55,220,
+66,127,81,48,252,176,122,15,122,64,88,227,253,30,3,207,107,136,129,231,3,57,19,146,78,51,140,231,156,250,224,128,42,238,115,128,32,83,219,54,128,30,188,125,235,174,153,199,111,110,7,87,132,100,4,151,139,
+24,251,166,210,60,131,159,247,217,142,8,235,146,189,57,32,130,37,93,193,114,96,239,208,92,194,195,142,128,230,99,140,99,4,143,65,198,56,167,130,195,0,65,18,142,188,221,68,50,64,231,56,115,158,217,61,104,
+2,13,172,71,5,113,211,139,91,85,39,212,3,156,158,231,191,78,78,121,167,140,140,126,237,207,25,202,195,104,23,29,0,229,136,4,31,196,227,142,42,113,42,241,186,40,115,235,246,160,113,236,113,40,4,31,211,
+175,20,230,242,219,131,21,184,224,131,251,220,103,215,230,89,79,97,156,228,142,50,78,51,64,16,238,39,3,18,1,159,249,231,108,57,238,78,14,79,35,130,125,177,142,41,119,16,0,221,57,198,63,130,213,134,70,
+50,58,231,245,29,199,92,138,120,88,135,72,108,243,200,203,93,28,250,231,13,57,25,227,145,142,217,221,215,19,4,129,198,13,181,155,0,57,253,242,144,126,191,188,39,158,48,120,207,95,74,0,173,230,109,234,
+147,16,57,36,219,196,125,122,148,110,152,7,175,167,108,114,130,229,112,115,110,236,61,237,215,159,192,156,250,227,0,117,231,61,42,215,217,45,27,31,232,86,164,31,250,104,189,199,177,56,245,245,192,56,245,
+18,37,156,31,195,99,107,158,121,18,246,244,24,70,29,62,159,95,80,10,66,92,28,173,171,123,230,211,32,126,185,254,96,254,28,41,185,151,167,217,120,62,182,69,143,228,36,29,56,228,96,119,224,154,212,22,113,
+14,69,170,0,122,237,144,147,215,63,220,3,31,129,56,24,166,181,180,120,57,183,39,166,119,49,192,250,229,72,25,61,58,116,233,200,160,12,225,123,38,14,45,64,4,245,22,36,17,158,252,221,33,227,39,168,0,243,
+142,105,194,230,67,130,45,129,61,243,104,64,231,142,72,188,227,166,114,79,215,166,106,239,149,8,28,67,140,129,208,185,29,191,186,128,123,99,145,205,35,69,25,193,84,147,175,253,52,0,12,244,229,120,200,
+250,116,244,160,10,230,230,96,70,109,192,35,61,109,100,227,215,159,181,144,71,94,132,125,115,74,46,101,228,249,8,114,59,89,200,127,6,205,231,29,185,232,115,244,205,149,77,167,1,36,36,117,27,165,29,51,
+219,129,233,142,122,30,163,21,40,36,2,12,83,158,123,9,8,238,121,192,36,253,126,188,116,52,1,84,92,146,0,48,66,127,238,31,43,158,157,136,153,190,164,231,130,48,41,225,157,136,38,214,223,28,242,116,230,
+7,176,254,41,243,219,248,177,218,173,114,56,242,167,29,63,231,190,71,95,115,233,219,28,158,125,4,138,238,184,193,184,3,175,250,203,142,61,240,127,12,227,211,7,20,1,88,111,193,204,48,174,56,0,105,233,199,
+79,250,121,207,168,197,0,183,0,193,19,14,72,31,98,10,61,71,91,163,215,161,232,65,231,184,171,166,118,7,153,174,113,140,115,52,224,99,140,142,184,199,169,4,113,138,65,116,167,63,189,155,208,143,54,115,
+223,191,239,123,247,198,61,135,98,1,80,12,31,248,245,135,156,244,183,143,61,179,145,246,130,71,111,78,131,131,154,86,80,71,54,177,55,97,152,80,99,61,122,57,198,115,234,125,120,7,155,171,44,120,228,231,
+158,119,52,196,241,199,105,6,14,73,224,28,31,110,106,194,201,111,129,215,160,60,139,142,15,67,130,46,1,198,7,160,200,238,40,3,28,252,167,254,60,225,198,6,113,25,28,0,61,14,51,219,169,250,116,163,17,147,
+255,0,30,145,140,247,242,129,60,30,62,243,224,227,160,60,103,30,217,173,244,146,223,166,213,57,61,73,184,192,255,0,201,147,129,244,31,227,82,6,181,39,30,92,109,216,140,93,31,253,175,248,18,51,219,131,
+138,0,192,16,199,193,251,26,14,115,196,40,6,71,76,28,183,231,144,71,95,65,79,17,174,113,246,72,143,3,4,172,100,244,231,230,224,241,219,245,206,107,108,125,151,4,249,40,7,31,243,243,142,122,146,26,224,
+158,59,244,30,156,102,151,22,131,63,186,141,177,216,9,134,15,126,60,226,115,199,114,40,3,25,86,53,57,251,42,3,158,2,148,200,246,225,186,143,175,94,157,233,227,97,227,236,184,56,0,16,236,6,57,228,225,177,
+142,190,221,0,197,107,6,179,232,214,145,176,227,56,73,73,24,245,204,255,0,94,113,131,250,212,128,216,31,187,103,7,60,2,201,113,198,115,206,4,227,62,216,253,59,128,100,130,0,255,0,81,183,158,166,65,219,
+176,27,79,94,160,0,6,61,114,48,229,42,122,162,128,79,118,98,61,49,196,93,248,231,61,186,214,178,197,104,121,54,176,125,2,78,163,241,45,112,127,158,58,243,197,68,226,207,36,24,109,83,32,103,115,202,65,
+246,226,235,0,242,79,241,126,61,104,2,154,133,207,8,0,39,168,47,239,207,250,188,28,125,57,244,230,164,4,3,202,177,231,254,121,231,140,100,253,248,135,60,231,39,142,164,3,210,165,41,102,65,200,180,199,
+111,222,206,190,188,28,92,0,6,113,207,57,235,245,140,139,98,112,22,215,24,235,231,76,65,3,130,21,133,193,237,207,60,227,158,7,52,0,19,24,36,8,242,58,2,97,78,189,57,2,28,254,71,61,58,113,151,44,168,57,
+49,196,7,163,68,87,30,160,109,131,7,57,224,114,123,212,69,45,122,5,183,245,202,206,253,50,15,95,60,147,219,7,156,246,29,169,224,90,41,195,24,122,224,22,184,36,14,14,51,243,49,29,241,158,252,116,160,9,
+12,136,78,87,201,233,156,136,156,144,113,128,57,64,121,244,224,14,131,24,229,4,206,7,14,8,233,129,10,227,28,142,119,33,28,250,118,239,201,168,247,89,130,74,249,15,254,237,203,244,255,0,116,12,19,156,247,
+199,251,64,228,22,31,178,176,31,52,107,199,65,44,167,211,184,200,237,239,235,237,64,19,25,29,137,37,163,245,249,173,163,111,212,66,73,39,175,61,56,29,114,41,172,231,177,82,122,101,108,227,198,73,207,0,
+198,1,201,207,97,211,143,106,140,34,199,18,38,49,143,191,41,206,58,125,226,49,219,160,3,158,7,38,154,94,37,7,34,54,57,238,242,115,192,227,135,192,239,140,19,244,227,4,2,233,145,134,63,116,199,3,131,246,
+43,126,152,236,60,188,123,115,235,215,166,98,118,98,78,248,220,15,95,176,219,254,7,30,94,223,235,237,218,160,89,34,63,242,198,60,244,225,166,63,65,149,200,227,219,63,159,5,119,40,25,22,145,182,61,94,110,
+254,185,101,61,79,161,247,247,0,118,229,199,10,192,241,215,77,180,233,156,114,54,243,159,94,51,147,129,72,8,206,65,25,3,182,155,104,64,60,250,169,7,30,184,237,199,173,25,227,38,194,3,142,114,206,248,235,
+252,63,56,207,167,78,190,181,19,72,1,192,178,183,200,235,144,228,117,61,196,234,51,207,78,252,100,113,192,4,187,220,3,151,39,190,63,179,172,201,7,146,122,219,250,144,49,207,94,181,17,149,193,25,102,32,
+228,143,248,150,233,255,0,47,229,7,0,103,174,7,83,145,218,131,51,48,255,0,143,11,66,48,8,206,241,200,60,244,187,207,76,231,160,164,89,103,193,11,167,219,237,28,6,12,248,246,63,241,252,164,14,221,9,24,
+228,1,64,8,100,110,165,100,108,240,113,166,88,147,249,139,126,128,115,193,237,207,188,91,144,158,146,131,131,131,253,149,102,71,25,238,109,198,15,112,58,251,117,53,41,146,227,156,89,219,228,158,129,202,
+96,113,145,243,106,139,237,142,125,120,32,82,239,185,198,126,201,108,51,142,13,193,7,147,233,253,168,113,156,231,35,233,201,52,1,14,216,248,35,204,61,122,233,182,132,30,115,201,17,113,239,212,246,201,
+206,105,12,107,142,12,156,116,255,0,65,128,123,127,207,47,200,96,231,210,167,219,49,231,236,182,185,239,251,230,108,14,195,63,218,61,142,121,239,154,66,151,56,193,182,128,118,192,98,51,249,223,227,223,
+39,128,122,240,121,0,172,54,161,235,57,227,39,253,10,12,126,63,32,235,212,28,2,7,215,20,134,86,254,17,33,7,174,44,227,3,60,122,39,31,135,231,233,96,253,168,127,203,188,99,166,10,201,6,56,207,63,241,251,
+156,227,185,30,188,244,166,179,93,3,129,25,3,175,18,70,9,235,253,219,131,142,188,115,159,94,115,64,21,252,217,6,51,191,254,5,108,189,198,57,249,51,215,208,147,233,207,52,214,121,121,249,89,189,49,110,
+199,232,65,202,227,242,60,119,171,139,37,241,28,44,228,122,137,215,31,142,102,39,216,118,199,208,210,22,187,111,188,183,30,164,121,232,122,119,192,159,158,152,237,156,80,5,61,210,14,137,32,201,28,11,119,
+61,79,251,231,7,220,96,122,241,78,6,124,224,121,224,28,156,253,157,199,95,163,129,219,183,111,175,54,63,124,71,43,112,15,56,249,208,156,147,220,9,250,227,147,199,111,76,83,134,123,199,51,17,254,218,122,
+14,73,19,28,129,232,123,117,230,128,43,134,152,30,55,241,216,197,48,244,224,226,81,233,211,56,20,239,58,97,209,92,100,128,127,117,46,50,112,58,188,152,228,142,58,228,250,103,53,107,115,231,253,84,160,
+118,203,142,135,57,228,205,143,94,167,241,61,129,36,137,200,73,122,246,149,84,231,140,129,139,142,120,234,120,224,145,129,138,0,170,102,156,231,46,123,156,20,98,0,63,89,49,219,159,243,151,12,144,49,36,
+68,145,209,163,43,215,211,230,35,167,169,199,214,172,125,160,245,34,92,242,112,110,254,131,181,200,244,245,252,169,191,105,32,255,0,203,81,199,67,113,49,7,183,240,221,0,7,29,7,160,7,52,1,24,128,159,188,
+208,128,113,206,209,198,113,234,72,31,90,112,183,94,237,27,28,246,8,7,36,245,59,59,12,16,125,199,3,154,120,185,76,242,187,178,115,204,147,156,99,166,127,210,189,59,3,211,215,154,105,150,220,253,229,139,
+62,167,120,0,227,251,198,229,184,60,112,121,224,227,52,0,241,107,30,1,97,26,227,159,155,97,250,129,186,22,61,0,56,198,6,71,175,45,146,210,212,231,152,24,227,128,85,9,231,57,201,242,127,48,121,244,228,
+102,129,45,169,254,11,98,56,233,44,132,30,59,17,57,237,223,208,31,106,113,123,95,238,192,61,150,89,123,15,105,253,70,7,39,30,188,16,0,43,253,142,204,100,133,181,199,114,209,161,61,177,202,192,70,15,56,
+206,58,16,51,79,22,214,167,3,22,103,158,129,78,127,244,71,95,80,1,233,82,249,182,157,0,132,28,117,15,112,79,78,79,19,145,239,199,2,160,103,135,57,6,46,157,67,72,61,123,22,57,245,199,122,0,113,180,182,
+206,64,181,25,236,80,47,24,231,25,178,60,224,254,126,244,162,218,220,28,121,80,48,247,11,131,192,199,31,100,24,246,249,125,15,214,50,209,156,100,41,35,176,47,206,122,112,70,51,131,211,168,230,157,186,
+60,19,180,15,164,36,145,237,243,3,219,56,234,51,235,214,128,38,16,194,188,8,97,11,145,140,135,35,182,6,22,220,99,160,28,14,79,124,28,211,182,198,167,229,251,56,35,31,193,114,49,158,160,19,14,51,147,131,
+223,25,199,53,10,200,49,129,184,156,143,249,100,184,207,92,224,160,199,64,126,153,201,206,105,217,126,78,64,207,253,50,4,12,96,242,66,159,160,193,228,116,238,64,4,196,3,222,220,116,224,155,174,65,193,
+227,247,32,123,251,103,167,64,26,81,115,204,150,203,234,8,184,39,190,127,229,150,122,254,125,128,166,44,178,47,221,36,17,208,236,101,4,131,235,144,7,80,122,231,169,226,158,110,174,6,62,105,6,65,237,47,
+111,70,14,64,57,199,106,0,25,20,16,65,183,35,158,55,74,189,189,25,15,235,158,72,62,181,42,144,57,81,107,158,114,12,251,79,212,102,28,243,144,59,244,201,227,172,63,109,187,24,219,43,17,208,110,243,50,113,
+215,24,83,199,126,71,92,241,142,42,51,121,122,220,9,16,227,213,165,92,115,215,38,44,122,122,140,247,227,0,2,219,16,113,242,218,3,129,210,104,148,119,31,196,185,201,3,169,4,159,203,12,44,153,229,108,143,
+32,127,199,197,176,35,7,25,63,42,156,142,228,140,224,117,57,192,174,46,239,57,204,139,192,32,225,164,110,0,200,56,242,71,227,215,158,231,28,187,237,87,28,49,145,50,49,206,217,136,25,199,162,112,127,28,
+251,240,104,2,93,209,131,194,217,140,118,243,237,200,193,207,66,114,51,198,120,60,100,12,17,72,204,159,243,206,220,140,15,187,45,176,24,200,28,225,70,59,122,123,251,64,247,50,156,252,193,129,57,192,107,
+133,28,3,212,20,29,71,31,151,76,208,36,156,140,132,82,7,98,215,7,175,78,54,158,217,232,57,231,158,180,1,40,195,18,4,17,145,223,55,86,203,248,12,145,207,211,131,145,158,51,73,132,65,159,177,194,125,254,
+217,105,187,223,61,51,156,227,142,253,1,239,8,121,115,243,66,79,61,164,185,227,160,35,133,192,237,219,215,61,233,75,202,185,197,180,131,129,210,105,215,158,189,3,103,241,192,63,135,80,7,153,33,108,255,
+0,161,71,207,165,205,177,56,0,114,78,71,94,188,28,12,122,99,9,230,70,79,22,152,31,245,218,215,230,231,182,39,207,98,71,25,227,29,70,42,51,43,131,255,0,30,178,177,7,39,247,215,25,62,189,88,103,166,15,83,
+212,122,96,243,37,32,127,161,190,58,115,60,138,70,125,1,124,143,200,103,215,52,1,49,144,118,183,0,119,253,236,39,215,186,206,63,250,223,150,99,46,164,243,22,49,254,218,145,159,82,55,57,61,50,73,61,122,
+102,155,186,124,143,244,23,60,245,19,110,3,233,186,78,58,14,48,7,39,191,52,165,167,63,242,233,38,61,26,76,14,253,118,224,12,19,156,243,142,121,32,208,3,247,41,224,70,70,56,251,205,193,235,144,0,31,137,
+193,200,206,49,147,74,190,111,85,4,14,216,36,140,247,57,224,228,123,228,147,156,224,241,80,134,144,103,253,15,45,255,0,93,206,56,60,231,39,143,78,131,219,142,66,6,185,201,219,103,24,29,70,110,114,79,67,
+208,185,233,207,29,123,224,80,5,162,36,234,89,64,36,245,12,195,142,112,65,82,51,211,0,129,159,97,75,134,231,18,199,201,228,24,163,108,117,227,253,81,199,29,71,230,50,70,32,205,216,235,111,16,31,245,213,
+9,7,142,133,155,30,163,24,239,212,82,31,182,228,226,24,242,65,233,52,0,250,117,220,112,121,4,224,147,142,114,7,64,9,247,182,0,251,68,107,142,194,221,51,129,198,112,35,83,234,57,24,224,31,168,20,224,183,
+218,215,7,57,255,0,71,35,211,140,136,136,237,200,228,122,230,171,99,80,32,129,28,56,110,62,105,151,223,57,30,91,131,159,76,99,158,106,69,181,212,88,127,169,183,201,0,228,132,124,242,59,249,4,131,211,174,
+14,57,239,64,18,18,224,41,251,108,120,29,188,177,206,59,12,219,28,143,78,49,131,238,41,124,199,60,11,232,70,127,233,132,125,253,63,208,207,183,161,227,184,234,134,195,81,35,152,173,49,145,156,70,132,142,
+121,224,70,57,57,198,72,193,244,235,73,253,157,126,56,217,110,189,127,229,146,142,157,114,66,130,57,238,115,158,157,49,64,15,11,49,228,94,70,65,224,17,109,30,56,199,165,138,19,211,158,72,25,28,228,243,
+25,73,250,253,190,53,235,143,220,169,253,13,190,63,28,119,199,20,167,78,190,39,6,59,98,7,77,192,3,219,175,24,244,199,229,223,52,191,217,247,221,4,54,188,127,215,51,199,224,164,231,255,0,173,220,140,128,
+70,99,151,157,218,140,100,14,131,202,80,51,235,197,176,231,215,131,211,184,170,229,28,31,248,253,80,51,145,242,32,28,244,192,54,188,31,212,85,177,103,122,48,26,43,94,1,198,216,213,185,247,253,217,0,100,
+142,227,235,138,141,173,238,151,254,88,90,224,117,30,90,130,57,30,137,158,51,219,255,0,172,64,34,30,96,233,118,15,29,120,255,0,227,32,115,215,128,58,224,10,105,50,156,255,0,166,147,140,240,164,113,236,
+0,132,128,121,235,235,130,106,93,147,12,238,130,199,211,230,86,4,255,0,227,163,145,142,131,36,18,123,230,144,103,169,180,210,242,79,86,68,228,145,192,249,193,228,131,156,19,212,15,173,0,87,45,55,107,199,
+233,215,116,120,198,61,60,181,199,175,78,188,250,208,170,248,230,233,200,199,247,17,179,215,28,134,199,226,7,80,61,115,83,52,187,115,139,93,45,123,124,171,10,231,142,115,242,245,206,123,99,208,10,132,
+220,178,156,180,22,0,28,131,181,144,156,244,247,235,199,32,159,106,0,82,159,222,184,115,233,133,199,242,148,1,223,243,60,245,203,14,23,4,220,92,96,99,238,132,32,158,221,110,115,200,199,24,206,49,77,55,
+138,120,49,88,228,30,1,100,39,175,92,16,48,58,228,16,125,135,90,62,210,135,254,89,233,224,143,250,228,199,183,99,32,227,35,184,235,219,24,160,9,55,166,56,123,166,231,210,50,127,38,184,24,239,206,239,160,
+205,27,144,117,91,194,113,215,17,1,158,253,110,58,28,112,1,247,60,230,161,55,41,159,187,98,6,15,240,71,216,12,156,137,8,235,223,143,110,185,164,50,66,220,178,216,30,58,151,136,17,142,157,39,28,103,169,
+201,29,192,61,192,37,14,63,233,236,3,212,149,136,231,24,200,192,184,30,185,4,231,29,187,229,165,200,229,126,211,255,0,124,199,156,100,244,2,224,145,192,245,207,63,157,114,109,155,239,13,63,212,147,60,
+99,160,233,196,195,220,140,159,199,214,23,48,96,224,216,119,192,23,49,227,140,227,143,181,126,3,143,195,173,0,92,4,176,60,221,231,156,3,28,125,190,178,17,207,79,196,82,5,144,96,238,185,245,32,199,25,63,
+79,148,55,243,198,127,92,198,242,199,221,125,61,120,3,153,83,223,57,255,0,72,60,231,215,142,113,80,31,40,30,100,176,247,6,84,227,7,147,197,201,56,206,78,70,61,8,236,64,53,93,165,0,144,46,25,123,145,28,
+126,189,49,176,158,248,233,208,103,222,171,22,184,228,40,188,25,60,226,16,192,115,219,8,15,211,25,200,198,123,138,207,100,136,158,30,197,113,223,204,137,179,255,0,125,220,28,145,198,50,125,65,21,25,140,
+0,71,155,98,114,79,31,184,60,115,215,23,42,121,30,156,119,227,140,128,95,50,222,47,95,181,99,158,90,218,76,31,199,201,32,127,95,214,171,57,188,57,32,202,1,231,30,76,192,142,156,100,65,142,157,64,233,212,
+228,241,85,93,128,200,243,44,7,92,115,6,56,227,169,187,110,112,6,120,227,140,118,170,237,43,47,30,101,151,39,32,143,178,147,140,246,62,99,103,25,60,100,158,221,104,2,227,27,252,31,248,248,198,58,136,103,
+239,199,67,108,122,255,0,135,53,92,155,222,65,243,207,61,173,164,238,0,231,253,5,178,115,158,248,245,239,84,90,230,225,115,182,91,81,211,24,134,221,143,161,231,36,123,227,167,127,172,6,234,243,60,53,177,
+39,24,38,202,6,201,201,231,32,28,231,174,49,140,112,49,198,64,52,24,220,158,89,38,61,135,250,57,192,56,233,205,145,25,207,175,76,224,96,212,14,179,224,17,12,135,142,79,145,235,208,227,236,3,145,158,167,
+39,159,173,83,55,55,228,125,235,124,231,140,233,144,156,115,142,127,116,73,235,158,253,242,105,166,125,64,158,150,248,246,211,35,198,57,233,136,193,231,234,57,231,189,0,61,204,224,99,202,98,125,60,133,
+231,216,102,208,12,244,235,158,122,231,165,70,18,224,231,247,51,16,122,226,222,28,231,215,31,99,35,142,59,228,28,227,174,106,19,113,124,88,133,40,49,216,105,167,216,228,225,115,158,49,193,7,190,50,56,
+174,242,223,168,4,200,184,32,99,254,37,174,1,199,169,218,79,62,231,174,79,24,2,128,45,60,115,129,196,36,0,79,88,98,233,131,255,0,78,132,3,239,198,59,99,138,166,194,98,112,97,98,58,18,34,135,158,14,7,54,
+170,120,232,71,65,159,92,102,35,115,121,140,101,27,156,127,199,148,224,140,30,196,68,112,1,57,36,131,215,233,85,204,247,188,228,160,32,158,182,151,28,243,215,229,183,61,189,79,174,113,210,128,38,48,186,
+158,109,166,199,56,196,54,199,62,156,152,7,231,130,122,156,116,205,103,4,17,152,36,24,207,38,59,69,25,24,29,173,142,113,158,163,24,206,121,206,12,109,37,209,236,153,206,57,180,189,24,24,231,164,67,61,
+243,215,190,7,122,137,154,224,19,188,194,48,57,38,214,249,79,175,86,141,122,96,3,131,215,24,244,160,9,139,176,60,67,145,192,203,69,111,234,15,24,137,70,114,112,0,57,237,80,179,183,81,17,62,254,76,56,3,
+223,0,17,207,208,17,145,235,80,52,143,222,104,16,99,254,120,222,47,3,56,24,3,147,129,142,57,62,244,214,153,2,144,215,54,231,241,189,70,244,39,104,92,159,113,222,128,17,231,151,174,205,188,159,249,100,
+131,57,35,166,25,112,49,199,60,115,198,14,105,162,102,198,118,177,201,199,17,169,60,118,56,185,95,115,192,252,69,64,205,17,235,60,121,25,237,116,121,250,144,70,121,231,159,194,162,105,34,124,129,58,28,
+113,143,223,103,215,169,139,36,115,199,56,24,224,147,64,22,30,87,0,224,178,231,25,221,9,207,126,226,240,12,103,167,94,112,58,156,85,99,60,220,143,55,161,233,229,48,207,3,159,248,252,111,229,81,63,146,
+65,221,36,120,206,14,75,174,120,255,0,174,121,224,246,200,227,28,122,87,97,1,206,13,185,3,140,157,227,4,231,161,49,99,145,142,252,224,224,113,64,22,188,215,108,126,246,30,189,91,104,252,57,184,57,228,
+30,49,245,200,168,154,114,160,143,54,12,142,120,198,125,177,178,224,122,123,145,237,222,155,36,29,141,175,176,204,141,235,212,132,247,234,127,83,80,176,132,2,15,217,61,115,137,51,158,159,243,204,159,212,
+142,216,160,11,77,62,122,180,45,159,95,51,31,250,84,163,167,169,207,74,169,36,187,142,21,45,84,14,51,243,41,238,14,127,210,15,92,114,14,78,56,228,98,171,176,182,228,51,91,115,223,108,156,31,98,16,122,
+96,228,126,21,17,91,51,206,33,108,30,54,253,167,143,81,201,3,61,248,29,250,241,64,18,179,142,112,45,184,234,197,164,235,200,3,63,105,227,140,244,3,245,53,89,155,140,238,181,238,78,76,167,223,179,183,81,
+206,73,29,248,197,68,241,90,54,127,116,120,60,109,89,143,177,254,34,57,231,30,189,207,164,123,109,19,143,41,199,92,2,37,95,78,184,224,103,212,228,158,216,160,9,139,190,6,30,200,227,140,17,63,79,92,132,
+112,114,58,224,231,61,177,205,68,93,255,0,189,98,1,234,64,184,31,158,109,255,0,30,249,230,162,111,178,245,251,57,98,63,218,155,62,231,229,95,111,127,167,122,99,203,110,189,45,216,1,199,222,148,158,156,
+96,16,9,199,215,159,126,224,15,121,120,0,155,98,123,96,202,114,71,94,26,216,231,142,120,198,113,215,210,50,242,0,48,34,199,166,217,9,4,140,242,68,0,250,144,63,157,48,92,68,217,196,50,0,56,24,89,61,249,
+31,56,201,228,117,207,189,70,102,140,127,203,57,206,61,18,64,73,227,251,210,31,65,215,3,190,113,64,15,105,229,236,34,244,249,150,112,126,184,251,55,3,159,94,126,241,168,154,107,172,18,173,6,51,198,35,
+153,129,200,235,131,108,58,245,237,128,48,58,156,141,44,71,3,202,188,4,245,218,15,174,48,78,240,61,65,193,199,92,156,12,210,22,86,24,88,174,73,228,125,240,15,29,7,252,124,14,221,121,24,192,197,0,39,157,
+125,193,50,167,251,171,103,112,220,100,1,141,177,15,212,30,41,173,115,168,127,14,198,25,228,181,172,203,147,219,3,203,61,58,245,247,233,73,182,80,120,183,186,108,30,15,153,25,25,193,235,155,135,31,211,
+159,83,138,65,246,128,78,45,167,25,233,184,196,57,239,200,144,103,39,156,103,177,198,6,40,1,68,215,204,57,42,15,124,91,190,79,226,225,79,0,227,143,98,105,173,37,240,228,169,110,227,253,25,64,224,227,156,
+176,7,243,226,154,255,0,111,35,9,28,195,57,224,58,2,71,25,57,91,129,140,110,227,42,79,168,60,84,30,94,165,145,255,0,31,35,131,187,247,138,112,56,227,254,62,64,235,199,63,134,121,20,1,33,158,248,100,236,
+36,147,211,202,132,115,255,0,127,179,207,161,30,135,210,163,55,23,228,224,65,201,56,249,237,162,198,224,58,113,40,227,131,208,242,113,72,97,189,110,12,151,95,77,216,198,51,211,109,224,7,25,231,24,238,
+72,224,229,162,215,80,29,13,217,3,63,242,217,199,175,111,182,158,254,185,199,60,80,4,191,107,212,20,96,219,198,56,221,129,107,25,224,119,201,184,32,15,168,207,39,142,244,130,246,247,156,196,163,233,105,
+9,36,100,247,19,168,206,79,82,120,207,126,241,125,158,240,103,49,92,55,35,150,158,99,211,217,111,122,156,28,243,248,212,109,13,230,224,4,82,227,158,25,238,14,51,255,0,113,2,79,225,233,64,22,254,219,117,
+140,24,95,62,162,210,44,116,239,182,82,127,14,148,167,80,153,65,223,19,99,184,242,32,81,147,235,185,136,4,228,117,61,57,197,82,48,94,12,31,41,243,200,200,91,134,224,117,233,120,79,39,212,142,122,131,201,
+166,133,156,117,73,192,227,39,202,185,36,244,207,252,189,17,244,57,36,243,158,148,1,123,251,68,48,249,182,174,57,35,201,178,221,143,160,39,57,236,49,159,214,148,106,43,183,3,28,227,165,189,159,24,57,198,
+78,227,248,112,113,233,197,82,2,92,31,150,97,211,31,184,184,3,156,245,205,207,227,199,191,214,147,231,0,238,89,57,254,252,19,254,25,204,231,3,208,247,247,197,0,90,109,77,27,130,84,17,193,197,157,150,48,
+123,100,169,232,59,112,9,63,147,126,213,19,231,115,103,32,103,253,14,219,28,250,17,24,24,231,129,215,156,2,113,80,229,72,27,150,48,71,102,73,242,57,227,187,14,231,57,245,197,48,72,139,208,67,142,219,146,
+224,99,183,28,99,191,110,125,59,80,5,145,37,190,112,192,103,3,147,105,111,142,190,138,87,146,120,28,156,28,122,83,90,75,81,147,134,228,242,22,218,215,28,240,71,44,61,121,253,123,84,2,229,51,243,11,65,
+207,37,226,148,145,239,144,9,199,36,99,175,175,106,105,188,218,126,87,176,81,158,190,76,185,207,253,242,61,177,142,227,166,58,128,72,30,220,134,194,203,223,7,200,183,0,122,228,249,163,146,15,52,84,95,
+108,39,254,94,44,240,63,233,155,14,59,145,251,140,245,236,58,159,64,104,160,15,189,67,51,100,125,150,240,128,58,21,113,158,189,183,183,4,28,14,252,12,30,212,255,0,44,131,159,236,251,198,247,196,153,97,
+235,196,128,96,244,239,143,160,21,107,98,177,194,168,192,60,31,44,14,127,239,146,79,111,124,227,52,159,102,36,1,133,206,120,39,3,0,244,36,8,199,94,113,131,207,56,235,146,1,84,163,117,26,101,232,199,92,
+71,41,7,7,145,196,170,14,125,51,244,246,137,150,83,156,105,87,109,140,125,235,121,155,211,184,184,3,190,123,244,246,53,109,173,143,33,182,3,211,133,221,207,108,22,81,156,246,35,24,239,214,160,54,195,39,
+150,111,93,170,127,81,130,57,246,235,142,121,160,8,132,110,115,141,42,232,14,167,253,26,76,126,36,207,142,120,0,30,190,252,208,34,147,60,105,114,228,227,27,173,192,252,50,210,158,61,56,228,231,36,241,
+74,96,25,60,63,114,115,14,113,130,71,81,31,114,125,143,78,181,24,130,19,157,202,65,235,204,11,142,163,248,142,51,158,158,131,128,64,230,128,30,201,63,7,251,58,80,0,35,62,84,67,158,9,219,243,140,140,99,
+0,228,254,180,135,237,3,0,89,205,140,227,253,74,116,199,76,40,7,63,82,127,197,166,11,83,193,82,113,207,203,4,103,145,207,60,169,28,125,79,183,60,163,90,65,253,217,70,79,81,12,100,1,215,251,252,14,71,99,
+140,142,40,1,165,238,186,11,57,155,175,62,81,7,143,160,39,184,206,51,219,25,60,23,22,188,56,31,101,185,3,212,195,41,63,134,25,114,51,144,78,79,67,208,140,82,253,146,16,112,162,94,125,99,140,103,39,143,
+226,28,99,219,183,124,212,162,222,1,156,249,196,130,79,221,139,177,192,206,236,140,142,15,62,156,98,128,43,249,151,35,164,87,4,224,112,45,228,36,118,199,204,73,198,49,158,130,147,206,189,200,196,87,0,
+3,206,235,124,3,199,29,74,131,211,63,92,131,237,49,142,220,15,249,108,49,192,226,223,249,22,25,237,140,96,142,253,69,38,45,185,192,156,147,207,34,31,230,9,206,72,4,99,60,242,57,160,8,132,247,132,156,199,
+112,57,224,249,32,15,76,242,140,6,115,199,160,231,62,140,51,93,147,146,247,24,236,12,100,227,28,99,229,136,0,6,15,127,198,167,9,16,4,98,84,255,0,129,68,14,50,125,73,36,126,68,122,142,206,88,237,200,60,
+200,58,140,238,132,31,76,113,249,224,143,233,64,21,124,203,146,63,214,77,145,216,71,50,250,0,14,20,1,131,239,142,121,52,207,54,124,146,210,76,118,158,113,29,200,57,250,227,156,100,118,57,244,205,93,49,
+66,114,1,152,231,140,7,92,227,167,4,33,231,29,240,121,245,235,81,24,227,0,224,204,59,114,227,29,135,24,136,1,147,147,158,160,246,35,138,0,174,102,124,243,231,31,77,203,56,57,255,0,119,104,60,131,245,239,
+143,150,154,100,36,252,200,196,122,149,186,221,239,194,169,207,182,113,215,175,92,88,37,87,31,60,159,83,33,24,35,143,225,131,185,233,250,116,229,172,202,120,12,192,99,130,38,155,118,15,186,198,1,254,120,
+235,64,17,238,92,140,67,38,122,224,11,176,125,59,175,167,183,94,163,189,72,31,60,27,105,14,123,135,159,128,64,193,59,99,7,35,62,220,228,28,99,21,9,57,200,204,164,244,31,233,19,168,247,39,10,160,113,156,
+124,204,51,142,180,132,182,51,182,118,198,63,229,226,239,169,39,177,25,232,61,191,196,2,82,192,12,152,103,206,49,254,178,248,158,58,244,0,19,207,76,244,56,164,222,164,28,219,93,122,150,45,126,79,56,224,
+140,99,211,156,158,222,198,154,12,184,226,25,113,219,55,19,228,159,78,88,250,115,147,249,245,167,44,146,140,226,218,86,57,7,30,124,175,235,158,11,227,232,6,63,58,0,3,196,57,251,61,227,19,129,242,181,226,
+250,147,203,48,7,129,147,145,158,224,122,59,207,80,120,180,191,199,32,19,45,195,12,125,12,131,211,166,8,253,105,166,91,140,0,150,141,143,121,27,39,62,160,185,39,211,145,237,158,113,73,230,93,243,254,134,
+220,14,130,103,94,59,146,4,203,142,216,224,1,212,99,138,0,148,93,5,249,190,205,124,191,79,48,250,158,72,124,243,206,51,199,67,197,60,93,103,36,69,120,160,129,128,96,156,147,233,140,55,110,51,145,198,123,
+10,132,79,122,62,237,153,200,60,127,165,48,36,140,255,0,211,110,167,245,207,106,127,155,169,146,51,104,164,19,252,87,37,191,12,137,199,126,112,65,246,199,90,0,178,151,24,254,11,160,113,206,109,95,142,
+188,225,136,231,159,174,15,113,82,173,211,142,162,228,103,60,125,145,75,48,245,225,216,140,147,212,231,142,125,106,170,255,0,105,142,182,131,147,215,207,35,184,235,153,142,112,122,125,126,149,50,157,68,
+142,108,211,158,198,98,199,242,18,241,143,214,128,37,243,242,63,229,231,60,143,248,243,7,7,184,206,78,15,110,7,227,75,230,185,227,51,1,200,201,179,140,158,113,198,75,14,62,185,201,199,113,81,1,124,50,
+13,164,43,140,31,188,121,199,168,28,147,223,168,250,211,203,94,115,139,116,198,57,42,178,244,239,209,136,52,1,32,80,220,153,36,3,147,159,178,68,15,231,188,115,223,57,56,7,140,211,128,3,169,147,254,252,
+39,78,113,209,207,78,221,58,247,21,16,107,142,141,11,3,147,247,68,158,152,29,79,80,59,241,211,30,198,85,23,25,225,156,14,63,138,64,195,156,243,243,245,228,227,32,251,112,40,2,95,47,112,3,50,119,193,22,
+236,125,255,0,135,142,123,12,96,117,57,24,20,27,114,163,12,247,3,60,140,193,46,48,58,240,138,64,28,231,167,211,208,38,101,232,93,193,7,128,100,147,31,171,241,234,120,25,227,52,224,178,145,254,181,192,
+244,86,152,227,28,145,133,147,30,156,131,211,142,195,0,17,53,190,58,180,248,199,56,134,95,208,121,100,246,235,142,59,100,230,162,54,227,24,6,224,228,31,249,103,112,8,7,174,21,98,29,58,158,79,225,86,12,
+121,231,205,152,227,175,207,63,29,248,62,112,252,71,76,17,207,81,77,37,1,218,101,147,183,222,105,248,3,62,147,30,221,243,239,210,128,43,125,141,123,205,116,188,228,29,183,120,247,224,196,163,215,129,239,
+77,242,66,117,186,159,111,188,114,159,83,141,204,132,251,122,244,29,58,219,45,16,235,54,14,59,202,224,145,244,50,113,207,4,130,114,113,199,122,93,241,244,23,36,2,58,121,142,79,65,220,73,207,226,14,104,
+2,158,19,57,251,83,142,188,237,96,196,250,231,97,253,115,233,129,75,185,64,3,237,79,142,153,232,127,91,102,247,232,63,0,7,54,178,164,156,221,149,7,28,249,142,15,227,135,35,158,127,15,210,70,88,200,24,
+189,83,244,146,78,132,129,211,204,3,140,14,56,31,92,130,64,43,172,132,253,219,166,227,36,22,98,112,125,241,98,121,227,31,215,140,135,25,10,253,235,142,50,122,22,35,234,73,181,85,199,65,215,60,115,142,
+41,196,42,240,110,3,31,93,242,254,187,88,224,115,239,142,188,99,133,249,8,56,157,6,70,112,207,112,73,233,142,11,241,219,146,49,245,56,4,1,86,232,100,3,112,167,146,57,199,111,127,40,122,31,161,245,29,44,
+253,165,78,1,49,176,192,244,61,7,182,14,122,228,142,189,79,113,76,85,76,231,237,81,103,140,128,215,32,125,112,28,130,59,19,238,71,56,205,76,4,92,19,53,187,1,253,227,118,122,125,31,183,108,1,215,24,61,
+192,25,246,132,233,186,33,219,238,228,125,48,95,112,250,128,71,226,48,94,46,35,3,230,104,8,244,42,71,183,69,80,127,19,146,58,147,142,76,202,32,97,157,246,228,118,194,222,142,71,161,220,121,25,231,245,
+39,165,72,26,29,192,41,140,123,170,222,18,61,0,1,255,0,14,57,252,232,2,184,146,221,129,5,99,39,213,100,153,8,235,199,64,72,207,167,24,35,240,80,33,35,59,1,233,192,154,228,103,158,156,18,57,247,63,74,177,
+184,3,254,177,119,30,48,99,189,252,63,229,168,207,212,227,25,226,148,16,220,23,141,143,82,60,155,242,70,51,142,11,183,99,156,250,118,60,228,2,29,150,196,224,70,58,242,76,215,156,253,72,145,72,207,110,
+252,83,124,171,115,214,5,200,39,157,247,46,57,245,221,116,48,79,97,199,25,60,96,10,177,229,130,126,236,31,247,226,251,60,243,142,135,176,244,30,253,178,243,110,157,51,108,132,156,101,160,191,29,125,115,
+25,28,244,247,199,126,40,2,159,149,104,113,136,148,31,251,120,32,242,7,4,221,96,242,127,250,252,226,152,109,109,123,193,19,103,61,126,210,123,240,15,239,79,225,215,235,154,190,246,68,242,175,105,142,73,
+2,11,145,215,156,14,51,234,0,35,143,199,1,191,102,224,124,209,22,198,62,91,57,152,99,241,143,156,99,175,6,128,51,62,195,106,79,22,246,200,125,118,220,2,15,252,9,201,207,7,183,115,159,105,69,148,35,141,
+150,100,122,25,39,80,14,61,164,200,60,96,3,211,145,223,139,191,101,76,242,80,122,3,96,203,223,143,249,102,221,249,201,192,164,54,187,65,225,56,60,127,161,129,143,111,245,13,158,49,140,142,63,80,1,92,90,
+91,227,253,77,152,62,158,125,201,207,78,129,110,135,124,240,70,123,116,197,59,236,176,131,194,88,100,31,227,146,232,227,191,79,182,240,61,8,24,60,227,218,83,105,198,119,71,211,39,54,125,56,7,160,135,159,
+115,223,183,39,32,22,132,244,17,49,60,127,199,155,140,103,161,255,0,83,159,215,245,232,1,24,182,83,210,61,47,61,112,126,209,200,245,207,218,122,127,44,244,224,138,113,179,118,192,3,73,252,165,56,250,3,
+112,51,239,192,199,190,13,41,177,113,144,97,139,158,73,16,149,192,239,199,151,145,212,144,51,156,28,15,74,13,145,7,238,197,199,81,176,147,235,255,0,60,200,207,56,199,176,201,244,0,143,236,14,196,230,77,
+36,30,120,217,46,49,200,193,205,231,65,199,60,3,208,14,134,155,253,155,47,24,109,36,129,223,202,144,247,247,188,232,51,140,116,167,249,44,153,27,35,228,116,16,146,123,103,143,41,125,176,126,131,142,180,
+207,41,129,249,163,29,200,196,45,207,25,24,0,243,212,231,240,224,227,144,3,251,46,70,227,204,210,20,241,144,34,102,227,25,57,205,249,61,49,216,131,223,20,255,0,236,102,95,191,62,152,121,200,34,16,184,
+234,120,197,222,121,62,191,92,247,166,108,112,14,33,127,98,45,220,113,239,130,1,250,254,180,132,203,206,33,110,220,44,109,156,247,200,50,96,18,14,121,60,241,211,176,3,206,140,191,196,246,7,212,136,1,35,
+7,57,57,186,62,221,8,56,247,197,70,250,74,40,249,100,178,227,130,62,203,9,7,29,142,235,165,4,245,234,73,227,29,105,55,220,14,177,140,103,39,48,158,157,15,241,16,113,233,207,191,64,4,91,166,206,60,148,
+96,79,4,196,220,116,201,63,188,25,224,126,30,227,4,0,41,210,215,57,221,103,235,148,183,180,28,244,206,62,216,231,166,125,57,207,61,5,31,217,138,55,101,162,63,240,11,69,233,215,254,94,59,250,156,96,246,
+166,16,72,249,173,163,245,226,34,113,207,94,101,224,140,115,198,59,168,230,154,124,174,240,168,233,214,8,207,39,253,233,25,135,167,80,15,189,0,43,88,64,58,237,39,177,88,173,219,129,207,81,113,158,254,
+157,186,212,127,101,141,71,8,205,219,253,90,12,116,3,164,141,207,227,143,211,50,141,153,27,109,226,60,118,142,17,145,232,127,120,63,60,131,156,115,218,130,33,61,108,225,35,208,172,92,254,87,45,248,146,
+63,159,0,17,8,98,57,202,99,25,231,229,30,216,31,55,81,198,72,61,59,81,182,17,252,35,167,121,17,113,248,134,207,167,182,15,90,144,173,176,24,54,54,255,0,130,167,224,57,156,231,61,65,206,15,231,76,101,182,
+231,253,6,212,18,121,36,198,185,201,61,64,184,0,158,57,239,237,154,0,140,253,156,231,33,115,201,31,233,0,96,243,237,143,192,251,116,61,27,178,220,240,118,100,115,145,112,1,227,191,167,29,122,113,158,217,
+163,202,182,56,255,0,70,182,94,121,199,217,200,233,255,0,95,4,143,161,246,52,162,222,22,25,251,53,185,206,113,254,175,190,15,107,156,103,191,0,142,164,14,50,0,19,200,141,177,134,218,51,218,233,192,235,
+220,108,63,167,28,30,188,83,205,162,0,127,122,196,30,14,110,152,113,223,27,97,36,250,244,232,51,154,22,222,33,144,182,202,56,254,0,152,231,63,244,242,199,160,207,24,252,56,169,5,187,12,145,11,167,76,114,
+160,31,195,205,207,99,211,142,185,244,160,8,254,203,17,206,91,39,25,31,233,15,158,121,234,34,82,115,239,199,29,105,134,218,47,225,124,122,102,125,160,122,122,103,234,78,49,129,233,86,133,180,205,206,28,
+244,233,158,163,60,228,74,1,60,254,20,211,4,203,156,180,217,24,199,222,97,223,214,98,120,25,192,235,237,156,208,5,83,105,110,220,155,133,94,163,155,204,3,192,236,102,0,1,198,56,231,165,71,246,91,110,127,
+126,56,39,159,181,142,253,248,152,245,62,252,244,247,171,127,189,83,196,179,14,216,242,216,115,236,68,167,159,203,212,81,231,93,12,98,230,235,175,64,23,175,175,250,210,79,95,240,28,80,5,97,111,110,64,
+255,0,73,137,70,115,205,195,231,220,19,230,28,254,29,63,26,144,90,196,62,237,204,126,196,93,169,207,253,247,56,227,175,57,30,188,230,173,9,238,71,91,155,188,117,35,118,78,57,227,6,97,207,76,117,252,50,
+69,72,46,165,92,126,254,99,235,188,55,31,248,243,28,14,157,123,14,180,1,75,236,224,96,11,191,152,114,64,184,66,61,72,230,114,120,227,24,246,199,56,194,20,43,131,246,132,99,159,249,248,82,121,233,255,0,
+47,64,142,220,14,15,160,171,223,110,117,36,137,24,227,156,152,203,116,36,255,0,23,29,79,39,161,250,80,111,157,128,34,82,57,232,98,76,99,174,79,76,253,70,63,65,64,20,25,179,193,146,44,140,103,55,11,156,
+17,234,46,200,245,252,123,17,154,110,88,15,248,248,141,71,24,204,177,30,132,255,0,211,224,110,57,61,58,130,115,222,175,127,104,170,245,120,216,251,199,9,228,241,192,44,115,158,220,243,245,197,33,212,135,
+240,172,68,227,254,120,218,227,167,94,85,177,237,158,190,180,1,72,49,193,204,240,28,12,228,75,16,60,28,116,251,83,3,145,158,231,39,167,165,59,204,35,248,161,97,208,239,104,216,122,246,159,29,59,241,159,
+83,154,156,234,146,143,185,28,93,249,54,214,167,7,3,210,38,252,243,142,59,244,166,255,0,107,93,118,142,49,156,113,246,91,114,9,244,226,60,125,50,49,158,114,51,64,12,12,8,56,49,46,65,224,0,221,59,113,114,
+48,7,224,15,92,227,160,219,241,247,148,143,69,36,115,234,127,126,71,63,135,67,193,236,243,169,93,28,110,130,50,71,31,241,235,0,254,74,58,251,130,71,76,154,67,127,112,79,252,123,69,236,13,189,190,127,28,
+166,115,143,195,56,224,142,72,4,59,152,156,18,195,7,0,132,99,159,166,39,7,62,189,120,233,158,77,33,220,64,1,255,0,239,165,144,244,235,214,83,147,147,142,51,244,2,165,58,133,210,241,246,100,96,78,112,18,
+216,99,219,30,88,193,207,212,245,7,174,74,139,235,134,235,106,7,95,249,247,81,207,79,83,253,56,206,123,128,10,219,177,144,92,143,161,144,0,7,174,55,30,121,235,192,207,126,203,149,4,98,86,201,206,64,89,
+207,76,14,162,44,115,219,142,217,228,115,82,27,217,114,119,69,142,189,30,49,250,5,3,143,65,159,78,49,75,246,217,8,5,84,142,127,231,178,175,97,142,140,164,227,215,143,66,6,104,2,61,203,255,0,61,165,200,
+236,62,209,144,122,237,226,46,59,243,216,118,197,40,97,208,207,58,31,83,44,252,142,123,8,135,243,206,0,250,83,190,215,48,227,12,79,161,156,244,63,73,49,201,199,7,215,39,129,146,245,188,39,239,68,228,17,
+193,243,221,115,239,129,47,65,198,57,43,158,49,64,8,191,48,31,233,211,40,238,162,107,176,122,156,117,129,129,228,142,135,241,231,20,237,167,145,246,249,143,60,111,154,228,96,12,127,211,155,100,12,99,211,
+156,211,254,209,27,0,4,51,123,237,185,113,158,156,147,231,48,193,29,7,30,224,129,74,36,139,60,65,114,8,234,13,209,110,156,96,228,55,231,147,245,160,8,199,144,120,107,208,217,63,243,210,224,143,78,73,180,
+219,144,115,146,69,63,100,60,15,180,47,108,124,205,250,230,208,245,192,235,237,238,76,162,80,50,60,153,114,113,128,38,47,244,39,247,67,56,244,231,212,144,115,74,90,55,224,197,33,29,243,184,255,0,56,192,
+30,164,113,199,160,160,8,202,67,198,103,83,129,206,21,155,182,57,219,104,56,232,72,32,127,90,2,91,30,60,204,228,99,136,223,255,0,140,174,64,25,235,143,167,106,113,17,129,149,142,65,142,159,41,233,144,
+56,196,76,51,238,49,142,56,28,83,65,227,253,68,167,169,60,184,207,94,128,71,215,175,76,156,254,2,128,20,67,110,6,68,190,160,134,82,1,224,28,100,66,65,227,147,201,199,4,138,66,144,47,27,227,110,248,249,
+207,28,255,0,211,17,238,56,3,63,173,27,206,127,227,210,126,14,78,90,108,158,121,56,17,55,211,223,175,78,41,225,147,167,217,110,1,198,78,25,187,244,231,236,252,117,207,57,207,167,52,0,220,91,227,4,192,
+78,51,130,37,201,233,215,16,227,183,230,78,112,105,165,96,232,33,183,35,29,74,204,71,215,238,47,124,244,233,129,223,146,225,228,231,155,107,128,59,18,203,249,115,110,15,190,51,216,142,148,132,66,63,229,
+222,108,12,245,104,143,83,235,229,113,200,192,198,51,198,112,40,2,48,97,193,95,42,203,3,128,89,102,206,6,58,130,158,163,177,207,28,100,98,143,221,156,129,21,159,252,5,38,244,29,1,141,179,158,78,56,224,
+245,232,42,93,241,117,48,200,71,78,54,245,32,114,72,64,8,235,131,219,212,211,26,120,59,91,78,123,141,178,34,251,247,85,28,119,29,65,232,57,25,0,140,224,156,17,110,61,0,73,193,247,31,44,4,251,118,237,199,
+52,194,14,120,88,129,28,112,183,120,227,29,15,145,250,227,216,231,56,14,55,8,50,22,210,227,61,51,231,163,118,244,0,158,6,49,200,199,160,167,125,167,145,139,75,163,158,63,214,15,76,114,10,224,254,4,116,
+231,57,224,2,34,207,208,45,190,48,126,243,221,1,129,236,33,247,36,240,56,35,191,20,195,43,40,231,236,121,7,158,111,115,244,230,0,50,51,208,30,78,5,88,243,189,109,46,134,121,206,84,128,63,47,110,199,31,
+142,105,124,212,32,147,111,113,143,79,46,54,36,227,60,101,73,227,211,167,76,80,4,11,36,143,144,30,219,4,118,55,128,131,140,244,14,156,112,48,1,29,14,15,60,49,252,195,242,137,35,36,127,181,122,115,234,
+49,230,227,63,142,106,86,151,156,45,181,231,225,20,75,129,233,147,140,240,58,231,191,60,96,84,102,86,97,255,0,30,183,73,232,74,40,246,3,42,220,250,247,227,60,118,160,8,9,157,70,12,209,122,14,46,49,236,
+57,152,243,245,228,244,199,162,135,147,7,247,203,215,178,74,79,7,169,205,210,28,117,207,63,81,82,7,113,199,217,38,62,229,37,95,253,7,24,63,83,156,224,158,212,132,190,9,251,51,128,127,235,162,245,62,132,
+144,115,140,245,235,143,92,208,3,55,72,71,19,49,250,172,158,195,129,246,225,219,29,193,232,49,211,45,38,99,142,114,120,25,220,73,235,253,211,168,128,9,235,159,79,78,41,25,75,127,203,9,0,224,29,174,253,
+51,215,57,82,61,58,122,123,138,79,40,16,73,142,65,199,32,59,14,64,24,206,73,36,28,103,175,115,239,144,3,124,160,253,240,15,3,146,171,207,65,159,248,153,156,241,199,28,227,189,52,202,228,241,42,131,207,
+0,134,57,238,120,213,50,120,239,142,125,41,190,74,117,217,113,129,198,68,167,29,207,112,79,126,156,156,116,193,230,162,41,24,227,202,155,29,14,103,112,49,220,96,46,0,232,49,143,160,239,64,19,249,207,140,
+25,100,36,240,112,99,25,57,234,51,169,49,57,199,63,64,78,113,76,50,3,141,226,86,31,88,79,167,95,244,182,3,215,220,247,53,1,136,12,149,138,110,58,143,180,204,71,62,155,98,108,140,158,163,62,189,141,40,
+15,222,39,198,112,64,186,144,113,206,71,54,231,191,211,241,28,16,4,223,17,108,121,106,91,39,39,22,249,61,241,204,132,245,236,115,146,125,243,71,218,34,31,192,65,3,28,152,48,7,112,54,110,199,167,65,206,
+58,241,78,218,63,231,148,160,113,144,183,79,131,255,0,125,90,103,60,30,61,250,116,195,89,71,0,173,224,237,197,218,128,61,191,227,217,121,228,227,39,168,235,208,208,3,13,220,88,35,203,97,219,34,84,92,231,
+35,157,176,177,238,122,231,156,125,42,7,184,183,201,200,199,35,63,190,61,71,253,185,28,100,0,8,7,181,78,68,124,130,53,22,206,70,22,116,60,142,78,63,115,131,236,115,147,216,138,80,136,58,46,167,211,39,
+247,170,190,253,118,28,113,140,113,146,126,184,160,10,166,230,200,113,183,45,156,103,207,147,30,189,86,203,29,7,93,167,30,253,227,55,150,135,31,186,87,32,96,147,113,57,227,28,12,125,132,1,142,216,253,
+7,21,105,155,104,192,254,210,25,233,251,197,97,200,255,0,174,124,253,121,254,85,93,166,108,97,94,240,14,185,105,7,4,251,121,99,36,122,100,231,249,128,64,110,236,198,115,109,159,77,179,202,8,239,199,252,
+75,217,184,200,237,245,235,80,189,197,155,231,22,228,96,159,189,117,62,27,212,99,251,45,113,219,60,231,154,148,202,217,57,154,239,215,162,158,71,83,202,159,94,189,191,44,64,243,40,60,207,63,208,172,68,
+227,60,103,40,51,158,248,198,63,90,0,133,167,182,0,98,53,92,118,55,23,35,24,207,97,102,190,152,7,131,206,61,13,67,246,203,92,16,50,14,15,221,184,187,57,252,60,140,247,199,35,211,158,185,157,165,133,184,
+251,69,202,228,118,251,57,83,193,227,30,98,145,232,56,206,61,59,64,100,132,103,247,242,156,158,114,144,245,255,0,191,234,192,1,237,212,145,140,115,64,16,53,204,36,176,94,123,252,211,95,96,123,127,168,
+3,211,3,30,224,30,180,194,209,184,206,209,245,243,110,216,241,216,131,30,57,31,135,79,90,86,158,48,126,87,45,129,221,35,61,207,173,193,39,215,56,228,230,160,121,203,12,150,10,48,113,185,33,29,115,212,
+153,72,237,239,199,168,160,5,104,193,192,85,83,244,91,146,49,237,251,163,129,232,120,253,106,187,196,228,224,70,50,51,145,229,206,56,56,60,31,33,135,65,146,51,140,138,141,167,236,101,131,191,37,34,224,
+116,231,12,118,246,231,35,62,160,96,212,5,226,99,134,158,204,250,126,233,71,64,0,228,78,185,233,199,111,210,128,44,121,78,122,7,83,254,204,87,45,129,129,211,253,24,129,158,65,24,25,199,25,168,156,74,1,
+5,164,25,35,172,55,153,244,232,45,128,239,206,6,79,124,212,5,109,207,2,91,51,216,159,33,72,7,212,143,180,115,142,58,17,205,70,86,60,16,178,88,103,7,4,197,18,28,140,140,225,174,200,244,252,143,106,0,126,
+211,212,186,145,201,57,181,185,99,158,231,13,102,221,253,15,29,250,242,211,229,112,11,140,231,144,44,229,227,140,158,14,154,199,158,14,73,192,7,36,246,168,25,20,30,38,176,28,228,97,87,29,57,228,95,47,
+65,237,128,71,166,49,94,69,112,50,38,177,76,142,184,200,60,243,211,80,254,135,60,98,128,45,72,16,129,178,102,3,128,127,209,93,128,234,122,127,102,122,114,58,116,231,21,84,172,121,33,174,156,113,209,109,
+216,245,244,7,76,98,59,231,35,140,244,170,204,205,131,254,147,100,188,114,60,183,60,126,55,231,57,233,220,125,58,10,229,147,36,53,221,144,60,242,32,60,99,57,39,23,108,125,79,62,134,128,46,52,118,216,200,
+190,184,206,113,129,3,16,51,158,161,116,115,142,71,167,108,227,56,53,17,91,114,73,55,147,28,115,210,84,7,25,198,7,246,55,233,200,25,233,205,81,103,132,112,215,182,135,158,190,75,12,227,29,133,193,207,
+30,153,199,57,193,205,66,242,91,227,155,187,60,246,204,50,176,232,56,57,184,11,219,160,28,126,84,1,160,203,104,114,69,236,138,71,93,197,143,67,219,58,66,227,175,24,61,186,119,21,95,236,131,57,212,72,193,
+192,4,114,58,122,233,121,29,48,15,66,123,243,205,51,53,184,60,93,90,228,14,8,182,3,158,252,180,173,145,199,57,36,98,171,61,204,89,195,79,110,71,60,253,157,70,51,211,141,217,24,233,129,129,207,0,142,128,
+22,152,217,156,147,127,184,128,121,202,2,123,116,109,59,175,78,138,58,113,138,133,150,208,244,188,113,158,78,10,2,79,64,63,228,30,184,192,39,249,14,13,83,107,171,113,193,184,140,228,112,68,0,122,118,25,
+60,99,215,167,227,76,251,84,24,0,75,156,140,114,140,1,0,99,142,88,228,112,56,227,143,65,64,22,26,59,114,8,251,100,164,103,3,12,184,236,58,11,76,19,145,142,65,227,182,106,7,130,3,247,110,25,254,161,125,
+123,159,178,144,121,61,115,237,197,51,206,139,130,38,94,121,195,35,145,248,102,34,160,241,140,243,245,166,180,128,158,10,28,255,0,178,163,32,115,211,200,236,122,14,51,158,122,208,3,132,16,231,1,149,143,
+169,85,97,244,10,182,152,235,219,60,28,142,69,66,214,241,114,124,168,91,30,177,169,233,245,133,113,199,57,224,251,242,105,9,92,117,92,143,246,200,250,127,203,1,140,250,147,233,233,76,202,128,71,238,179,
+215,63,104,24,110,122,141,168,48,15,253,245,215,142,244,1,27,219,194,9,30,76,57,247,137,79,28,224,114,167,36,125,15,63,157,64,209,34,253,216,224,237,192,137,1,29,186,128,8,199,57,192,250,243,131,86,188,
+194,6,208,224,243,198,217,193,61,114,72,202,130,56,232,122,224,253,106,54,146,81,208,182,114,122,207,199,94,58,41,207,115,199,110,0,20,1,84,198,157,90,56,219,160,199,149,184,117,3,166,195,129,211,156,
+145,216,240,106,51,10,182,88,69,7,213,172,193,237,220,148,28,254,68,241,235,138,181,230,92,54,125,113,212,205,63,35,232,34,63,143,78,152,4,146,106,34,215,39,166,194,122,231,206,184,206,7,253,187,183,243,
+224,131,64,21,76,74,189,18,208,119,32,233,234,79,36,231,4,186,227,140,242,112,58,227,174,42,6,0,31,245,118,153,255,0,175,5,239,234,124,209,216,115,158,191,76,213,195,246,166,227,124,67,7,32,23,184,98,
+125,15,252,122,254,28,244,244,7,154,97,91,163,252,86,231,235,246,131,219,222,209,129,252,187,80,6,99,151,29,33,178,207,36,127,161,237,60,115,255,0,61,200,201,198,7,24,30,245,11,74,227,131,29,158,113,159,
+248,245,4,140,241,129,186,117,29,189,63,76,19,170,82,235,25,221,8,57,31,119,237,60,115,237,167,125,222,156,231,131,142,152,226,38,134,240,140,137,98,92,116,220,46,219,56,224,241,253,158,120,25,228,224,
+15,83,158,128,25,94,124,157,146,212,243,140,125,142,35,147,223,3,205,56,35,140,100,146,122,113,205,61,110,101,25,194,90,142,0,57,177,131,39,60,159,227,108,227,167,113,244,171,173,109,122,65,205,212,32,
+28,100,8,238,241,145,255,0,112,241,207,29,57,235,212,227,152,218,202,236,231,253,38,223,235,178,224,96,99,145,205,138,254,120,198,115,248,0,64,110,228,4,97,45,137,28,124,182,80,254,89,222,123,30,56,231,
+128,49,77,251,116,221,2,193,201,206,126,203,7,66,58,228,144,14,48,115,147,129,223,61,105,255,0,217,243,18,65,187,183,7,190,12,192,243,237,246,50,127,33,233,138,31,77,43,203,93,160,224,242,73,35,62,131,
+117,152,239,234,123,254,20,1,23,219,100,94,74,194,199,176,48,91,168,30,159,117,207,29,113,142,184,20,27,215,110,74,193,143,64,177,166,58,145,202,228,158,217,56,192,245,197,60,90,58,175,23,241,1,140,240,
+16,241,159,123,76,122,96,19,233,210,162,54,110,79,252,127,171,245,36,128,131,24,57,57,204,3,160,57,244,207,81,140,208,3,214,235,28,236,135,39,174,24,18,112,51,147,136,15,127,175,7,146,5,61,110,0,57,217,
+16,244,198,254,153,244,22,224,14,249,252,56,197,86,251,43,18,73,189,81,207,25,16,119,234,112,208,246,3,142,127,151,17,53,179,159,249,127,238,50,118,217,144,61,185,216,65,61,177,211,35,158,164,0,95,23,
+8,78,76,112,123,29,140,73,247,226,30,61,243,201,62,189,104,107,160,56,219,7,167,221,159,25,201,198,54,194,50,126,132,116,224,1,89,134,215,104,24,191,7,169,206,219,3,156,241,199,239,192,200,207,28,119,
+235,199,16,52,46,58,222,200,70,113,194,88,16,115,211,63,191,60,103,158,58,99,28,116,160,13,57,110,16,255,0,20,29,243,129,112,72,244,235,8,36,116,247,239,233,138,190,98,147,203,67,131,216,164,253,253,127,
+116,114,58,251,253,121,170,187,103,7,31,108,147,7,4,17,21,155,103,211,0,49,57,32,118,7,223,53,32,75,140,252,179,179,119,36,219,219,156,245,231,148,245,24,39,57,2,128,37,15,17,234,182,185,245,242,174,79,
+61,242,68,103,156,131,156,99,167,190,41,55,198,73,11,21,169,199,117,183,185,207,79,95,41,114,61,129,237,211,210,34,46,119,3,230,166,64,28,52,49,46,113,207,97,128,15,191,25,237,205,40,134,232,228,179,67,
+220,147,136,83,242,3,159,200,80,3,191,119,156,132,82,127,217,182,152,128,61,114,224,156,15,207,61,70,8,160,44,103,254,89,168,250,91,55,94,115,144,87,223,220,112,105,68,18,142,173,1,228,114,68,36,251,114,
+51,142,71,94,223,65,79,242,216,114,94,30,163,133,32,17,245,253,217,7,29,249,224,246,60,18,0,209,20,88,193,24,238,0,183,7,244,96,49,140,243,212,246,244,20,83,252,181,24,44,241,241,156,225,159,145,131,212,
+44,39,128,56,24,232,58,122,81,64,31,161,225,149,143,42,221,120,253,221,168,199,25,231,247,71,177,238,70,58,156,211,31,230,56,192,61,64,5,109,123,14,228,32,28,116,231,158,189,141,108,179,92,113,181,36,
+43,142,162,246,81,159,127,153,71,30,248,207,29,125,43,22,185,28,236,60,117,6,242,82,70,115,208,231,31,231,29,168,3,55,236,200,228,101,80,30,58,45,183,177,39,34,51,249,115,200,201,228,114,191,96,12,70,
+56,7,254,185,40,25,56,237,110,115,158,195,156,142,184,3,34,249,146,113,213,91,7,56,255,0,78,145,65,234,114,57,233,215,212,143,92,14,33,105,37,61,66,140,250,234,50,115,250,224,250,244,231,218,128,32,58,
+102,225,147,42,140,247,59,112,59,1,147,108,6,65,227,29,59,227,213,191,217,184,231,237,8,112,71,70,78,156,246,22,164,118,231,35,158,190,180,246,121,185,249,99,233,129,254,156,79,168,57,228,156,146,71,30,
+185,193,168,119,176,57,33,123,127,203,243,129,143,232,8,198,0,56,199,66,59,128,74,218,98,176,200,154,30,112,78,231,69,56,63,91,85,245,228,147,249,226,162,58,92,74,6,101,182,201,239,246,128,14,120,232,
+82,21,61,59,99,160,228,210,110,99,145,192,29,126,91,242,122,125,84,231,25,250,243,212,83,78,72,193,32,122,127,166,171,100,158,196,52,77,232,15,81,235,245,0,107,105,208,2,49,36,89,239,254,145,32,29,122,
+228,192,70,121,227,158,77,49,244,232,242,72,150,51,232,22,230,108,122,244,242,128,56,207,124,103,166,105,197,25,129,10,248,31,245,210,54,35,190,120,136,18,79,78,71,169,36,243,77,54,236,121,47,211,128,
+67,39,95,198,48,78,63,12,103,232,104,2,49,167,12,159,157,79,76,127,164,74,61,248,37,66,247,28,114,9,198,114,48,41,235,104,170,118,137,78,70,114,5,195,227,243,216,56,199,28,118,237,200,202,139,113,156,
+22,102,199,56,86,28,103,166,64,143,147,245,63,135,74,112,183,64,115,182,66,125,119,14,185,231,162,142,114,73,233,159,199,168,4,77,10,142,75,227,215,19,74,120,30,187,113,199,224,121,231,233,11,66,185,206,
+233,143,174,219,137,199,226,62,80,65,62,196,96,129,147,154,187,228,129,211,237,25,199,1,89,72,61,59,28,115,215,57,199,62,130,148,70,199,254,89,222,16,58,13,241,125,122,110,231,31,78,216,198,5,0,80,42,
+128,28,173,207,4,115,231,204,223,83,203,129,211,219,140,14,189,42,50,169,215,203,184,199,61,36,114,120,246,243,14,7,110,78,56,207,90,214,192,199,48,92,156,116,207,148,125,184,220,227,219,56,63,76,99,38,
+60,50,131,254,139,49,255,0,128,192,114,120,231,137,148,12,3,140,241,207,78,248,0,205,30,91,13,187,46,250,156,157,140,223,136,36,158,158,217,29,125,120,95,41,134,113,29,214,15,95,144,174,61,58,68,223,95,
+83,237,219,71,147,207,217,101,24,206,112,144,228,145,235,251,238,79,227,158,105,24,74,79,252,123,207,255,0,125,42,224,255,0,192,101,35,131,238,71,225,64,25,162,4,221,150,134,236,250,252,196,99,219,13,
+9,31,160,239,65,181,128,228,152,110,11,122,249,202,63,3,251,174,199,167,76,116,232,6,52,8,144,127,203,25,193,235,254,190,37,255,0,217,143,228,59,30,189,40,204,132,255,0,168,184,57,36,150,251,85,184,25,
+29,72,36,231,3,167,35,131,215,142,40,3,48,91,194,122,65,113,212,131,254,146,224,100,123,136,148,103,216,14,156,211,13,181,190,78,232,230,92,227,254,94,114,9,207,28,148,192,244,228,103,241,57,173,77,174,
+78,89,101,67,219,253,50,32,123,147,209,113,143,255,0,87,176,83,10,30,88,76,196,30,191,109,132,12,99,221,15,32,228,130,71,35,173,0,101,139,107,85,228,195,33,192,39,38,225,24,99,61,56,3,61,61,71,67,145,
+129,138,70,183,180,235,177,215,211,19,247,255,0,190,8,247,193,207,212,243,141,129,107,106,64,222,36,28,115,155,251,115,219,56,193,140,116,56,200,3,32,129,158,105,5,165,145,206,211,40,244,255,0,76,129,
+64,252,124,174,199,220,117,235,197,0,100,139,123,82,14,3,0,120,39,206,4,143,81,254,175,219,223,24,35,214,167,22,246,184,4,180,128,143,238,220,40,198,15,160,140,246,244,198,49,249,104,11,43,98,8,243,101,
+29,240,110,163,124,243,211,62,83,143,204,96,118,237,74,116,219,82,63,227,230,69,207,95,244,128,163,158,156,121,11,220,250,127,245,128,51,196,86,189,165,152,31,79,181,130,62,132,121,99,7,156,246,53,34,
+69,108,57,18,206,125,254,208,167,30,228,236,57,199,24,200,28,125,69,91,22,22,61,238,93,137,3,238,221,129,207,92,99,201,29,112,114,57,246,25,197,60,89,88,12,254,241,216,143,250,122,245,236,127,118,7,31,
+67,64,21,7,217,215,157,215,7,142,49,59,117,244,56,183,35,242,111,204,26,92,194,115,137,110,23,177,253,235,54,121,207,252,250,241,219,250,98,164,107,91,5,36,146,217,233,159,181,254,29,2,224,250,246,56,
+200,167,44,26,112,37,191,122,112,120,196,200,231,62,185,44,185,236,120,233,239,212,0,65,152,178,72,146,233,143,25,1,142,49,208,12,139,46,61,115,140,158,51,206,105,251,192,192,13,120,185,233,243,72,71,
+0,142,8,178,80,72,235,142,15,212,102,156,201,99,193,88,166,4,116,34,84,57,244,60,57,235,207,203,215,158,131,57,166,17,108,51,251,185,250,250,200,79,108,128,84,146,58,122,14,166,128,2,196,243,186,232,231,
+177,221,238,122,155,65,140,103,215,60,240,69,41,207,92,92,127,223,76,123,3,206,45,135,24,227,183,60,241,221,152,181,201,226,228,12,118,121,215,191,124,145,235,140,3,208,224,26,153,90,193,65,15,37,211,
+30,184,50,74,58,142,196,231,167,35,131,142,199,35,146,1,11,18,49,242,205,144,123,187,117,245,207,149,128,122,250,116,63,137,230,227,170,54,112,122,185,110,254,134,63,108,227,39,158,152,38,159,230,233,
+249,24,23,64,142,185,157,143,224,70,210,64,199,212,96,227,39,138,147,125,155,116,75,163,158,160,205,32,224,115,218,49,143,211,220,244,160,8,62,211,24,251,209,145,130,114,126,94,253,58,129,239,142,135,
+241,228,33,186,67,131,150,24,227,1,80,243,143,175,127,108,19,233,86,199,216,248,249,47,71,251,179,191,24,199,170,158,61,125,58,123,212,168,109,79,32,94,131,143,249,234,249,227,60,31,221,127,44,123,102,
+128,40,173,228,104,64,195,31,248,2,115,199,3,148,235,211,63,175,122,149,111,225,255,0,158,67,4,30,118,39,31,154,5,31,80,15,63,157,90,86,128,55,31,106,62,187,164,144,19,192,238,32,108,100,243,200,252,248,
+167,146,173,211,237,0,18,51,254,147,49,36,2,48,15,250,49,32,119,201,60,0,61,113,64,21,127,180,162,239,176,15,238,180,73,211,183,63,129,28,140,224,158,163,172,131,83,137,120,196,3,60,13,200,152,36,246,
+224,119,239,142,79,224,49,35,40,61,164,200,238,215,15,145,140,240,9,128,17,199,25,29,51,199,74,22,57,72,194,134,56,255,0,166,210,63,95,95,220,183,176,199,31,135,112,4,254,211,80,6,13,177,246,16,3,220,
+100,112,156,96,113,215,243,52,131,83,43,252,112,128,79,104,152,127,40,142,127,46,157,169,226,27,166,206,32,44,127,235,171,14,65,193,235,8,237,223,57,24,39,52,162,218,240,242,182,236,112,123,202,195,223,
+160,65,212,158,167,35,243,52,0,171,170,177,228,201,16,30,190,83,12,158,217,38,17,207,39,60,130,123,142,185,83,168,134,31,44,176,131,254,227,125,9,31,186,24,224,158,167,175,165,41,134,252,125,219,112,50,
+70,210,103,201,24,239,130,1,61,57,224,142,15,115,194,133,212,70,9,141,58,224,6,93,248,61,240,74,28,129,215,131,223,32,80,2,139,249,56,32,194,220,127,207,54,253,113,25,252,184,245,244,195,254,223,33,235,
+44,106,59,133,64,125,120,206,192,121,235,140,158,71,83,81,150,191,96,64,134,18,71,83,229,114,115,255,0,1,30,248,61,240,120,244,122,139,204,99,203,133,15,124,68,160,241,215,239,21,56,32,159,192,145,235,
+128,5,55,12,71,250,229,57,201,198,0,253,114,58,241,142,112,127,10,143,204,44,114,210,18,61,1,218,49,223,35,123,28,117,207,231,198,41,255,0,233,67,57,25,3,160,22,201,223,177,253,224,29,250,241,215,211,
+164,171,37,201,227,7,176,255,0,80,131,4,122,31,57,113,244,244,235,210,128,43,112,196,238,96,0,245,27,184,4,243,157,234,120,244,200,236,123,10,66,144,241,146,221,58,128,128,119,233,153,137,231,241,245,
+207,166,144,107,146,14,72,199,29,96,70,233,216,147,116,6,7,78,113,198,15,90,113,243,120,59,128,56,255,0,158,17,99,156,96,224,93,0,122,243,156,142,51,211,52,1,150,22,204,31,152,177,57,7,4,196,48,122,243,
+251,225,159,195,235,78,43,104,195,1,155,56,236,182,221,122,146,75,74,73,30,153,198,78,7,53,123,123,130,67,48,36,114,73,183,139,25,233,218,232,142,112,78,61,114,7,97,77,50,71,146,92,3,206,127,227,214,17,
+199,29,254,213,140,231,169,24,252,13,0,83,17,195,235,57,3,253,155,99,199,56,3,15,199,124,231,242,6,145,162,183,238,215,32,123,52,65,137,228,244,85,207,67,158,164,224,226,173,155,139,80,8,49,2,122,243,
+21,178,254,64,220,18,113,156,244,56,24,207,115,81,153,97,97,128,138,163,217,45,1,250,115,114,15,212,113,212,118,192,160,10,222,85,191,81,36,164,117,193,113,192,244,39,204,95,192,12,119,192,166,249,81,
+1,159,225,56,63,235,147,56,233,147,254,144,24,144,58,228,250,228,241,83,151,135,7,42,73,0,231,254,61,186,99,24,194,223,14,159,238,254,25,21,19,125,153,135,250,166,30,251,162,7,183,64,110,206,57,199,76,
+231,167,90,0,69,75,127,239,38,79,39,55,10,164,126,27,206,65,193,228,156,140,140,243,197,75,182,19,144,89,7,210,234,49,249,102,70,207,224,125,56,35,53,85,150,216,227,10,221,14,65,149,1,24,61,191,210,88,
+99,219,30,195,147,77,45,110,49,148,108,99,28,93,70,131,60,247,37,135,30,196,122,28,208,5,221,145,14,124,194,115,235,118,10,254,65,199,160,228,30,122,247,205,40,183,141,137,249,241,158,159,233,71,63,145,
+102,207,168,200,24,199,122,207,51,91,116,27,178,57,63,241,49,136,125,56,15,156,243,158,65,24,53,17,146,2,79,204,1,25,224,223,166,227,129,145,247,120,246,235,159,108,80,6,159,216,144,156,249,171,158,122,
+204,15,76,231,24,193,235,233,207,65,214,152,109,225,29,101,139,167,83,52,163,191,64,67,17,232,57,247,207,35,53,69,101,143,168,151,25,60,99,81,11,211,158,58,247,232,7,126,131,39,52,172,241,54,127,127,43,
+103,24,198,162,231,0,227,169,192,108,227,208,142,127,42,0,152,197,108,164,3,45,177,228,96,9,164,99,146,72,7,151,228,15,80,51,215,218,164,41,104,49,153,160,3,4,112,205,159,196,144,199,223,177,227,175,21,
+158,198,16,114,207,49,193,199,252,127,207,199,212,137,59,127,63,76,211,76,144,46,112,110,191,224,55,247,35,175,179,22,228,240,56,160,11,197,108,187,221,68,9,7,141,228,250,14,63,117,201,60,227,39,175,56,
+235,73,182,203,28,95,38,9,232,60,162,7,78,128,132,61,187,142,220,243,197,80,18,143,225,251,81,244,221,169,73,156,231,168,27,84,227,142,184,233,199,189,30,121,81,200,155,211,157,65,207,7,215,40,127,175,
+182,120,160,11,196,217,128,127,211,15,0,114,45,226,32,247,207,12,73,247,25,227,191,187,60,203,31,186,215,71,119,81,251,149,245,224,99,112,28,245,227,160,231,30,180,141,201,206,63,120,0,255,0,167,179,215,
+220,16,190,199,140,243,244,52,134,64,79,62,105,199,81,246,156,227,166,58,169,198,51,207,215,158,121,160,11,158,109,128,60,222,48,239,194,64,15,62,197,215,28,126,126,212,121,214,71,7,237,146,227,61,127,
+209,212,158,125,4,167,61,122,129,145,234,106,160,145,65,56,18,228,247,89,148,117,232,62,238,9,199,108,118,239,198,85,164,28,124,247,3,36,140,7,86,35,223,136,191,63,108,80,5,131,45,137,63,45,212,172,73,
+192,59,237,193,7,159,82,192,128,121,207,126,188,227,149,205,159,3,206,156,145,147,146,246,120,246,60,178,145,253,62,157,41,27,151,7,9,36,195,142,167,143,204,172,7,57,235,212,1,159,173,2,234,224,156,173,
+212,139,199,253,50,63,92,134,183,110,61,255,0,33,64,22,156,217,246,185,35,3,157,207,100,167,142,157,102,62,152,60,122,245,233,81,127,163,159,187,118,163,235,246,51,242,227,142,68,163,191,229,158,131,60,
+167,157,118,195,2,240,18,70,114,194,1,207,92,17,246,76,147,248,17,235,233,78,2,236,127,203,234,175,30,136,72,255,0,201,67,143,127,111,90,0,80,145,243,254,151,144,115,198,200,48,61,57,18,224,17,236,58,
+96,242,77,39,149,15,63,233,13,159,125,139,215,216,158,131,183,60,247,192,165,205,217,57,26,136,29,198,21,120,239,159,248,245,231,142,122,227,245,165,43,123,215,251,66,94,1,60,34,109,252,190,206,14,57,
+200,224,243,159,99,64,17,27,88,207,252,189,96,156,19,159,39,30,135,130,217,237,158,220,254,52,159,103,81,247,110,80,159,164,111,208,247,195,126,120,31,129,198,42,82,215,192,28,223,49,29,183,71,38,57,246,
+72,0,4,140,227,241,247,164,13,124,115,186,235,32,242,8,89,192,199,36,2,60,160,59,119,235,249,228,1,139,27,169,230,88,207,210,53,36,253,112,141,158,127,30,112,72,39,137,188,185,65,24,151,3,174,68,105,159,
+76,29,221,126,132,246,28,122,68,86,237,142,124,213,108,30,115,231,14,51,200,207,151,129,212,224,100,19,232,57,33,13,189,195,114,66,158,112,64,50,147,199,61,54,175,24,237,142,180,1,38,46,7,75,144,61,79,
+150,190,227,31,46,65,199,191,233,158,28,5,201,255,0,151,135,108,114,54,71,180,30,153,60,33,206,51,219,39,160,246,168,133,187,41,201,139,60,140,255,0,174,96,121,244,69,110,79,108,116,3,166,106,111,179,
+40,224,68,171,198,114,22,227,220,156,230,34,78,50,115,192,236,123,80,1,182,243,31,122,103,231,160,12,164,255,0,223,73,142,189,48,59,254,2,80,247,184,255,0,83,113,156,117,218,24,131,140,103,30,94,115,238,
+122,113,214,161,242,163,24,201,65,201,24,242,174,88,241,215,164,95,145,3,177,227,140,152,218,40,1,249,157,71,92,230,11,156,31,202,213,137,246,231,174,71,56,205,0,90,50,223,169,228,221,38,70,127,213,194,
+6,14,71,36,160,39,242,235,237,79,91,139,227,193,154,235,158,153,49,96,123,1,229,16,9,199,175,57,252,169,129,108,167,62,108,94,219,237,111,78,112,49,255,0,62,190,163,167,175,78,64,20,194,45,91,36,73,107,
+158,127,229,206,224,156,118,192,146,16,57,192,254,19,211,165,0,104,153,117,28,115,113,118,7,81,159,36,99,220,3,11,116,31,158,9,4,142,134,235,195,156,221,222,103,254,186,90,159,207,116,43,249,126,30,226,
+130,152,7,73,162,92,116,197,155,14,160,240,0,140,116,232,1,24,31,204,50,168,229,110,35,24,4,255,0,199,172,131,140,96,28,121,96,103,57,206,65,206,15,122,0,187,254,152,167,31,106,184,96,122,3,53,166,79,
+167,32,99,31,83,130,122,103,28,184,11,199,224,203,116,7,113,230,218,16,70,1,198,12,44,15,208,245,232,59,103,45,174,83,36,155,236,113,202,139,103,28,156,96,140,160,199,57,246,193,231,160,164,23,8,115,139,
+248,142,122,230,22,219,250,40,25,60,117,228,208,6,179,71,116,184,196,211,31,115,53,128,238,58,1,111,158,59,96,156,12,113,140,138,106,164,228,31,50,105,129,244,19,216,147,129,131,198,232,59,116,28,19,248,
+17,89,126,119,63,45,250,243,217,81,176,120,255,0,120,30,189,187,122,211,86,87,207,252,125,22,30,193,212,122,14,179,118,239,208,227,30,152,160,13,71,143,254,158,46,184,236,102,179,95,124,240,131,156,118,
+3,4,242,122,129,73,228,156,143,158,87,239,243,92,216,242,121,60,128,51,207,78,7,225,214,168,249,216,0,181,200,24,237,185,184,25,200,227,237,64,244,250,119,56,28,82,155,133,237,43,182,6,9,18,4,228,158,
+159,53,224,199,212,253,58,128,104,2,233,183,96,55,4,0,118,205,197,152,235,233,192,231,208,227,242,230,163,32,129,134,128,183,60,98,91,76,156,116,28,227,158,158,221,57,170,193,208,143,189,40,29,127,227,
+230,60,30,217,226,236,227,182,63,83,216,161,49,145,195,221,46,6,72,23,109,208,243,208,92,227,223,223,181,0,89,110,63,229,140,170,61,228,183,0,117,254,225,254,185,199,94,216,133,158,48,113,182,81,147,159,
+245,201,250,96,224,119,231,4,245,63,90,249,66,112,205,56,29,57,186,99,244,39,247,228,103,159,64,71,126,245,42,172,88,45,190,118,25,207,252,124,176,32,231,142,183,56,235,193,36,1,253,0,16,203,24,25,196,
+167,29,188,229,61,49,199,223,78,113,142,51,140,125,120,96,187,80,220,45,198,56,228,78,50,14,78,120,23,64,241,239,207,231,86,129,82,48,60,236,103,168,187,3,31,95,244,156,159,240,199,6,152,192,54,121,187,
+3,169,197,202,156,31,252,8,39,240,224,123,142,114,0,198,185,3,238,139,160,14,56,18,156,103,62,166,240,17,233,207,228,56,52,209,120,220,128,110,177,208,3,59,12,244,227,2,237,184,39,215,158,121,231,154,
+66,16,2,76,151,127,248,16,188,251,16,101,63,78,126,135,221,165,227,80,66,253,169,253,9,185,131,215,156,229,243,223,28,254,20,1,41,186,99,206,102,233,252,83,202,167,244,184,57,252,201,56,193,4,84,127,110,
+145,14,60,233,84,231,60,93,74,216,227,140,15,181,100,103,182,113,142,59,113,77,12,8,233,114,1,231,38,226,30,49,140,0,23,63,135,45,220,250,97,29,73,198,26,228,14,121,243,215,156,14,57,7,4,115,207,175,90,
+0,123,95,200,70,4,247,0,156,16,86,234,85,29,125,13,218,142,127,12,99,233,81,255,0,104,74,189,102,156,250,102,241,207,61,122,155,192,8,237,143,79,122,97,118,7,135,159,232,103,132,28,231,223,7,175,7,169,
+201,227,168,167,134,118,237,115,145,198,4,214,205,223,159,189,238,57,201,60,142,188,224,128,60,106,114,116,51,75,198,120,55,111,219,208,11,156,15,199,158,167,215,9,246,240,252,249,146,14,14,71,158,227,
+63,240,37,186,234,125,64,206,122,231,173,48,180,128,99,201,184,61,126,98,246,124,123,224,22,24,228,0,113,192,206,71,21,19,73,57,233,28,167,175,89,32,36,250,101,68,100,125,62,153,35,169,32,22,190,220,191,
+243,213,129,227,254,94,229,60,125,12,216,0,251,99,36,243,215,33,134,249,79,241,169,25,231,55,127,66,55,31,181,3,201,227,144,58,85,97,37,210,159,245,76,73,7,0,152,59,116,35,11,156,14,61,122,83,205,205,
+199,123,117,39,140,101,97,126,135,211,203,60,158,120,28,99,211,52,1,57,187,4,99,17,245,224,253,167,35,183,28,92,147,211,39,56,35,175,210,154,110,209,71,45,8,36,125,211,112,160,231,211,38,112,115,233,207,
+35,165,49,166,185,110,150,233,158,56,48,193,192,234,122,32,228,245,228,114,48,72,35,168,100,159,28,195,30,73,231,54,246,249,35,190,70,244,35,252,241,193,160,9,13,220,36,114,241,19,239,44,71,32,30,49,251,
+227,142,156,115,145,223,208,68,110,33,39,239,64,64,28,110,150,34,61,254,95,55,223,255,0,215,212,179,204,148,17,186,24,135,185,182,181,192,221,219,30,103,67,206,57,61,122,100,211,212,187,127,203,40,143,
+210,210,212,129,201,192,226,81,198,125,125,250,226,128,16,79,15,31,53,154,129,142,55,198,56,224,118,153,187,140,224,116,4,116,238,211,36,28,129,246,22,245,0,68,115,143,76,206,184,207,94,248,245,61,156,
+67,30,26,11,108,119,102,179,182,25,61,1,36,54,70,120,198,126,157,50,42,50,16,227,114,218,32,232,8,132,118,227,28,62,7,57,224,125,79,124,0,39,153,31,81,21,168,3,156,6,129,79,224,60,254,252,100,28,227,215,
+28,84,102,85,60,249,86,196,115,129,178,208,247,232,115,112,15,108,100,115,212,241,67,73,18,156,31,177,158,79,205,229,43,28,118,200,243,128,199,190,56,233,237,76,47,110,78,11,219,228,14,54,169,76,250,224,
+9,178,64,39,251,199,29,198,56,0,11,190,48,9,242,163,29,57,72,109,63,49,251,198,221,206,48,6,58,156,15,74,237,34,55,72,221,70,120,196,118,170,56,227,140,50,113,239,158,61,69,76,77,191,5,39,133,78,8,255,
+0,92,235,208,247,6,227,3,147,219,57,25,245,166,113,252,55,16,147,142,247,46,57,227,161,91,134,252,114,58,158,221,128,33,114,91,56,92,143,247,224,94,221,48,151,29,241,216,103,175,29,106,179,7,7,254,90,
+129,207,10,234,8,31,132,189,250,224,3,145,193,201,205,92,147,127,85,149,73,56,229,111,38,227,168,234,25,186,15,161,234,1,168,155,237,11,140,76,167,191,252,126,92,125,61,135,182,6,65,237,64,21,10,147,213,
+102,35,146,73,153,187,246,199,156,0,199,67,211,250,84,14,1,234,46,186,30,22,86,254,75,57,207,167,175,78,42,233,107,160,50,20,147,212,147,119,62,59,244,199,111,230,58,212,6,107,163,156,224,99,57,63,108,
+184,28,100,250,21,253,50,72,35,222,128,41,148,206,64,23,139,199,63,190,147,159,110,38,252,250,245,233,199,17,53,184,94,119,221,140,242,7,157,49,207,174,49,46,113,159,94,61,134,50,111,180,247,64,124,168,
+237,215,149,188,152,142,115,198,75,15,255,0,86,71,90,135,125,220,135,62,84,195,142,118,221,201,223,143,115,223,144,79,25,230,128,51,100,129,15,38,89,192,245,50,221,253,121,9,40,247,235,235,211,174,35,
+48,64,70,76,210,156,245,221,113,168,40,199,35,140,79,156,127,94,230,180,76,119,89,207,147,55,32,156,181,220,135,159,96,66,143,115,156,251,84,14,110,84,140,194,196,28,228,125,161,216,128,115,237,248,242,
+112,58,114,65,36,2,145,181,183,235,231,38,123,238,155,80,39,234,223,233,99,183,92,3,211,61,58,87,104,173,212,252,210,33,29,126,246,164,125,125,110,128,29,51,244,233,87,216,185,255,0,150,15,145,200,217,
+44,185,227,159,66,56,199,168,234,120,245,165,33,82,220,199,56,228,2,11,74,192,31,66,121,224,227,140,127,78,0,35,205,168,24,243,87,7,32,2,183,188,126,38,241,78,15,114,51,248,247,137,190,199,159,245,233,
+156,227,165,225,236,63,189,125,144,114,49,199,63,74,145,252,142,134,25,92,14,191,44,189,79,97,153,126,188,128,0,231,212,131,11,27,81,159,221,76,132,103,157,132,117,250,204,50,61,14,62,156,100,80,2,98,
+208,17,137,227,234,57,219,119,237,235,123,142,7,175,113,193,227,150,55,217,191,231,188,94,227,253,32,3,140,255,0,122,252,125,48,72,245,226,162,38,200,228,145,115,235,149,141,15,254,133,38,56,238,0,110,
+217,39,189,114,214,121,56,251,80,255,0,183,100,99,200,29,72,151,223,208,30,189,168,2,115,45,184,5,124,244,4,242,63,214,96,14,252,157,64,28,158,156,154,136,249,36,100,92,35,119,28,161,60,115,255,0,65,19,
+140,142,1,231,156,122,140,192,210,91,174,15,153,113,143,246,172,249,245,199,19,175,168,206,127,195,45,23,80,41,225,229,29,79,22,140,121,7,57,255,0,90,114,121,239,249,30,192,15,102,28,237,150,60,30,132,
+200,159,79,250,8,113,208,227,220,30,49,214,179,23,255,0,158,241,142,122,228,22,198,120,25,251,121,29,125,189,59,242,80,222,64,78,124,203,131,147,212,218,63,28,228,28,144,221,143,35,240,247,168,154,229,
+7,221,243,155,208,139,118,95,199,62,95,3,29,51,223,241,160,5,102,234,26,233,1,56,233,34,142,78,71,123,179,142,224,30,122,118,168,206,242,56,189,7,167,241,103,243,34,231,156,3,208,100,247,166,27,189,164,
+144,28,255,0,188,172,51,142,71,5,6,115,142,192,247,61,112,42,23,191,159,157,177,182,58,15,152,159,175,30,91,17,207,35,129,145,156,102,128,37,112,228,15,244,193,129,247,190,103,3,174,48,49,62,122,243,158,
+159,94,42,155,96,31,248,252,31,83,44,184,227,220,202,222,156,19,212,119,237,67,106,23,89,226,70,83,158,0,121,120,200,224,29,176,28,158,188,231,241,231,136,77,252,184,230,67,146,121,204,247,32,113,146,
+121,242,9,29,187,114,1,250,80,3,152,169,25,55,136,120,4,226,71,126,189,57,99,145,193,233,146,48,7,165,87,118,83,144,46,209,189,178,255,0,142,112,72,56,227,62,185,61,8,25,86,189,148,143,190,15,210,238,
+247,240,4,139,67,143,114,73,24,233,211,53,93,175,216,117,101,39,184,251,125,246,122,242,126,107,126,153,207,127,165,0,14,234,62,243,171,115,193,10,78,125,135,57,56,199,182,120,24,52,207,50,35,212,175,
+99,196,110,222,158,128,254,32,117,252,133,50,75,217,137,249,24,224,246,23,151,76,61,136,221,2,159,124,241,207,175,21,88,222,93,100,255,0,172,57,29,126,211,57,231,39,158,84,103,235,206,127,10,0,149,228,
+129,64,228,245,206,60,166,4,245,227,230,66,57,245,235,253,97,105,173,249,198,236,1,255,0,60,216,19,140,231,24,65,201,236,71,176,198,105,141,121,118,63,231,176,7,63,48,184,147,29,122,224,202,48,115,237,
+131,244,226,162,55,183,57,3,204,147,234,102,207,191,121,9,234,7,99,252,176,0,175,53,176,10,54,54,71,93,200,87,175,190,222,132,118,231,61,240,13,87,146,123,114,71,200,79,169,192,228,143,98,56,30,248,224,
+122,247,148,220,200,126,244,178,169,61,127,210,84,100,231,175,205,39,166,114,72,233,233,76,107,132,198,90,89,11,118,205,220,120,192,198,79,50,243,142,59,244,235,216,0,8,254,209,0,192,84,115,143,72,227,
+36,126,37,114,71,79,110,1,198,56,168,30,234,48,121,134,126,131,164,10,122,224,240,86,80,0,199,94,163,138,145,231,92,101,37,201,232,72,154,35,244,207,239,15,92,246,244,56,239,80,180,131,188,142,56,60,249,
+170,9,192,235,254,184,99,174,59,224,227,235,64,13,251,100,100,224,65,112,122,103,247,103,140,14,50,126,209,208,224,142,0,207,99,215,9,246,152,251,199,118,135,160,199,154,189,186,241,112,71,79,83,216,129,
+232,29,148,60,249,143,158,161,188,216,72,60,103,187,131,245,193,232,125,106,7,22,249,249,220,158,159,242,222,221,114,115,200,230,80,73,25,32,3,142,49,233,64,14,107,196,95,249,252,198,48,55,60,164,245,
+254,241,144,255,0,51,199,64,106,31,183,168,36,23,189,198,79,75,130,57,237,193,144,0,58,224,251,254,20,141,21,153,231,206,64,79,118,188,180,24,250,239,45,211,142,152,250,1,147,80,180,54,131,254,90,67,142,
+167,55,182,93,71,185,207,232,113,199,61,137,0,148,223,12,242,218,128,3,3,2,225,137,207,97,254,176,103,62,188,127,90,133,175,144,116,146,248,123,180,164,145,131,212,19,38,59,231,233,158,15,104,204,54,189,
+68,158,131,43,168,91,116,199,160,207,169,24,227,240,205,49,162,181,83,196,234,15,63,243,16,183,57,232,57,1,114,125,72,25,198,49,219,144,7,27,248,131,125,235,188,245,220,36,25,237,215,158,199,177,235,215,
+181,71,246,244,39,10,215,140,122,146,102,245,246,222,199,252,244,166,20,183,4,237,145,112,59,45,196,68,250,19,185,72,28,251,14,122,143,90,0,139,63,124,245,255,0,159,152,148,30,188,114,9,233,238,122,142,
+77,0,15,116,51,247,174,121,255,0,167,130,191,175,32,156,227,215,129,239,154,79,61,58,134,185,227,25,197,216,4,3,223,38,221,249,227,39,158,56,227,181,77,186,17,140,96,146,57,197,220,68,243,199,31,119,57,
+231,211,156,224,242,115,27,48,0,133,199,78,115,119,31,63,147,245,28,227,32,246,28,208,4,70,120,250,22,185,110,71,91,165,35,140,119,54,152,39,166,115,236,71,179,124,232,143,83,113,199,165,192,206,51,233,
+246,113,223,215,35,175,214,167,86,152,143,148,156,118,255,0,76,65,223,158,140,123,242,115,223,145,223,44,62,112,201,39,175,36,249,238,216,231,213,91,190,70,113,248,227,138,0,136,60,25,227,237,68,147,222,
+100,61,189,4,127,82,120,231,52,194,233,187,63,190,39,158,25,208,99,62,185,192,228,123,15,241,153,139,147,206,87,212,23,156,143,92,228,51,17,159,92,156,117,166,230,64,50,206,173,199,70,150,228,16,8,254,
+233,36,123,100,1,140,118,160,8,195,12,225,84,146,73,24,243,224,7,252,87,7,142,160,243,220,102,151,11,158,85,199,169,251,90,40,235,140,240,235,211,158,185,198,63,0,199,121,59,44,4,245,1,94,66,56,236,73,
+144,114,126,135,169,199,188,13,44,153,192,142,53,245,2,105,83,25,233,210,76,113,158,227,211,61,232,2,198,197,36,157,174,71,114,47,16,227,211,248,240,127,51,140,30,181,30,216,148,224,135,207,92,11,216,
+179,145,245,110,157,122,126,29,205,65,190,99,144,124,130,65,255,0,159,153,73,207,126,178,131,158,7,64,105,172,211,158,49,10,131,199,252,124,72,188,103,212,207,215,25,234,57,30,185,20,1,105,190,95,186,
+39,227,39,254,62,225,199,110,152,97,238,70,49,142,123,211,67,28,242,100,57,206,63,210,227,28,227,166,12,184,62,189,56,231,216,85,81,230,46,126,120,61,63,215,238,199,253,245,58,250,112,51,235,199,90,82,
+37,35,153,236,192,61,3,24,207,39,61,190,208,217,56,56,192,198,122,143,74,0,149,137,57,56,144,144,63,231,238,60,31,160,221,252,243,223,28,209,81,41,113,128,211,89,156,231,254,120,247,244,204,231,240,57,
+35,154,40,3,245,37,174,46,48,55,60,125,123,207,35,103,140,99,148,3,235,207,191,61,162,55,51,17,193,183,31,89,92,131,147,142,138,163,57,60,228,158,123,231,145,86,60,168,23,173,211,176,246,91,147,206,125,
+220,113,237,156,123,99,162,152,109,216,113,60,128,227,175,147,120,195,142,6,54,48,231,145,208,253,9,192,160,10,70,119,201,36,219,228,142,187,228,7,35,216,228,117,207,167,95,65,138,132,220,56,198,4,39,
+211,153,24,142,252,133,141,136,56,245,60,126,21,112,218,198,217,34,242,92,140,99,22,250,134,220,224,112,65,56,35,158,156,250,114,5,70,108,35,126,183,199,167,79,179,223,0,14,15,93,228,2,123,127,22,15,62,
+224,2,131,79,57,36,13,160,12,130,4,82,156,99,169,203,67,131,234,121,250,142,181,17,146,227,28,78,138,123,3,12,135,159,76,8,64,24,228,158,245,116,216,133,200,23,146,145,158,130,11,188,125,126,85,207,166,
+114,61,56,168,30,192,55,252,189,76,220,159,249,97,121,252,206,48,114,73,57,61,205,0,82,107,139,181,57,251,76,103,30,176,48,4,243,201,38,44,123,231,57,31,135,12,55,51,255,0,20,240,28,142,119,162,129,235,
+156,152,189,58,115,211,215,53,120,216,147,143,244,135,198,71,45,111,116,15,254,132,50,49,156,126,56,207,57,105,177,98,78,46,27,220,249,55,99,140,247,1,142,121,235,158,0,57,231,184,5,35,114,235,195,77,
+108,121,199,28,116,60,231,8,184,60,227,142,112,57,199,82,9,247,17,153,45,20,250,146,249,207,124,228,1,147,142,131,174,122,213,191,177,202,14,126,208,231,169,63,45,193,4,243,158,170,79,0,244,166,181,172,
+167,238,184,39,147,202,185,231,175,241,69,146,127,17,237,214,128,24,88,50,224,77,98,59,245,152,146,73,255,0,123,0,159,247,120,206,1,244,136,146,51,137,44,79,110,178,28,228,241,140,12,14,57,7,60,246,197,
+74,214,215,64,253,232,200,61,127,114,217,237,206,90,33,239,192,224,116,28,117,84,130,243,36,132,67,142,172,99,136,3,201,39,134,136,12,126,57,233,146,59,128,86,50,200,8,0,88,177,7,161,12,79,190,119,174,
+0,28,99,156,30,160,210,7,159,36,152,244,211,142,120,120,148,123,15,231,234,121,35,21,112,199,118,57,54,193,143,39,1,45,206,78,15,56,1,120,206,112,15,83,143,74,77,151,88,193,176,25,61,75,195,1,224,122,
+28,140,250,28,227,241,232,0,41,125,162,69,224,71,167,55,83,143,49,73,236,127,184,192,116,35,56,199,28,113,212,19,202,127,229,133,136,62,129,163,4,250,117,143,145,131,198,1,3,25,250,222,219,113,144,14,
+157,105,245,49,90,147,233,208,146,63,49,219,36,28,28,163,9,192,36,217,219,47,160,242,109,71,92,240,126,67,144,15,95,98,61,178,1,76,188,152,255,0,87,104,24,142,0,146,46,189,127,185,143,204,251,19,154,140,
+189,198,64,88,173,143,166,36,183,207,57,227,230,67,223,212,123,129,212,85,173,210,100,230,210,211,182,51,109,110,73,198,125,34,232,64,245,237,215,209,173,185,135,54,54,185,199,123,56,8,35,219,229,206,
+6,114,71,94,199,161,160,10,228,93,30,76,54,224,231,60,92,88,175,31,240,36,83,140,140,227,129,236,57,168,164,107,177,210,40,14,8,224,92,105,220,126,33,73,252,248,247,200,171,187,15,107,43,51,211,143,177,
+198,115,215,32,128,1,235,142,184,237,205,41,64,70,239,176,218,110,7,144,45,35,30,248,201,86,61,114,57,24,39,169,56,20,1,156,36,187,24,202,39,184,23,90,102,59,158,51,129,142,122,128,51,211,176,194,249,
+183,219,178,45,209,177,233,123,166,169,252,113,211,175,185,231,173,104,121,99,7,22,54,128,156,117,182,183,236,127,235,151,56,227,169,227,35,20,210,128,244,180,180,1,113,210,206,51,158,189,63,115,236,120,
+233,235,140,28,0,81,19,223,41,230,219,105,255,0,102,230,197,135,211,43,32,39,140,244,206,15,81,214,158,183,23,157,26,222,70,35,159,248,249,181,237,212,99,204,228,247,239,131,208,85,141,167,7,22,246,227,
+130,56,181,65,232,15,202,182,199,161,237,245,245,4,183,99,96,226,33,199,3,22,202,6,51,140,103,236,156,122,245,231,62,244,0,223,181,93,255,0,207,163,99,222,226,28,245,255,0,102,66,127,35,77,23,87,31,195,
+110,73,28,159,155,119,39,25,231,156,127,158,134,131,27,247,181,45,233,139,113,159,82,120,131,24,250,1,197,31,103,145,179,139,22,57,31,197,104,220,118,224,249,64,119,237,215,216,241,64,15,91,153,216,228,
+219,184,61,136,45,201,255,0,128,28,228,112,49,192,244,235,195,204,211,14,176,227,220,199,112,217,250,144,9,255,0,31,81,222,15,177,200,48,77,138,169,29,1,182,42,73,29,190,231,7,215,167,31,149,13,4,248,
+24,177,206,51,214,39,235,216,96,40,227,208,254,163,138,0,155,205,155,145,228,187,14,58,91,93,156,118,231,17,183,83,234,125,105,234,210,142,182,178,31,95,244,107,161,215,175,34,48,113,239,197,83,49,204,
+188,13,60,51,14,49,183,7,235,201,7,143,76,231,211,28,82,170,207,156,157,56,253,0,144,15,111,186,252,146,123,0,56,246,224,128,92,216,236,120,183,157,115,207,16,93,158,184,233,185,71,190,51,249,156,83,150,
+50,113,149,157,79,36,255,0,163,221,0,63,17,198,56,231,56,237,140,17,84,74,204,199,141,56,245,238,178,118,207,60,231,167,174,77,76,33,186,0,31,176,99,61,48,164,147,248,112,123,158,49,223,60,244,32,22,188,
+150,35,59,73,30,240,202,79,108,228,145,233,254,60,156,26,13,168,56,249,27,39,146,4,56,228,99,156,50,116,207,127,92,84,30,77,214,50,44,241,143,68,114,15,4,127,121,123,112,121,3,183,67,138,21,46,135,75,
+87,25,28,126,238,115,142,231,238,202,127,144,61,59,154,0,176,44,248,200,138,225,178,127,133,98,82,7,166,118,130,9,199,81,156,12,113,158,171,246,60,114,33,185,25,193,232,141,216,115,149,112,123,115,198,
+78,113,131,197,70,22,240,12,139,121,7,63,120,69,112,15,176,206,252,123,244,207,126,122,83,214,91,222,0,75,142,51,130,82,110,58,115,209,128,231,191,66,104,1,141,106,51,130,151,3,174,14,196,83,201,56,0,
+100,224,158,159,254,172,5,22,224,12,20,186,7,156,49,42,0,192,193,224,99,56,235,146,70,49,212,84,223,241,48,60,152,110,143,32,140,69,39,25,247,32,103,175,63,231,50,108,191,110,66,94,41,239,251,169,79,95,
+162,19,129,131,140,3,211,233,144,10,226,44,103,15,118,0,231,253,100,101,79,94,217,36,117,207,29,121,230,152,85,148,253,249,138,243,207,35,215,169,7,174,115,244,245,28,154,182,32,190,110,166,232,99,57,
+38,9,207,168,232,97,45,208,255,0,119,61,248,6,144,90,94,140,144,215,0,156,115,246,107,161,212,30,164,68,163,62,156,112,122,242,57,0,168,88,142,85,216,1,254,211,250,30,112,50,51,159,79,168,160,92,58,242,
+210,72,57,192,196,183,3,56,233,209,112,15,3,142,217,7,21,100,193,122,141,134,55,4,30,255,0,103,188,57,227,209,35,206,121,62,253,115,197,52,199,112,49,242,78,127,221,181,189,3,35,57,25,101,246,63,134,56,
+56,20,1,7,159,41,198,217,37,32,156,156,207,114,59,228,99,3,140,231,252,145,154,81,51,231,36,150,39,161,55,23,217,227,35,28,0,78,1,227,177,237,140,131,82,24,174,91,254,93,166,61,58,217,203,201,7,185,42,
+125,255,0,175,61,67,5,214,0,54,172,7,98,109,152,158,157,62,230,7,61,113,145,142,128,117,160,8,196,172,62,240,200,61,188,237,75,24,234,73,32,62,70,6,56,0,231,242,167,164,138,15,250,185,79,161,91,139,224,
+51,233,204,42,195,7,39,145,235,248,72,144,220,16,49,108,217,200,231,236,236,65,252,59,140,12,114,59,116,192,52,226,147,174,67,219,55,212,193,48,31,80,84,147,239,208,247,205,0,6,94,6,33,147,62,191,106,
+190,233,239,242,99,63,81,145,159,165,32,157,1,199,217,119,123,25,175,143,39,57,233,23,39,241,234,61,169,140,100,25,62,82,170,244,56,182,184,36,244,238,79,174,71,79,92,240,114,25,230,21,193,218,7,35,36,
+192,232,61,15,241,3,248,227,191,189,0,92,19,41,207,250,19,169,206,126,89,175,71,64,15,32,193,216,116,250,158,245,54,229,43,243,89,204,125,15,155,114,115,200,25,4,193,201,3,29,243,212,103,21,71,237,146,
+17,200,4,122,152,212,224,243,207,206,237,219,158,70,71,35,167,20,225,124,163,134,4,100,255,0,207,24,112,78,113,156,249,163,156,251,113,143,198,128,46,20,133,176,77,140,228,251,60,196,243,238,98,239,211,
+145,140,129,214,154,109,161,227,54,119,106,79,92,151,35,145,192,27,162,199,79,166,61,250,138,191,110,140,177,249,120,234,67,121,11,158,231,57,145,142,79,177,236,15,92,84,162,250,17,140,4,31,246,209,64,
+31,247,200,60,99,211,29,190,148,1,55,217,162,207,252,123,220,246,0,24,212,31,94,119,40,39,25,61,120,227,168,207,32,183,143,160,138,113,146,126,242,196,6,64,199,66,8,198,71,39,143,81,233,80,181,236,76,
+51,230,196,164,99,3,237,14,49,140,246,92,99,183,79,214,161,55,74,71,19,64,8,233,254,145,56,235,212,125,240,73,199,83,194,142,184,228,138,0,178,108,216,30,21,251,99,122,66,7,7,145,223,30,188,14,65,252,
+216,214,179,231,229,100,201,246,128,1,245,5,64,252,71,175,53,79,237,106,164,3,117,16,201,233,246,137,0,207,227,58,228,244,234,9,207,78,105,77,216,35,139,148,60,15,249,120,3,245,107,142,217,227,129,140,
+122,19,64,23,5,141,225,31,44,177,143,109,246,224,127,35,233,254,120,168,155,77,188,239,44,99,61,65,154,219,167,126,15,202,7,225,199,210,161,55,82,5,255,0,94,118,231,3,253,41,78,58,246,23,56,237,158,159,
+208,84,77,116,237,156,220,14,113,207,218,84,100,245,234,103,35,158,125,113,147,233,64,18,53,133,210,129,151,128,103,163,25,109,71,61,15,67,130,61,184,207,183,90,65,97,116,48,12,182,224,245,221,230,218,
+224,112,15,57,220,127,47,94,59,85,115,52,157,174,148,30,112,63,180,8,4,14,167,9,59,99,158,156,14,188,14,104,6,224,130,69,222,58,103,26,132,167,31,221,227,204,201,227,223,140,158,157,40,2,199,216,174,1,
+200,123,18,221,247,27,114,113,238,60,159,167,106,105,183,184,57,255,0,143,64,114,57,6,37,201,234,65,30,64,207,57,232,0,237,200,235,84,181,202,255,0,203,218,131,156,127,199,237,193,200,57,207,73,250,15,
+81,207,78,125,79,223,241,155,146,248,199,2,242,236,129,143,99,49,206,127,15,114,120,160,11,130,218,240,240,26,204,116,235,228,183,127,83,110,123,253,73,235,201,232,227,111,126,14,0,180,199,174,216,23,
+212,247,181,29,50,70,61,122,116,170,224,204,0,37,230,110,121,11,123,114,188,115,215,116,220,227,223,57,244,238,24,12,204,0,219,116,192,117,255,0,76,148,140,158,153,249,206,73,199,4,231,147,235,205,0,90,
+54,215,167,36,136,91,61,54,249,88,224,127,179,108,73,239,211,215,39,60,80,214,215,32,96,196,0,3,176,3,142,59,121,10,14,57,236,57,35,210,170,178,206,71,220,185,192,7,173,220,195,3,28,227,230,62,157,64,
+7,211,147,194,42,73,183,152,167,56,199,91,217,139,115,140,247,254,88,235,193,160,9,254,201,112,6,74,176,207,65,182,51,147,206,78,89,7,3,234,49,215,128,40,22,119,61,11,40,4,231,37,160,31,135,65,215,211,
+175,229,195,5,188,164,13,176,220,158,0,207,219,46,49,142,249,253,226,250,244,239,223,165,72,45,230,3,2,27,131,158,223,104,185,97,244,230,227,191,127,67,212,80,3,190,203,112,163,0,140,250,238,182,193,247,
+25,35,168,235,131,158,115,128,69,48,193,63,118,0,143,250,105,104,160,227,169,3,205,83,245,206,65,199,94,244,134,27,129,199,217,165,7,175,19,220,49,60,17,157,191,104,35,61,62,189,134,56,163,201,186,3,253,
+68,222,219,90,92,122,96,19,47,113,216,18,113,199,38,128,27,246,82,70,237,233,142,249,150,207,131,159,79,60,250,250,122,231,220,251,48,25,45,44,96,251,75,104,122,231,7,137,184,4,246,30,255,0,90,73,45,175,
+0,4,69,114,51,206,1,148,254,100,185,192,247,206,61,197,87,104,174,135,222,73,249,63,196,29,128,245,224,57,198,56,200,199,161,192,56,20,1,57,134,60,228,202,7,98,119,91,49,244,224,121,202,72,247,232,69,
+56,91,161,28,74,135,31,223,54,216,198,57,235,121,129,244,28,118,7,189,83,41,120,51,212,14,219,162,184,207,182,74,149,227,223,7,61,207,122,132,139,172,18,94,62,163,170,94,19,248,225,186,242,120,207,189,
+0,95,48,38,72,50,219,122,144,126,203,143,253,41,98,127,17,223,57,165,242,161,0,228,88,176,255,0,183,115,215,61,64,159,168,61,7,160,36,3,197,103,134,156,14,25,126,162,218,248,254,27,135,111,175,229,77,
+105,110,70,8,40,70,78,9,182,189,56,237,208,198,221,126,189,143,83,64,26,232,177,5,56,75,28,246,198,211,193,199,77,179,31,228,79,92,154,66,71,100,180,3,158,172,84,122,241,137,115,219,140,231,53,146,103,
+156,158,21,91,24,206,45,111,112,125,200,251,43,15,175,39,167,168,164,243,220,114,200,14,59,11,27,150,63,248,245,174,7,190,125,191,0,13,66,172,196,108,251,47,79,239,176,25,233,142,88,159,92,147,145,158,
+157,41,124,187,177,247,5,175,208,79,140,227,129,192,96,125,57,39,31,133,102,125,173,187,41,192,207,252,185,204,163,223,172,3,29,123,15,122,114,222,145,201,252,196,14,163,243,107,124,113,223,241,237,212,
+2,249,142,247,57,34,12,116,226,86,56,63,80,72,29,58,117,231,61,14,105,12,87,3,36,139,126,249,205,204,195,223,35,129,158,217,236,7,63,90,226,240,17,247,192,207,0,148,140,30,120,25,6,48,71,215,25,245,7,
+140,47,218,24,255,0,203,199,30,222,64,252,6,97,199,126,253,187,129,208,2,66,141,223,236,131,175,252,189,63,31,80,70,71,63,129,219,248,84,69,3,119,180,24,228,98,229,249,231,142,66,231,28,103,25,199,169,
+61,42,97,59,1,196,242,19,140,146,22,204,156,96,140,3,228,18,122,245,7,168,245,206,31,246,134,35,137,103,233,235,106,15,29,73,196,3,255,0,175,211,222,128,42,49,3,140,219,15,251,108,255,0,151,32,159,78,
+72,255,0,235,135,4,28,253,156,96,247,154,94,121,255,0,174,125,253,9,252,115,86,183,191,252,244,155,183,36,90,158,120,193,194,196,1,198,15,65,215,174,112,105,9,149,137,196,215,7,215,63,102,235,207,77,208,
+128,15,30,160,115,198,48,40,3,63,100,108,121,91,82,15,7,247,215,4,243,234,60,190,65,239,207,215,158,40,88,99,81,144,150,167,131,147,190,233,122,15,100,57,233,216,0,6,112,58,10,187,182,99,130,36,159,140,
+129,205,160,245,200,192,78,199,140,103,166,49,142,105,12,115,158,90,121,192,60,112,214,192,253,0,84,239,249,126,2,128,41,236,70,235,12,39,29,118,75,126,113,255,0,124,199,130,78,115,140,227,222,129,13,
+158,114,97,136,19,233,38,161,193,56,245,65,158,125,1,56,56,60,213,161,30,63,229,172,196,227,169,251,62,51,207,4,149,82,122,144,48,79,56,234,105,12,68,158,9,239,213,45,201,61,57,224,31,203,147,233,220,
+80,4,30,77,160,200,16,196,199,174,65,187,115,211,253,160,49,142,15,210,144,195,111,218,222,18,189,178,147,123,228,2,170,123,115,219,167,38,174,109,32,124,193,176,6,65,17,67,207,211,133,206,115,220,227,
+166,51,154,107,56,61,21,193,235,147,10,123,115,133,110,167,215,241,250,0,87,88,161,28,139,69,244,1,82,231,36,15,161,24,254,103,154,112,141,71,2,209,134,6,50,18,236,253,0,0,143,76,99,63,144,193,167,101,
+135,118,7,166,12,17,103,158,223,51,146,58,113,198,122,212,102,98,159,120,55,61,49,20,32,156,241,201,203,100,113,211,175,112,15,96,0,170,158,182,242,47,210,27,210,115,211,131,187,252,58,241,212,10,110,
+209,142,96,184,31,238,193,120,79,30,229,135,182,48,122,116,226,151,205,221,203,52,192,117,249,99,131,242,28,100,17,158,189,121,25,198,41,77,202,40,230,73,0,255,0,174,49,147,158,122,224,117,245,250,159,
+169,0,55,162,130,12,119,35,160,255,0,81,117,159,126,172,222,252,100,31,124,131,152,243,0,203,17,116,61,127,209,102,108,114,123,151,228,242,112,8,35,160,235,154,119,219,35,28,153,46,56,207,252,178,85,28,
+12,116,3,24,39,167,25,252,58,188,220,146,70,201,37,199,60,18,138,71,224,3,113,147,199,94,217,247,0,132,201,23,97,49,231,24,54,173,156,122,144,75,19,249,123,251,6,23,136,146,68,114,142,188,139,78,123,103,
+248,71,92,115,252,179,83,253,161,191,191,63,208,72,23,61,73,28,69,145,158,121,207,60,142,213,11,220,228,156,27,130,65,199,51,178,130,125,62,104,113,147,192,28,245,252,9,0,105,145,78,62,89,243,201,31,232,
+142,121,236,78,208,220,128,79,78,191,74,12,131,156,249,249,29,71,216,101,63,158,97,32,30,58,224,231,218,154,110,38,249,71,39,174,55,92,31,110,226,2,79,185,4,246,199,92,212,109,57,228,50,143,124,94,56,
+63,250,78,78,61,70,9,192,198,40,2,79,55,29,94,227,156,30,52,247,63,145,54,248,246,193,200,245,25,198,83,205,78,134,91,158,188,255,0,160,176,237,237,108,49,235,142,70,122,156,156,136,124,254,72,86,113,
+158,198,233,136,199,166,90,219,241,39,63,200,97,226,102,31,43,20,111,66,215,37,122,227,131,139,127,83,198,77,0,73,230,198,71,15,55,167,54,92,156,30,164,152,51,223,35,140,241,206,112,40,50,33,227,204,206,
+65,60,218,40,35,240,22,220,30,192,158,135,182,14,76,123,206,50,12,93,15,252,191,184,233,159,250,100,7,115,255,0,214,164,14,231,248,162,25,201,3,251,69,185,250,31,43,176,237,207,173,0,88,89,74,142,30,32,
+59,238,183,10,120,201,207,54,252,143,113,156,142,112,122,83,196,136,71,250,232,177,223,8,248,235,200,194,194,190,152,28,125,7,173,6,18,147,201,183,198,56,255,0,76,15,145,200,228,52,36,19,212,142,221,51,
+200,166,21,39,36,188,32,146,65,34,101,239,244,135,190,123,227,212,243,140,128,105,153,226,92,159,62,49,199,163,143,203,128,79,62,160,158,58,96,84,109,60,60,230,104,73,235,147,52,169,207,7,24,27,70,122,
+231,223,211,21,156,35,25,201,104,142,57,27,110,23,168,199,81,229,134,28,158,59,122,140,212,190,84,110,57,32,158,51,182,114,199,3,175,2,54,235,198,58,244,0,96,113,64,22,12,214,141,214,120,129,39,159,244,
+151,3,232,65,113,199,110,217,239,144,113,81,147,96,196,110,150,2,122,103,237,39,212,131,207,156,15,3,223,60,241,138,139,236,176,228,227,126,48,122,200,15,110,56,242,27,130,120,201,57,246,237,78,91,50,
+199,128,62,187,194,130,61,55,8,7,61,243,156,116,61,232,1,60,187,34,78,39,183,61,51,139,145,142,122,28,52,221,112,58,227,24,230,159,229,88,16,9,184,135,24,228,11,165,252,201,18,114,49,142,160,227,166,122,
+84,71,78,57,224,128,113,140,121,238,122,250,15,32,123,118,61,57,62,141,107,71,81,130,91,131,140,171,177,231,175,107,98,63,74,0,159,203,211,136,230,101,57,224,145,50,182,15,28,12,76,49,219,62,190,213,3,
+193,167,100,230,89,112,121,249,100,78,122,227,254,91,14,131,32,19,215,140,224,147,81,155,39,60,147,38,79,76,180,252,227,233,103,215,143,94,7,227,150,27,71,7,230,243,56,24,200,142,235,118,125,241,98,114,
+56,227,223,28,250,128,35,197,100,163,229,121,255,0,16,173,207,113,255,0,31,62,223,76,247,197,69,182,219,248,94,125,199,61,85,0,237,217,102,62,231,158,59,212,254,65,7,25,184,231,212,221,168,206,15,111,
+177,14,156,227,29,179,142,188,40,183,124,28,60,235,131,145,143,181,28,100,242,79,250,39,227,159,229,212,0,85,242,161,235,184,144,121,207,146,164,240,114,56,50,28,250,129,206,121,228,30,105,140,17,70,119,
+1,206,56,138,33,211,176,231,57,57,28,15,195,222,119,134,108,229,110,38,220,58,13,178,131,250,217,103,142,156,144,6,123,245,49,159,60,100,253,170,227,183,1,152,115,208,231,54,232,62,185,29,135,29,232,2,
+31,52,243,177,165,200,29,145,7,78,195,4,227,142,185,252,250,211,150,225,134,65,89,24,255,0,192,61,7,112,224,15,207,156,244,237,72,205,48,198,100,187,56,238,30,76,96,245,233,9,192,245,4,241,223,56,205,
+55,206,97,145,190,239,24,39,104,201,199,215,247,71,175,124,246,235,238,0,166,225,186,121,108,78,8,198,212,63,145,50,30,7,110,49,211,35,173,49,167,144,14,1,231,166,82,63,208,147,143,208,245,166,52,251,
+135,45,118,49,212,144,195,61,251,133,247,63,135,191,16,153,225,28,177,186,39,221,16,131,245,45,159,78,59,116,20,1,47,218,24,125,224,65,61,50,19,4,14,248,4,158,51,234,6,122,10,99,74,199,4,69,17,228,245,
+59,115,207,169,24,57,245,207,212,138,143,206,183,200,200,185,29,254,236,107,201,207,95,153,115,211,215,177,32,241,81,52,176,18,70,217,48,56,59,188,163,158,189,132,163,232,113,237,144,70,112,1,57,127,88,
+32,4,227,57,36,243,239,133,236,62,190,221,72,17,249,234,56,242,162,4,156,112,64,28,244,228,168,62,189,200,24,237,206,107,150,80,50,33,39,232,176,143,209,156,227,219,39,39,183,165,68,210,33,24,123,97,223,
+37,146,12,19,248,73,220,147,208,159,112,40,2,233,144,19,131,20,71,161,3,123,156,15,194,22,29,122,242,126,131,52,198,201,224,67,9,207,172,172,0,25,233,159,36,159,126,64,232,58,241,138,38,104,143,31,101,
+136,147,253,230,132,103,254,3,230,31,95,199,130,78,105,173,37,184,192,54,246,136,56,232,98,83,249,131,207,183,231,145,64,23,136,36,127,168,132,0,79,221,150,64,9,232,63,229,139,122,30,217,252,51,80,176,
+35,129,4,36,231,128,102,96,7,95,250,117,30,189,125,193,172,230,123,92,228,199,108,125,150,104,137,207,95,186,49,147,211,146,115,223,212,212,123,173,15,72,173,84,231,3,116,232,51,212,12,140,99,159,174,
+104,2,203,171,131,205,188,7,63,244,245,159,253,10,32,61,59,99,219,210,34,28,12,253,158,220,19,198,4,234,122,103,140,136,134,114,15,114,7,92,119,170,206,109,79,252,177,177,206,58,153,202,231,56,233,181,
+73,245,206,113,200,245,226,171,176,183,25,194,217,3,201,192,186,152,112,63,220,4,158,248,252,134,113,64,23,26,87,76,230,218,5,227,179,130,59,255,0,178,73,31,83,235,207,92,69,246,165,201,12,150,192,247,
+200,193,30,252,145,159,78,252,115,219,34,161,107,96,57,72,14,115,159,46,238,224,246,28,224,168,233,245,227,147,239,80,188,182,107,193,242,0,28,115,115,56,192,199,25,225,78,61,73,227,63,133,0,93,123,181,
+35,148,182,233,206,118,158,156,15,226,60,99,143,254,176,230,140,151,74,63,130,212,156,159,225,83,249,29,171,248,245,57,199,227,17,150,201,143,221,139,31,236,92,222,28,142,7,240,99,147,236,15,225,222,22,
+150,211,156,36,106,71,66,215,26,145,207,208,100,123,119,200,60,143,74,0,115,93,54,112,35,181,28,119,67,199,94,65,243,70,79,79,76,115,199,21,94,73,201,4,23,177,92,227,57,78,222,132,153,143,181,71,36,214,
+167,3,11,198,120,89,175,248,252,136,36,103,3,147,192,224,156,224,212,102,120,49,242,21,4,244,1,245,6,234,51,158,39,92,156,100,227,211,20,0,214,59,129,30,102,156,51,206,12,121,245,207,2,108,100,245,200,
+7,158,128,84,4,30,130,109,60,231,28,253,152,241,140,116,34,83,212,246,235,252,233,205,44,107,159,153,14,59,121,183,128,158,253,26,244,96,159,126,245,17,185,183,201,25,43,140,242,102,184,0,119,39,139,209,
+145,207,24,39,161,245,160,6,56,110,118,203,167,253,124,135,3,208,227,150,0,227,39,56,252,78,77,70,99,148,244,150,192,103,168,218,168,56,255,0,121,115,158,189,15,94,156,28,84,223,105,181,207,44,78,50,9,
+51,55,110,15,47,124,63,16,71,78,245,9,150,193,185,7,105,238,11,163,12,119,201,55,248,228,250,103,183,39,176,4,109,109,59,2,7,216,91,211,5,56,199,253,179,61,125,57,207,78,245,84,218,221,114,89,172,151,
+176,33,242,112,113,130,63,118,57,238,112,120,207,78,121,178,237,105,208,73,22,49,255,0,61,35,200,231,147,197,247,28,99,191,235,80,147,102,58,205,24,192,255,0,158,234,58,127,219,248,199,127,110,71,97,64,
+16,27,107,131,159,154,223,219,107,241,129,142,73,45,128,78,9,231,220,14,122,198,214,183,60,131,36,35,29,132,177,127,158,48,122,156,241,208,212,204,214,39,32,221,34,128,122,45,196,114,112,6,1,255,0,143,
+230,60,140,113,159,94,184,24,131,26,97,227,237,103,56,29,74,158,254,162,240,12,103,177,61,186,208,4,102,222,113,128,100,136,158,156,24,72,252,72,7,184,253,121,233,154,139,99,140,242,153,246,42,71,190,
+63,116,64,233,198,61,126,149,51,67,165,182,115,115,25,30,133,65,227,182,71,218,216,30,15,81,234,71,106,136,195,165,96,129,52,7,143,249,230,132,18,0,224,131,57,39,7,142,125,71,3,138,0,143,100,131,35,17,
+253,115,201,233,219,202,227,143,94,252,99,131,81,178,176,201,42,152,245,218,122,123,130,152,60,245,200,247,250,74,208,233,152,207,157,110,199,190,96,92,142,253,165,57,235,131,255,0,235,168,90,43,30,185,
+128,12,12,31,36,3,131,145,198,201,87,7,167,45,159,202,128,33,125,163,28,69,130,48,67,68,173,193,57,228,3,158,167,7,184,199,227,85,157,115,252,75,131,198,22,4,198,61,57,201,252,113,233,219,32,219,242,172,
+129,36,121,4,114,62,104,100,250,100,159,48,247,246,62,188,98,171,185,177,29,77,167,30,144,74,199,212,119,247,227,175,185,160,10,172,54,140,229,206,113,247,98,139,63,158,222,195,24,57,224,103,29,234,13,
+164,114,21,187,99,116,81,28,30,58,174,1,32,247,206,5,90,99,100,114,1,182,236,65,251,27,158,221,190,96,127,64,115,244,168,135,217,70,114,45,88,127,123,251,60,231,142,58,179,115,237,206,104,2,60,35,40,202,
+134,56,201,255,0,71,206,71,176,13,183,177,39,7,249,84,68,196,189,98,95,161,183,192,7,212,101,142,126,156,112,62,162,172,111,180,3,2,59,63,161,176,92,126,59,143,29,115,206,61,170,51,53,184,7,11,98,49,208,
+11,56,211,7,158,126,249,198,122,30,15,166,121,205,0,86,105,33,31,242,197,114,114,63,213,32,28,244,206,100,202,159,112,51,147,138,133,165,139,105,194,96,231,63,117,112,50,115,215,207,206,71,65,128,7,39,
+175,6,173,155,184,71,68,178,250,24,35,30,153,0,121,132,243,156,144,58,99,144,114,77,55,237,22,231,189,170,145,159,187,4,28,122,245,57,0,99,35,35,182,49,146,40,2,137,145,71,59,78,113,234,7,254,59,231,113,
+192,224,250,211,75,19,130,33,99,142,114,25,193,233,237,57,81,140,156,224,117,235,208,85,183,184,180,3,153,45,201,201,192,242,97,201,28,145,234,57,235,215,177,60,116,168,133,229,160,254,40,128,199,240,
+37,190,115,207,109,163,142,231,233,212,208,5,98,236,167,6,39,60,16,62,121,136,245,192,43,41,199,29,49,223,140,83,76,131,25,242,0,207,0,51,78,71,78,156,220,131,234,122,113,207,21,104,223,89,243,137,36,
+199,94,18,220,28,140,14,187,186,116,0,21,233,198,57,225,86,254,209,72,96,211,30,63,233,219,177,235,146,220,125,115,140,80,5,45,228,14,45,226,35,0,240,39,98,6,122,156,93,14,156,250,227,211,174,35,45,206,
+68,9,146,49,129,230,2,188,115,128,103,60,143,78,220,228,214,167,246,156,59,112,4,131,147,252,86,192,246,236,9,39,241,252,177,73,253,162,72,36,60,157,78,54,205,2,156,127,9,35,35,61,58,124,189,77,0,101,
+22,102,206,81,64,31,237,57,3,28,143,187,62,1,245,228,14,7,124,208,50,113,132,32,140,255,0,20,188,245,236,211,30,61,135,30,181,169,253,164,113,131,37,214,125,174,99,43,207,160,218,217,7,25,207,56,198,1,
+245,63,180,28,244,123,172,28,244,184,135,140,246,199,150,221,177,209,65,200,207,7,20,1,152,9,31,242,204,17,158,115,185,177,215,214,66,78,113,239,142,188,83,196,128,96,155,101,57,232,124,177,192,198,58,
+121,128,228,241,250,158,149,124,234,51,3,149,123,222,64,198,110,161,198,127,239,216,199,226,9,237,233,76,26,141,223,36,121,217,61,9,186,131,167,212,160,36,126,0,112,112,15,74,0,168,102,140,96,152,2,158,
+65,38,40,187,17,158,26,81,215,142,156,246,193,237,31,159,17,57,242,96,193,56,249,162,128,116,245,204,221,250,254,57,28,98,180,62,217,122,122,72,195,235,115,109,131,143,172,125,121,247,163,237,154,137,
+200,15,25,0,224,255,0,164,90,231,175,186,140,140,128,9,7,25,227,158,40,2,135,159,18,129,242,219,131,211,62,85,175,127,118,149,134,56,231,128,13,40,157,115,243,8,50,64,199,22,138,61,250,48,199,25,236,73,
+171,166,123,246,0,239,136,118,36,220,218,243,199,92,238,45,219,176,3,145,145,192,168,217,174,207,223,158,60,14,152,185,180,61,57,234,65,60,247,239,142,252,80,5,113,62,112,66,192,7,79,189,1,35,158,152,
+24,232,59,243,233,223,52,83,217,165,198,77,202,28,122,77,102,125,249,193,4,128,120,231,177,62,130,138,0,253,73,50,134,254,57,219,174,121,151,175,215,203,199,184,198,79,61,178,51,19,50,147,213,199,174,
+94,81,130,8,239,179,242,253,56,171,230,214,37,206,46,227,25,201,226,87,25,227,161,5,1,231,35,35,57,227,158,148,130,213,186,173,194,224,114,0,153,125,59,228,114,125,65,206,121,197,0,103,174,51,242,187,
+159,248,29,217,56,227,174,0,199,61,58,227,215,165,52,249,163,145,33,206,121,6,75,193,199,176,49,176,246,233,253,42,251,91,76,15,18,198,72,57,230,238,28,250,142,11,96,103,158,72,244,29,42,172,137,40,206,
+233,144,16,127,231,250,211,29,120,227,167,94,49,143,108,230,128,32,196,135,172,184,228,28,151,187,233,220,19,229,175,25,246,199,76,115,192,137,212,177,36,188,103,57,201,243,110,193,200,61,194,161,235,
+207,126,160,242,106,86,243,48,0,158,215,35,254,159,109,15,224,8,133,134,7,212,147,158,73,239,25,19,147,196,246,237,220,129,61,155,112,58,253,219,60,159,193,134,115,215,181,0,64,225,212,228,21,39,7,159,
+59,81,198,6,122,149,137,177,235,235,140,10,140,60,253,202,158,152,34,235,80,80,23,29,203,192,0,207,160,24,28,123,212,229,223,39,113,131,35,128,60,232,23,24,244,197,184,244,60,231,242,52,172,232,115,151,
+69,108,12,133,185,135,168,60,2,26,219,232,61,51,140,80,5,127,54,64,15,239,35,24,29,239,238,250,30,217,242,143,65,144,56,236,120,197,48,206,71,87,66,15,95,248,152,94,159,78,251,2,227,242,206,58,18,106,
+99,33,232,30,51,192,228,77,106,122,122,226,216,227,235,215,168,245,164,15,48,31,43,2,6,126,236,144,55,167,31,45,154,227,182,1,253,40,2,49,113,146,50,209,159,111,182,221,156,119,201,30,89,62,231,39,3,184,
+245,127,218,99,98,1,42,9,244,188,185,31,206,37,25,235,212,156,240,58,210,121,178,175,241,109,250,249,120,39,211,254,61,0,61,187,159,167,20,195,51,146,71,155,147,220,108,220,49,145,144,8,181,24,57,25,232,
+127,26,0,144,77,110,57,44,73,231,165,237,201,98,122,30,2,146,59,243,143,241,165,107,139,108,16,174,251,135,92,92,221,145,159,94,99,201,206,51,208,115,211,189,64,75,191,30,98,231,61,30,46,112,122,14,109,
+49,235,156,244,228,115,131,74,84,156,114,79,80,126,72,192,244,63,242,231,215,142,224,254,124,80,2,249,241,156,159,58,81,158,56,184,186,92,3,211,3,97,60,119,36,1,208,211,68,240,14,12,247,36,231,4,153,174,
+15,57,0,253,224,7,7,212,3,244,38,144,194,192,2,169,147,158,229,20,126,63,184,80,120,200,224,123,116,166,121,83,146,0,88,198,222,188,197,193,25,206,115,7,225,201,61,63,32,9,60,235,96,192,9,110,155,36,142,
+25,206,113,238,64,39,29,58,156,227,181,53,166,179,61,62,218,73,60,237,18,227,175,169,0,96,247,193,29,49,192,28,70,82,112,121,104,79,92,143,220,147,131,235,136,198,73,238,56,207,20,128,200,220,110,143,
+35,57,0,162,156,114,57,24,24,227,35,56,226,128,2,108,179,157,183,199,183,241,100,125,73,113,128,127,14,59,242,13,53,164,181,28,6,212,135,161,87,124,14,252,98,78,49,237,145,211,3,25,165,37,200,27,228,224,
+116,6,68,3,219,230,44,0,231,235,207,24,207,68,220,6,6,71,57,201,251,76,96,18,79,160,111,232,125,115,140,208,4,5,160,102,37,110,53,47,112,62,208,223,175,152,71,227,142,127,90,99,50,96,254,250,248,147,145,
+150,89,64,234,56,61,73,199,4,146,49,192,244,197,91,224,241,181,84,14,115,246,196,82,71,213,137,207,215,111,243,21,32,69,24,56,126,131,165,244,103,7,174,112,163,36,126,28,115,200,230,128,51,8,66,6,37,185,
+7,7,140,48,24,231,190,73,250,240,61,14,58,211,194,67,140,153,38,99,211,159,48,243,211,56,94,114,125,198,56,250,86,145,219,143,189,63,0,100,249,242,184,29,177,148,67,199,35,175,113,199,106,99,50,14,142,
+224,28,116,105,189,50,49,146,51,201,207,24,250,16,104,2,137,69,32,5,39,220,186,77,223,142,234,78,49,223,143,241,65,10,240,55,196,9,254,250,92,247,29,134,87,208,122,117,227,181,92,102,129,254,251,220,100,
+14,206,248,199,174,12,192,140,247,237,211,129,138,133,163,132,253,211,115,142,70,78,195,250,188,188,231,57,232,49,219,214,128,32,48,227,164,150,160,103,7,17,205,198,126,185,237,142,199,161,228,99,135,
+132,219,192,158,212,14,223,185,152,144,127,239,140,99,128,59,154,12,35,63,41,149,186,114,90,16,126,128,23,57,235,140,119,250,243,65,136,117,42,122,244,34,34,115,145,156,145,48,35,241,7,35,175,173,0,56,
+65,187,25,185,180,35,182,235,89,61,122,125,192,59,246,234,120,169,126,206,87,63,191,211,143,127,245,24,234,113,212,140,129,237,142,61,186,85,111,45,122,110,40,70,15,9,30,49,233,147,114,1,250,115,212,241,
+210,163,104,192,234,95,57,200,253,220,93,56,228,15,57,128,198,7,7,211,214,128,46,8,216,18,69,214,158,48,113,197,184,98,63,37,199,94,122,99,61,206,14,36,41,57,31,45,229,152,24,235,246,39,32,245,61,143,
+211,56,3,60,214,111,32,2,9,31,239,219,161,63,152,152,12,231,140,228,15,202,141,196,231,45,22,121,31,52,49,17,145,219,155,158,163,212,241,237,210,128,47,152,174,58,253,178,204,250,145,99,39,25,207,56,201,
+236,113,206,121,199,175,9,228,220,28,3,125,8,0,244,91,32,79,224,10,224,255,0,250,198,122,213,0,204,14,119,64,6,15,2,56,8,237,211,253,41,177,207,78,61,123,115,82,43,200,72,42,246,228,247,24,132,28,250,
+159,222,28,118,198,123,16,115,232,1,112,69,115,156,37,250,231,168,198,159,11,159,95,238,28,96,247,228,243,71,151,121,198,235,231,56,198,49,167,47,56,206,79,17,143,112,2,245,254,85,188,251,132,231,54,221,
+14,73,116,3,166,63,134,80,15,30,152,169,22,242,225,78,0,181,0,115,196,172,8,207,92,134,151,7,208,253,123,116,160,9,12,119,189,5,239,60,116,211,227,82,15,36,18,12,71,161,7,174,114,59,99,171,12,119,235,
+210,233,125,127,227,201,9,63,135,217,31,168,246,61,9,237,79,55,211,127,122,223,160,200,5,8,207,190,100,113,207,66,57,245,35,140,210,139,249,134,65,107,115,220,29,209,131,248,21,112,71,191,63,135,52,1,
+89,151,83,83,205,195,16,122,133,177,24,59,113,217,108,7,175,81,142,157,197,2,61,64,143,245,132,143,95,177,174,79,108,255,0,199,144,25,235,219,158,190,181,107,251,70,82,122,218,140,255,0,121,215,39,242,
+231,0,14,51,198,125,249,166,62,161,40,228,77,108,167,29,21,215,146,49,207,50,14,126,128,117,206,6,40,2,179,65,118,120,51,74,184,206,49,110,115,223,142,44,216,142,217,224,96,154,77,151,3,239,75,47,82,65,
+17,55,166,51,131,106,58,28,99,7,4,253,42,83,123,51,12,253,166,34,79,111,48,16,61,177,230,156,99,142,228,118,250,52,94,92,14,77,204,99,31,244,209,200,200,61,136,147,159,203,30,254,160,9,155,142,113,51,
+28,118,104,36,201,252,86,216,15,203,190,121,29,148,205,113,156,25,51,142,50,98,186,24,28,100,241,10,237,29,56,246,207,189,47,219,102,60,155,145,215,130,30,114,64,231,254,154,40,250,241,158,192,138,105,
+187,115,159,244,213,237,222,224,126,133,200,199,166,56,24,160,0,249,173,150,243,163,239,201,55,126,131,254,153,12,122,115,146,126,180,160,77,129,137,211,215,173,224,7,60,246,140,126,167,156,244,61,129,
+112,227,143,180,47,3,168,55,7,3,223,231,39,161,244,227,142,120,52,195,57,206,76,224,128,49,202,92,129,156,243,206,15,114,121,207,39,147,156,154,0,151,46,159,242,212,28,99,149,251,103,94,217,59,129,207,
+212,14,72,234,56,45,50,62,79,239,142,78,120,87,186,231,219,253,103,110,249,239,158,122,138,136,204,228,144,37,139,254,4,151,96,16,58,127,7,249,231,191,80,57,39,230,146,17,238,177,93,28,159,78,23,169,247,
+193,57,201,160,9,129,112,57,145,250,15,249,238,79,160,7,230,28,143,115,159,198,144,238,199,85,113,156,124,203,46,115,143,121,7,61,127,33,216,212,66,108,1,251,216,207,29,12,23,108,58,241,219,24,231,60,
+123,245,228,84,194,96,160,16,246,196,158,223,101,184,244,60,130,113,142,114,14,9,7,242,20,0,221,251,113,242,196,49,254,195,96,243,158,119,79,239,206,0,164,46,127,185,17,235,192,42,185,231,184,107,156,
+113,223,61,125,73,198,94,46,87,35,247,168,15,124,91,202,185,224,224,140,176,61,122,1,158,123,243,72,39,78,127,126,138,115,213,160,99,235,144,119,55,177,201,0,145,212,14,244,1,30,21,255,0,134,33,140,12,
+19,108,120,25,245,184,39,131,245,227,57,165,56,143,131,10,17,142,8,22,132,30,127,235,185,29,243,199,227,158,72,119,157,25,39,55,49,30,49,254,164,227,219,131,142,159,143,166,69,33,186,136,97,126,213,30,
+48,48,62,207,128,62,135,4,129,235,234,70,115,138,0,105,151,36,1,15,167,4,219,12,129,207,63,190,193,28,231,56,0,80,38,98,64,22,160,31,80,109,190,152,255,0,90,195,63,95,211,173,59,207,137,135,252,126,64,
+49,215,17,184,61,191,186,51,233,199,4,96,14,73,225,86,88,79,3,81,183,32,122,9,198,51,201,0,103,25,207,61,73,253,114,0,160,77,158,32,29,114,127,121,103,142,71,188,234,167,183,35,158,114,120,201,14,38,101,
+255,0,150,81,131,142,134,107,64,122,14,194,248,12,251,147,252,248,70,104,7,252,191,70,223,83,200,255,0,199,129,231,244,237,146,64,166,7,132,96,155,164,199,111,152,227,191,80,95,241,30,254,189,192,13,247,
+29,161,92,119,43,45,176,231,240,190,235,145,199,7,249,209,155,150,200,49,158,71,31,233,54,224,228,246,226,236,227,25,237,156,244,239,78,102,183,36,102,235,223,62,107,231,191,66,153,62,135,0,211,72,182,
+234,47,73,206,122,203,113,140,242,113,157,153,227,32,247,206,123,208,0,99,184,60,229,249,255,0,167,132,97,239,156,78,115,199,39,230,253,57,160,195,117,140,134,13,223,6,124,156,103,144,54,202,79,60,100,
+227,156,227,138,102,34,3,34,232,48,28,113,37,199,160,237,183,63,203,210,148,8,177,159,62,67,140,119,153,186,241,212,224,247,231,169,233,220,114,0,165,47,88,133,14,128,15,239,79,32,0,243,156,126,240,15,
+241,231,20,125,154,239,63,235,97,3,182,233,100,111,195,153,212,0,57,200,232,61,5,53,150,35,255,0,45,228,29,71,6,110,61,198,72,233,237,199,166,41,166,8,72,255,0,95,116,120,231,104,56,252,11,54,115,238,
+120,25,199,52,1,49,182,159,156,220,91,103,28,157,205,142,56,36,31,180,113,211,166,238,9,227,61,105,134,222,94,65,158,204,142,14,72,151,183,78,86,103,39,118,56,224,123,100,237,21,11,91,167,24,150,243,7,
+4,144,34,61,207,102,39,31,161,36,117,235,76,16,40,56,18,221,103,156,22,69,110,163,63,193,149,235,232,7,212,246,0,177,228,39,35,117,179,19,232,110,112,125,7,7,240,201,228,103,168,6,163,54,201,140,230,49,
+206,72,89,46,193,234,61,20,126,135,215,156,98,148,66,231,0,75,55,28,113,15,28,129,221,145,122,245,61,64,163,236,51,49,32,73,35,103,177,142,49,233,208,158,58,156,158,79,92,80,2,121,60,13,161,112,71,81,
+45,201,35,29,184,83,199,57,30,220,19,74,21,198,3,5,36,30,166,107,159,200,141,163,166,112,15,160,237,78,54,51,250,49,232,6,97,129,186,241,131,149,228,231,142,113,200,247,20,191,98,155,169,140,19,207,252,
+186,219,247,231,251,190,248,7,158,156,100,80,3,10,185,28,42,129,234,178,221,12,116,255,0,100,224,254,131,175,6,140,62,48,75,96,30,127,210,110,122,99,60,97,15,183,108,243,207,36,230,65,103,56,28,70,189,
+58,125,150,33,142,231,0,33,31,134,14,59,26,122,216,220,224,159,40,231,140,226,218,12,250,142,145,103,142,152,60,231,212,80,5,125,204,56,6,78,159,243,241,115,146,57,60,29,128,227,208,1,235,248,181,164,
+112,112,173,114,51,233,125,114,163,56,236,2,142,120,231,175,215,21,108,217,94,113,136,71,94,75,90,71,147,130,50,14,35,36,116,4,103,142,61,9,204,159,102,188,81,243,91,196,56,234,109,35,7,24,245,54,217,
+207,29,115,219,218,128,51,183,75,145,151,186,233,156,253,174,236,182,8,231,4,142,227,57,31,143,20,121,147,127,4,215,43,142,50,211,206,216,238,122,158,121,252,58,142,152,173,33,5,201,224,219,194,115,211,
+253,14,33,219,212,194,64,57,250,231,181,51,202,185,7,6,213,14,15,81,107,24,235,244,139,29,114,49,131,249,244,0,168,179,93,224,255,0,165,76,7,112,93,206,122,143,226,7,175,29,79,230,122,56,203,118,57,55,
+47,207,3,230,97,142,188,100,99,232,70,115,199,35,210,114,183,0,156,89,161,4,255,0,207,170,117,31,75,108,243,223,4,159,195,20,185,156,96,11,37,228,17,197,184,78,7,56,255,0,143,99,200,193,56,244,199,35,
+130,0,42,7,153,191,229,224,228,17,220,113,142,113,130,227,156,115,158,189,190,141,38,97,156,205,39,166,65,221,140,247,218,9,192,201,236,122,250,14,151,75,77,143,249,7,114,113,156,34,224,144,125,62,203,
+199,80,123,142,228,14,209,147,41,228,216,243,156,227,108,99,167,124,253,153,78,223,166,122,250,98,128,43,19,41,31,235,37,124,14,127,118,71,176,57,18,127,48,6,120,233,70,233,87,251,248,56,198,216,156,125,
+122,72,64,235,245,7,241,169,222,73,7,75,1,158,185,222,114,49,244,182,0,245,231,145,248,140,10,143,207,96,78,235,82,164,245,196,165,73,31,79,40,118,247,231,158,121,160,8,192,118,224,111,247,15,20,236,61,
+58,228,129,159,241,39,173,59,203,112,127,136,129,200,196,15,245,56,200,56,199,226,79,231,132,55,88,233,110,192,243,192,154,67,215,159,225,219,147,235,201,231,181,47,218,27,181,172,249,61,15,159,47,111,
+174,122,114,71,57,235,216,80,3,7,153,206,65,57,238,45,228,235,158,237,199,39,169,238,79,182,40,37,199,222,25,31,245,239,55,56,193,236,195,245,235,156,156,138,95,181,103,130,179,169,247,184,228,30,59,28,
+255,0,46,245,25,185,10,79,205,112,0,234,69,206,222,221,14,23,105,207,62,156,100,12,119,0,50,221,2,16,72,239,29,199,24,201,236,223,143,29,205,56,134,255,0,158,120,245,34,43,146,49,215,4,2,79,79,175,98,
+0,235,73,246,213,198,223,50,239,30,159,106,83,235,159,126,7,28,99,56,57,160,220,130,0,13,63,110,183,17,246,206,59,231,241,207,31,141,0,38,51,247,130,128,58,131,13,199,94,132,252,204,190,185,228,227,7,
+167,112,5,143,60,136,136,227,164,50,12,231,182,60,225,211,35,57,200,200,235,197,56,78,7,86,148,231,214,237,27,242,0,146,49,140,99,233,78,51,33,35,38,64,113,222,234,49,156,125,64,7,168,207,29,104,0,2,22,
+254,43,113,158,48,99,97,140,244,207,250,72,28,251,142,253,41,141,10,1,247,237,113,215,238,46,123,28,100,223,47,35,167,56,207,97,210,164,243,83,60,109,108,250,221,38,15,224,21,176,70,61,249,237,234,190,
+96,7,38,16,70,9,0,93,133,28,140,99,2,212,250,12,228,231,28,245,24,32,21,188,181,232,62,204,121,235,180,55,175,113,168,113,147,248,15,112,41,226,221,88,117,183,60,158,177,149,227,211,254,66,0,31,124,224,
+126,60,84,194,80,63,229,221,58,131,255,0,31,103,219,175,250,32,36,250,228,140,242,113,158,67,188,216,207,91,56,155,31,244,245,32,207,30,137,105,140,30,71,36,253,114,56,0,168,108,227,108,127,168,24,231,
+238,99,211,214,248,158,159,253,126,57,13,58,122,146,127,212,140,127,176,71,97,216,95,129,248,140,231,129,87,132,176,169,231,76,141,178,14,115,113,112,65,0,117,230,212,99,61,240,56,238,59,80,211,70,71,
+26,76,57,207,252,244,184,61,184,198,45,64,224,115,128,113,252,136,6,115,105,224,30,9,206,58,40,144,126,4,46,162,6,71,182,49,208,3,154,67,101,143,239,241,193,249,46,8,247,57,26,166,120,231,56,28,30,126,
+183,26,104,148,224,233,104,8,207,41,246,194,121,247,91,108,30,131,191,63,134,3,62,209,25,3,254,37,153,198,112,124,155,242,125,57,97,8,39,242,224,228,129,158,160,21,126,196,228,16,12,184,231,4,45,199,183,
+76,106,76,15,80,127,175,164,102,198,115,213,174,8,239,143,180,142,51,142,127,211,248,3,156,116,193,233,211,21,100,205,25,63,46,148,191,95,42,252,49,60,156,129,229,113,212,231,57,56,234,69,52,202,189,244,
+188,131,219,236,215,204,63,38,139,169,232,72,199,30,184,20,1,84,90,202,164,141,215,92,158,131,237,7,190,63,138,248,129,207,124,119,198,79,65,97,109,102,32,126,246,229,123,114,39,249,176,71,31,241,245,
+215,28,122,244,39,181,48,60,44,114,116,211,145,235,103,125,140,126,75,235,232,51,219,158,40,38,0,15,250,2,142,58,125,146,241,113,147,142,114,70,78,15,183,83,64,18,180,37,122,189,201,60,117,105,0,7,7,158,
+110,73,39,211,156,140,15,106,132,131,145,251,203,156,123,201,46,48,123,128,38,245,244,63,158,57,107,24,15,2,193,49,140,255,0,199,181,238,78,120,28,25,49,140,159,67,159,79,70,19,1,0,141,58,48,113,209,173,
+239,87,31,248,241,28,114,121,24,247,224,100,2,112,202,57,47,49,32,116,102,155,24,207,61,101,42,114,127,46,199,52,223,180,68,188,49,97,215,239,7,96,49,193,234,220,247,207,174,121,56,53,95,16,19,145,97,
+8,199,57,219,120,0,239,221,135,190,57,232,51,219,20,130,56,249,255,0,68,132,100,100,124,183,163,144,115,130,71,7,140,14,51,206,114,49,208,2,83,113,106,112,124,216,193,7,3,42,138,115,211,128,220,243,211,
+158,48,73,228,82,253,166,37,0,121,160,128,70,48,87,28,250,15,66,58,251,122,10,103,146,164,127,199,141,163,119,200,123,208,79,126,115,159,108,250,254,98,147,201,0,103,236,22,95,131,95,19,145,235,130,115,
+239,128,122,114,56,197,0,60,221,70,191,220,62,159,116,159,212,96,131,142,190,160,115,73,246,200,200,203,108,207,161,8,0,30,231,201,111,234,61,234,51,22,238,150,22,92,244,4,222,168,61,61,78,79,108,16,167,
+62,189,41,62,206,6,79,246,126,156,220,99,239,221,19,219,158,114,15,183,7,252,64,25,37,237,170,14,74,54,121,32,24,64,30,163,45,8,61,122,113,146,127,26,135,237,246,132,182,21,112,50,48,94,19,140,14,188,
+70,15,235,236,57,230,158,209,14,73,177,177,28,255,0,15,218,112,8,207,247,80,156,117,237,207,108,227,20,198,132,28,127,162,89,140,244,59,110,115,199,83,204,57,228,117,57,206,78,51,234,0,241,127,104,71,
+42,163,24,7,45,30,15,61,178,131,129,233,159,161,230,162,123,219,46,138,170,50,120,111,54,5,35,158,122,131,156,142,51,147,239,208,26,99,90,72,112,86,11,49,147,199,19,150,25,232,112,98,3,244,193,7,208,84,
+70,202,115,200,134,212,19,220,71,113,238,121,194,168,60,96,113,248,14,196,2,95,181,218,145,242,178,12,145,140,203,15,30,163,56,35,211,25,227,219,154,79,181,34,227,108,133,64,238,39,139,31,134,209,142,
+120,231,4,244,232,15,53,141,148,234,14,99,181,4,156,242,179,167,82,78,50,113,158,156,242,122,228,14,13,68,109,37,3,230,75,65,142,227,119,245,126,79,160,254,71,32,0,104,27,232,87,239,63,174,55,92,128,72,
+232,51,132,60,231,166,48,63,149,66,247,246,164,128,211,198,164,231,0,93,177,63,79,184,57,3,212,117,234,58,17,68,192,71,221,107,108,250,6,85,207,226,207,142,57,63,129,163,201,96,51,190,62,157,7,217,207,
+61,135,207,54,113,250,254,20,1,96,221,89,156,145,119,30,115,255,0,63,108,72,201,31,237,2,113,198,8,254,92,82,121,234,113,229,220,143,252,8,147,177,199,65,56,224,116,24,0,122,102,170,237,117,25,14,160,
+227,248,86,219,142,113,193,89,143,29,191,14,156,211,193,184,0,98,94,114,50,10,192,6,15,253,180,56,239,158,120,235,245,0,145,165,61,77,214,0,228,226,89,251,231,146,68,199,30,249,244,193,230,171,179,6,31,
+241,250,23,28,127,172,152,243,140,31,249,106,57,200,235,142,15,92,83,255,0,210,129,249,165,140,158,156,173,190,127,33,46,122,96,253,8,163,124,235,193,116,60,255,0,114,223,62,223,197,223,167,67,198,57,
+28,80,4,24,228,15,183,103,167,86,148,231,61,56,220,121,250,147,158,8,166,21,36,16,110,253,56,11,63,185,238,49,147,158,114,49,223,158,5,88,243,228,4,143,53,87,57,255,0,150,86,199,30,227,45,159,196,15,97,
+197,39,218,166,81,254,180,177,224,227,200,182,57,28,247,32,113,245,36,18,113,138,0,169,132,28,125,169,114,113,195,25,15,108,3,194,31,203,240,227,161,141,148,227,139,148,231,140,47,152,51,219,186,129,208,
+118,199,30,166,174,27,185,113,247,142,64,207,22,208,116,30,187,84,158,253,255,0,92,241,19,93,206,14,71,57,39,254,92,195,30,114,58,44,103,7,208,244,207,189,0,83,17,156,146,103,81,207,77,174,78,65,233,200,
+61,187,247,200,231,53,25,92,2,69,202,147,158,50,28,159,124,225,113,146,61,78,61,143,57,184,110,231,31,120,18,0,228,61,140,131,253,163,130,144,112,58,30,167,30,152,235,17,189,147,211,143,95,177,79,192,
+7,168,223,108,58,228,156,147,201,252,128,6,115,200,1,32,200,14,59,230,65,248,227,202,56,254,120,246,206,98,99,17,232,251,185,228,121,179,47,35,24,201,54,231,31,227,156,123,95,146,233,136,251,164,156,31,
+249,118,198,125,120,104,84,251,228,145,244,7,53,1,185,57,199,147,38,70,7,22,137,211,29,120,80,7,108,231,3,167,36,245,0,164,99,4,229,85,137,25,251,183,50,14,62,191,101,60,241,198,7,61,120,164,195,246,142,
+92,1,158,111,101,7,211,63,44,0,228,112,7,225,235,86,205,203,128,113,11,159,251,119,79,199,144,14,0,235,192,30,131,158,106,179,221,201,159,245,36,246,0,218,2,51,130,63,231,152,57,0,19,237,199,65,144,64,
+42,188,140,1,7,205,227,28,157,66,112,123,128,63,213,142,122,242,71,95,169,168,26,102,231,230,152,119,194,234,19,156,253,74,167,0,99,251,167,30,213,101,175,24,114,97,81,201,28,219,160,39,140,15,224,231,
+35,36,28,0,123,241,128,35,55,82,125,229,137,49,215,253,68,99,56,24,228,148,24,57,199,245,57,205,0,84,50,100,114,183,39,156,159,244,233,88,114,127,218,80,112,51,199,57,246,245,4,137,130,54,207,192,228,
+125,173,184,63,140,77,215,190,50,120,31,141,131,121,57,201,42,188,158,118,173,184,61,79,171,168,206,51,201,3,173,64,110,223,7,44,65,29,139,218,142,56,254,243,145,142,125,255,0,90,0,99,58,247,134,124,127,
+121,110,219,57,35,161,38,2,58,240,50,78,56,236,106,50,208,177,193,130,112,56,228,220,35,15,214,223,235,130,114,1,227,173,13,114,224,231,122,47,81,134,158,200,127,41,65,56,231,30,132,241,197,68,110,31,
+140,24,78,113,207,157,110,73,245,0,171,241,199,79,174,61,232,1,204,208,14,66,76,57,231,247,177,28,255,0,228,186,251,250,254,21,9,153,49,242,137,120,254,244,200,50,115,206,113,17,200,238,79,175,227,79,
+243,89,134,63,117,145,198,4,177,119,61,50,79,56,227,61,122,116,206,42,19,44,128,149,217,25,234,121,120,176,72,233,146,15,175,4,227,28,115,210,128,26,247,64,228,14,131,169,51,243,207,65,131,23,78,152,238,
+0,227,140,131,31,156,78,72,17,145,131,146,46,20,123,243,152,79,56,29,249,29,129,192,169,183,191,247,34,56,236,30,216,14,190,165,212,147,238,70,59,1,192,20,140,100,39,34,52,239,159,244,155,81,233,142,11,
+144,122,125,6,127,32,10,140,210,18,73,138,6,3,4,238,156,96,130,115,206,35,192,206,51,200,234,61,49,85,221,143,104,108,212,99,63,235,163,39,220,147,177,125,248,239,215,142,246,219,121,200,242,163,62,163,
+237,86,120,201,60,18,1,61,251,30,254,248,53,11,66,27,36,192,50,71,4,73,98,120,244,230,23,207,182,125,253,104,2,132,131,63,242,206,220,231,210,226,16,15,4,159,188,64,4,114,113,140,14,185,39,21,77,208,30,
+54,64,15,127,244,155,115,211,183,50,143,127,199,160,233,157,113,107,199,16,231,219,126,159,145,211,214,223,39,143,76,143,165,39,217,134,57,181,57,7,160,251,14,65,227,254,157,135,227,208,119,160,12,70,
+137,127,187,110,49,212,253,166,3,206,127,217,144,147,215,175,167,60,112,106,180,145,72,65,34,27,98,7,79,244,200,151,35,232,37,29,123,13,188,231,219,39,162,54,189,71,217,152,14,188,155,12,244,232,185,137,
+64,244,232,125,65,60,212,13,11,14,4,12,0,199,125,48,30,159,237,69,223,235,143,124,230,128,57,243,28,137,200,182,180,56,231,63,107,183,110,157,177,230,19,142,223,123,249,115,9,70,111,249,119,183,3,36,156,
+77,106,113,142,127,138,110,184,207,39,32,254,56,173,198,129,91,32,164,241,156,227,34,77,40,3,140,159,226,78,114,61,71,76,138,170,246,170,73,226,232,140,113,135,210,61,199,104,79,7,129,219,28,30,104,3,
+32,133,231,253,29,61,242,246,131,191,31,242,215,143,208,118,230,163,43,24,193,48,70,56,237,246,94,158,223,63,30,160,114,49,220,98,181,26,204,113,205,208,57,255,0,168,49,234,121,255,0,150,56,61,120,62,
+185,233,214,162,123,28,140,226,232,158,122,13,24,231,142,167,228,94,15,160,237,219,176,0,162,25,1,0,71,129,131,192,91,94,189,248,18,142,156,115,129,212,122,131,74,103,101,4,42,40,32,99,230,16,96,158,195,
+253,106,129,142,156,26,180,44,0,193,13,56,60,255,0,14,138,184,7,212,2,188,15,80,121,224,100,145,138,141,173,64,4,98,225,200,60,229,180,156,123,228,9,56,192,224,244,60,113,222,128,41,253,166,227,254,121,
+169,236,72,88,253,187,11,156,254,153,247,34,162,107,171,177,247,99,92,0,114,10,109,60,14,216,185,195,14,113,254,113,86,218,203,63,117,100,92,31,77,36,183,124,147,251,225,207,78,199,223,165,48,216,18,9,
+37,193,227,36,46,149,215,30,206,217,63,158,6,50,71,2,128,41,253,166,227,27,153,23,177,4,131,206,112,58,9,219,143,174,49,236,114,41,26,234,236,114,4,64,116,251,172,125,123,121,231,61,62,157,136,169,222,
+192,183,105,27,130,58,233,192,240,122,240,122,228,118,244,224,226,171,155,25,198,66,34,149,29,55,182,157,158,58,116,114,79,78,58,100,253,120,0,137,167,186,198,89,97,112,58,229,118,145,140,231,129,42,250,
+96,12,30,167,140,84,37,229,96,74,219,196,125,127,120,84,145,233,243,78,51,215,56,254,163,21,59,90,207,255,0,60,130,227,130,219,172,212,31,196,72,190,135,145,245,233,76,107,91,156,240,172,120,39,253,108,
+29,7,76,237,156,12,117,207,92,80,4,38,89,151,145,110,185,228,127,173,124,126,147,131,200,36,19,200,239,131,138,97,158,98,56,179,141,191,237,187,46,59,115,137,129,246,245,199,4,231,173,143,178,206,57,43,
+201,233,153,80,142,188,30,46,51,237,192,28,251,243,72,214,211,174,48,142,51,211,108,160,14,48,115,204,199,233,206,123,114,122,208,5,35,35,182,85,172,98,231,167,250,92,248,193,244,2,83,206,127,222,233,
+193,166,109,81,146,109,149,122,100,125,182,108,15,205,28,159,112,9,3,223,160,188,109,238,27,56,89,70,63,233,170,19,223,254,154,242,71,114,125,57,228,242,195,109,116,1,230,228,15,69,184,85,231,25,60,9,
+199,233,208,250,116,160,10,100,194,126,83,109,30,79,92,95,76,188,122,255,0,170,57,232,114,73,233,212,210,15,179,142,150,209,129,207,63,218,18,150,235,145,193,131,142,253,8,231,62,181,97,161,188,198,65,
+186,32,245,253,250,182,123,1,204,224,18,78,7,67,216,117,224,71,228,220,131,146,247,72,14,58,186,14,185,60,149,156,103,215,0,140,224,30,122,208,4,76,109,48,75,192,122,17,197,236,199,39,168,3,108,93,49,
+248,231,57,234,115,25,107,30,159,103,112,115,156,253,190,239,142,122,0,169,129,211,158,6,125,58,85,191,46,115,255,0,47,87,35,131,146,29,184,35,142,139,49,24,3,30,191,224,207,46,76,146,111,103,235,209,
+139,12,156,127,215,94,114,58,228,103,31,168,4,33,173,179,149,1,122,156,53,229,201,207,110,246,228,231,31,211,29,50,94,94,16,51,152,193,30,179,207,144,62,158,78,120,24,234,61,114,0,197,35,239,29,46,152,
+140,114,73,108,17,245,14,115,215,252,138,172,233,43,114,39,115,207,81,184,14,7,63,54,215,62,156,168,227,142,58,154,0,188,12,44,164,151,140,30,191,241,241,63,94,58,109,136,114,64,231,143,74,111,238,51,
+145,36,68,241,255,0,45,100,39,36,115,203,66,59,250,103,222,179,10,79,218,234,99,223,151,96,15,80,56,16,228,143,196,159,79,120,204,87,60,226,86,237,140,52,163,244,242,200,232,61,49,245,160,13,144,208,158,
+0,183,108,31,226,103,36,103,183,221,95,64,58,158,122,250,208,118,158,85,45,128,244,1,155,142,224,228,251,3,146,115,253,112,152,92,129,131,36,135,219,115,131,250,219,55,115,215,142,195,190,42,47,244,143,
+239,177,199,32,19,129,159,252,5,81,143,204,246,231,154,0,232,86,86,83,180,67,107,234,75,66,199,24,235,130,179,33,62,189,143,7,52,86,0,251,95,35,110,254,191,118,119,29,63,237,223,174,61,48,15,99,232,80,
+7,235,127,159,112,79,18,184,60,158,37,143,0,117,199,24,199,208,253,120,205,68,94,114,78,110,46,0,60,224,75,142,115,215,32,55,110,152,62,222,181,113,163,147,57,219,103,142,132,255,0,105,194,120,231,214,
+110,189,120,7,255,0,174,195,19,113,150,181,192,60,98,246,2,126,184,251,79,127,195,144,56,160,10,94,100,224,17,230,221,96,140,96,72,24,253,64,17,49,237,237,156,243,158,50,192,206,114,62,209,122,190,155,
+88,243,215,169,54,225,115,211,183,96,56,239,121,225,102,24,243,44,192,200,227,237,182,236,123,231,35,237,156,122,96,253,56,237,31,217,156,145,182,75,64,49,143,245,240,54,122,114,127,211,14,79,83,207,167,
+76,240,0,43,134,145,70,22,91,215,245,44,205,129,206,113,242,219,99,31,78,65,35,218,148,180,152,27,154,228,118,234,231,142,152,193,131,35,156,246,198,120,62,134,70,181,152,28,253,166,213,65,232,7,144,205,
+215,185,23,75,199,252,4,99,215,28,149,22,174,248,205,205,185,224,228,102,5,56,62,198,237,177,193,28,255,0,81,64,16,110,217,212,222,14,252,149,35,167,188,13,199,174,64,60,228,122,84,102,104,207,222,55,
+99,57,60,96,144,7,98,5,169,31,82,72,252,170,217,178,36,112,214,205,156,242,26,34,63,53,185,28,246,233,211,208,98,154,214,120,56,34,215,234,198,44,12,117,3,116,227,241,231,249,80,5,86,150,32,55,22,152,
+140,127,17,136,14,128,228,135,181,108,30,58,146,61,250,113,19,77,100,195,5,136,35,158,90,219,111,97,211,236,39,175,60,158,115,199,32,1,90,13,108,20,15,146,204,144,58,236,132,254,25,55,71,30,224,247,24,
+25,20,134,12,158,82,207,183,88,34,57,200,56,198,38,63,175,229,131,64,25,98,75,32,120,88,72,36,242,207,10,145,199,79,249,7,175,215,32,158,227,39,165,63,205,179,232,86,208,47,64,55,197,158,216,28,89,174,
+123,231,174,125,51,210,251,91,160,28,197,105,156,140,31,179,69,143,167,44,220,254,94,217,170,178,64,184,24,183,180,127,64,45,97,108,227,142,162,38,35,39,61,241,233,214,128,35,47,98,70,67,218,129,142,129,
+173,7,7,35,189,169,35,156,30,7,215,138,140,189,152,200,34,207,30,162,72,1,247,199,250,19,1,238,7,211,218,158,99,113,140,89,91,99,146,49,104,160,243,156,244,183,36,115,233,223,167,169,140,130,15,252,120,
+91,142,199,253,31,215,219,236,204,50,58,3,130,126,188,100,1,165,44,200,249,30,219,39,169,223,111,142,79,63,242,225,207,226,73,199,210,161,242,96,108,97,236,193,227,25,104,24,17,215,128,52,254,61,242,71,
+211,24,195,157,92,156,141,58,47,108,90,150,224,247,230,200,254,135,191,167,21,3,121,227,145,167,34,142,153,251,3,158,163,161,43,106,1,245,224,2,56,29,133,0,75,246,104,135,252,182,178,30,156,197,128,123,
+228,11,32,57,199,29,129,32,125,35,107,101,224,125,162,207,24,199,250,197,199,81,212,11,85,198,61,71,35,7,146,42,38,51,103,139,82,51,158,150,110,164,228,250,11,108,250,126,95,141,52,249,227,31,232,151,
+0,231,170,197,42,130,58,28,133,180,200,200,233,201,56,39,146,49,64,19,29,60,28,21,185,180,97,254,244,141,159,202,220,244,199,31,78,185,165,251,16,7,230,188,140,115,200,0,145,219,28,52,106,58,28,116,193,
+7,4,112,5,85,195,156,230,214,235,36,99,1,103,193,252,77,186,227,219,244,198,77,52,161,57,255,0,70,188,200,39,238,137,200,234,125,34,235,211,168,4,227,175,74,0,176,214,16,183,38,245,63,21,65,215,235,25,
+57,232,59,126,29,42,63,236,232,70,127,210,81,178,121,203,149,199,211,108,120,238,58,2,71,126,49,72,163,28,253,158,247,159,246,110,219,175,29,85,50,59,231,24,24,224,115,79,13,6,14,96,188,25,60,0,183,31,
+152,220,113,145,201,193,227,175,61,136,3,70,155,110,114,90,88,192,199,105,28,231,60,100,240,8,228,227,57,28,250,117,167,27,27,68,31,52,224,125,38,35,61,242,1,35,60,113,140,231,191,78,41,187,98,44,79,149,
+123,243,28,146,85,189,242,48,88,147,216,242,125,58,212,139,20,44,79,238,239,64,233,194,145,223,60,101,242,1,247,235,140,80,0,32,211,135,222,148,30,159,242,240,195,143,76,6,7,39,175,67,130,14,73,238,24,
+244,176,14,29,249,233,251,252,227,129,208,110,61,243,235,129,216,246,126,200,193,201,138,248,241,156,144,6,57,29,204,172,1,252,51,244,164,219,16,200,242,111,7,56,234,172,50,57,199,126,113,208,22,233,198,
+112,121,0,69,139,77,198,75,63,253,254,67,223,158,196,246,236,127,42,54,233,195,32,25,151,28,229,110,6,56,237,243,17,199,168,24,206,56,231,154,95,46,51,247,97,184,207,95,154,53,35,191,211,57,62,254,190,
+152,166,181,184,39,253,92,171,199,104,20,12,251,227,29,122,140,250,99,147,205,0,46,203,83,247,12,141,158,133,167,136,245,61,7,39,30,221,125,61,40,63,103,25,28,47,160,251,66,147,255,0,124,170,55,175,108,
+123,240,113,76,48,96,225,34,147,160,25,120,80,128,126,133,14,121,0,231,255,0,174,75,26,23,201,62,70,64,31,243,197,7,36,251,166,220,254,0,241,249,128,72,76,31,243,208,131,207,252,182,97,156,231,214,18,
+61,137,199,111,126,84,52,10,115,230,142,135,172,167,60,246,249,109,78,51,158,220,99,61,170,31,33,200,0,68,163,159,226,88,128,233,142,127,118,231,220,158,217,198,79,25,5,185,25,204,48,231,253,192,167,57,
+36,227,109,171,1,223,238,144,125,122,80,4,140,209,142,82,81,200,32,157,204,192,228,143,91,63,94,59,103,158,221,24,125,67,142,188,125,243,140,142,114,62,199,239,193,94,59,2,1,166,188,65,115,186,222,30,
+15,241,51,14,79,253,185,28,244,199,61,49,223,53,14,200,249,205,189,170,146,112,62,114,160,116,25,255,0,143,67,223,147,192,199,165,0,88,35,168,243,23,29,51,137,14,15,209,109,71,115,208,250,1,76,217,16,
+60,203,30,70,65,6,25,15,127,81,106,192,143,235,205,70,22,14,134,45,60,145,156,6,46,199,219,159,179,168,237,237,156,231,154,77,214,224,243,30,156,184,3,166,65,207,65,159,244,114,8,244,206,71,215,28,128,
+63,108,3,172,177,227,156,15,179,231,39,158,114,246,77,235,144,0,231,156,245,168,143,216,186,180,144,140,1,200,180,111,124,253,203,17,158,125,250,115,131,193,10,39,178,207,204,182,4,12,252,197,176,57,246,
+22,191,82,114,15,108,30,57,12,218,113,201,41,167,129,206,78,247,29,7,247,126,201,143,127,195,159,74,0,112,91,18,63,215,71,207,97,103,49,245,35,165,160,92,127,158,77,3,236,223,223,140,246,200,178,110,192,
+158,3,91,142,63,80,1,252,99,91,141,61,79,31,98,35,161,10,95,147,216,99,236,192,158,216,227,250,83,204,214,39,149,142,212,131,143,225,184,57,231,253,155,96,61,64,1,129,7,158,40,0,50,91,171,17,185,49,206,
+54,216,96,250,99,152,184,231,25,247,198,59,83,12,182,249,230,117,92,245,206,159,24,4,250,100,198,188,241,219,168,231,56,52,214,158,219,39,247,81,3,254,237,217,253,4,124,0,59,158,125,57,166,253,174,223,
+32,108,65,142,62,88,47,143,76,243,208,19,219,142,220,244,228,128,9,3,91,28,159,180,68,9,198,7,246,122,30,115,216,116,233,232,122,117,36,226,145,146,216,255,0,203,220,67,56,0,255,0,102,168,246,57,37,71,
+111,115,238,113,192,98,220,91,156,252,193,114,63,138,219,82,199,126,192,99,211,244,206,5,59,237,22,248,251,225,138,246,22,186,136,224,246,7,24,28,247,3,56,198,121,57,32,0,68,231,101,236,71,254,221,21,
+7,227,211,60,113,129,248,138,2,205,198,46,99,62,226,17,212,122,97,178,49,223,30,128,156,115,73,246,133,32,237,220,122,240,98,191,227,235,223,104,232,114,7,66,57,61,67,36,135,145,128,115,193,104,111,15,
+174,57,43,254,125,51,64,18,15,181,115,137,144,240,51,251,147,248,245,152,1,142,51,208,125,123,33,73,143,82,135,57,235,26,142,7,36,127,172,56,35,208,227,211,235,3,73,120,121,83,22,50,50,12,119,28,115,159,
+80,122,158,51,198,57,198,14,105,4,215,221,9,182,200,237,137,215,130,113,208,147,207,175,56,199,82,58,80,5,161,4,164,12,21,235,183,136,227,36,19,142,222,110,115,147,216,99,32,231,181,47,144,252,134,32,
+224,30,176,146,65,30,187,100,0,103,32,100,244,228,19,235,68,182,164,50,67,91,40,56,231,18,14,253,14,92,103,235,143,67,142,41,124,219,252,28,180,36,246,249,130,130,8,247,61,63,250,224,250,208,5,225,101,
+33,60,71,25,232,126,230,211,206,113,128,100,57,233,234,63,30,41,69,148,152,63,186,82,71,99,17,199,115,253,230,199,56,199,175,98,121,170,42,215,220,124,214,192,0,78,12,203,143,166,12,156,251,113,205,27,
+111,152,114,214,103,62,146,194,49,156,30,1,184,4,99,235,215,35,28,98,128,52,77,188,171,214,63,192,66,64,36,243,146,70,63,66,120,232,49,74,32,61,26,39,56,198,71,217,247,114,122,231,156,227,245,250,118,
+206,242,238,200,206,109,201,236,69,204,0,114,73,200,205,207,211,183,169,39,161,49,152,238,142,67,139,102,28,103,55,17,28,255,0,223,23,39,131,219,35,177,193,197,0,106,155,116,98,51,110,195,7,168,179,108,
+254,0,15,126,195,183,35,181,70,45,34,61,32,151,254,3,108,203,211,166,119,47,7,245,28,245,172,179,28,128,242,150,153,35,168,156,115,206,59,92,143,79,92,250,118,202,172,108,79,204,136,118,142,210,49,228,
+123,139,177,220,122,99,130,51,142,104,3,79,236,113,140,145,29,210,122,109,136,31,127,238,2,7,127,65,211,36,226,155,246,112,185,218,183,62,229,163,108,115,219,229,67,211,160,193,39,3,183,56,164,81,216,
+112,131,219,1,136,199,39,63,45,225,193,253,9,232,61,1,10,244,42,128,147,142,76,160,241,207,65,117,245,244,0,103,158,180,1,115,200,98,14,25,215,158,162,57,50,1,227,25,10,48,121,24,207,126,180,134,41,144,
+128,39,152,113,252,11,46,113,212,123,144,113,220,142,217,170,255,0,103,139,3,62,80,250,137,72,231,29,190,218,56,28,116,198,58,227,168,169,5,173,190,208,75,64,71,28,8,100,234,51,201,205,227,112,57,207,
+175,28,80,3,201,144,156,125,162,114,70,72,202,78,113,219,144,1,32,156,250,250,116,235,81,152,216,255,0,203,205,198,125,225,96,9,201,56,195,50,103,142,126,247,0,244,160,65,106,189,162,108,240,48,72,199,
+30,158,118,64,29,71,83,142,113,215,46,41,15,97,24,61,57,24,233,156,115,188,159,215,35,234,104,1,158,77,207,79,180,204,7,82,60,172,145,233,255,0,45,143,56,245,234,125,114,104,219,119,206,117,9,198,112,
+64,216,157,189,115,46,121,232,112,120,231,147,82,8,147,167,154,137,239,192,247,28,13,196,116,232,70,61,179,192,147,201,83,255,0,47,67,156,1,180,103,245,0,122,115,201,0,246,60,80,4,32,93,114,127,180,157,
+79,169,133,27,63,80,179,2,70,1,29,243,223,169,37,216,186,80,51,169,150,206,121,22,164,244,255,0,183,177,252,129,61,77,76,32,132,227,253,32,19,147,221,151,159,108,33,60,114,120,30,212,198,134,44,159,223,
+3,128,121,15,39,255,0,19,140,243,244,29,73,29,104,2,18,46,142,127,211,216,142,167,22,67,29,185,0,222,113,248,99,167,0,211,60,187,140,115,125,47,7,35,253,14,49,255,0,161,95,113,201,24,200,7,29,185,171,
+34,8,200,200,145,193,232,79,152,203,159,78,70,61,190,190,188,228,187,236,209,31,148,179,228,245,62,123,115,249,35,18,125,122,231,161,199,90,0,166,32,184,36,1,120,231,146,121,180,180,12,126,167,237,185,
+247,3,63,95,74,112,179,186,110,69,223,78,51,228,89,30,189,142,111,79,255,0,95,39,0,226,172,53,178,175,27,152,142,223,233,12,115,207,80,85,51,252,248,246,166,125,157,73,199,63,83,36,237,129,248,109,28,
+227,245,239,64,17,253,146,227,31,52,160,156,156,229,44,212,227,232,179,242,63,207,169,166,125,134,83,144,205,25,3,215,236,185,227,140,156,100,143,251,235,61,185,238,247,179,82,126,243,176,3,63,43,92,47,
+24,199,247,134,120,227,24,231,156,14,134,152,108,211,174,215,35,182,231,156,241,145,140,169,153,7,31,160,32,28,208,4,111,166,177,207,17,116,236,182,196,147,147,216,186,156,224,244,28,156,227,174,13,48,
+105,110,79,17,3,219,136,97,110,131,190,38,3,249,117,235,207,51,27,65,143,245,39,166,63,214,50,231,211,239,92,28,14,49,207,92,103,138,97,177,115,247,99,85,199,102,184,64,61,255,0,229,224,100,243,142,249,
+227,4,224,0,0,198,210,229,60,8,80,19,235,12,3,144,125,13,194,129,199,61,189,122,12,83,70,153,58,156,52,16,146,113,247,163,182,200,193,231,31,233,100,140,125,64,207,169,192,169,134,158,249,255,0,85,31,
+190,39,140,103,0,99,63,51,158,221,79,112,62,180,198,211,194,12,181,180,7,60,243,113,19,19,245,29,78,125,49,201,227,189,0,48,216,178,240,97,182,29,193,242,32,61,176,191,242,246,65,57,198,15,191,184,167,
+11,82,135,152,98,29,242,182,240,100,250,242,46,9,206,113,248,30,248,168,90,214,62,1,178,135,63,245,213,0,35,158,184,11,143,111,94,41,5,172,71,32,217,67,199,164,232,15,124,140,239,199,126,231,60,14,57,
+24,0,179,228,32,39,40,163,216,91,64,72,199,25,63,233,137,145,192,199,61,51,223,56,67,10,116,8,192,140,16,198,214,216,126,89,212,151,63,76,14,123,154,136,88,161,233,104,184,29,1,184,182,7,140,12,101,155,
+182,79,92,231,211,173,31,100,193,59,109,10,158,251,110,109,57,192,206,114,3,100,30,59,244,231,138,0,152,46,51,134,25,238,22,218,28,142,131,160,213,64,7,166,71,243,235,78,18,133,32,22,147,219,247,22,225,
+122,113,215,81,99,207,110,228,231,182,42,33,3,12,143,179,100,117,199,218,45,243,215,190,56,233,142,0,29,59,82,27,101,193,6,212,142,56,11,114,131,183,0,21,198,56,236,59,254,116,1,108,206,56,57,108,116,
+251,182,202,1,231,214,244,231,24,193,239,220,10,79,181,63,169,94,163,131,103,211,215,254,62,27,208,99,0,246,227,210,160,183,136,117,178,149,143,24,2,224,183,227,254,181,64,57,227,215,62,156,209,178,14,
+7,246,125,218,228,117,19,144,15,161,56,184,83,159,126,152,0,114,58,0,94,23,111,140,25,92,30,160,133,182,4,15,102,14,120,30,157,7,30,163,7,219,93,120,251,68,235,215,56,22,248,61,251,134,7,191,78,57,231,
+156,85,48,34,3,104,181,188,29,178,38,148,158,120,32,98,244,241,238,7,126,157,41,225,80,116,138,253,78,120,30,116,236,57,233,193,188,60,117,199,169,236,123,128,78,46,156,146,68,247,89,199,7,22,248,111,
+168,216,58,255,0,156,30,104,243,165,108,128,102,111,171,66,15,63,197,141,173,252,186,227,208,154,132,202,203,157,137,122,51,199,175,227,255,0,31,68,158,125,71,65,129,131,140,181,174,27,3,119,219,79,108,
+2,224,131,158,153,251,88,233,237,159,112,122,208,4,198,89,192,198,231,25,7,35,48,113,215,176,139,211,241,63,149,33,150,224,130,3,201,207,93,190,65,228,240,127,229,143,208,142,73,193,239,193,168,13,201,
+56,249,47,253,57,121,15,25,245,55,132,251,242,113,77,55,129,113,242,94,159,96,210,116,207,83,254,144,195,60,142,7,92,242,122,228,2,86,150,126,7,152,199,31,222,49,1,239,144,177,128,9,234,7,30,160,241,154,
+141,165,185,206,60,208,57,231,148,0,125,127,115,199,167,7,168,239,221,167,82,66,71,203,168,117,255,0,166,254,199,25,14,221,255,0,28,130,120,61,80,234,40,120,219,122,61,138,179,14,163,7,37,78,49,219,144,
+126,167,138,0,12,178,156,151,185,3,28,227,114,243,142,248,48,253,79,4,30,62,164,177,165,25,255,0,143,144,59,14,80,96,96,118,116,234,79,65,199,225,205,56,223,47,7,23,157,243,208,1,211,174,98,237,239,147,
+223,233,9,212,35,60,24,238,219,7,254,153,146,8,238,119,66,115,238,120,60,254,96,15,206,78,126,211,232,113,182,12,100,12,245,219,158,123,30,188,241,79,253,239,59,103,143,105,39,171,32,206,6,122,5,245,207,
+11,248,96,231,21,158,248,100,15,179,93,31,66,198,223,29,57,4,249,3,191,7,145,254,49,53,216,63,126,206,98,14,57,243,99,95,199,43,11,1,249,28,254,52,1,101,158,84,235,60,32,244,57,42,71,212,130,188,241,192,
+198,113,198,113,81,25,183,140,61,204,14,126,170,185,247,224,1,248,99,191,215,48,27,168,128,226,206,65,130,65,221,58,156,103,56,7,22,204,70,71,182,61,187,211,126,212,189,54,42,116,198,233,151,36,231,212,
+90,245,227,142,190,128,208,5,146,241,47,252,181,128,19,199,50,175,215,158,159,78,125,105,187,162,63,242,214,219,234,37,207,95,171,99,128,70,57,207,243,168,86,84,108,252,200,58,100,125,160,14,115,140,12,
+91,167,29,123,147,212,28,242,41,219,17,136,63,187,39,61,62,211,147,215,28,13,156,99,233,238,57,60,128,74,118,54,51,52,88,244,18,224,224,244,39,108,139,199,224,217,236,78,13,6,56,241,247,144,244,35,15,
+49,7,63,238,204,56,234,126,247,165,87,49,69,159,249,101,244,251,86,49,249,40,57,25,25,231,142,48,57,52,187,51,208,71,128,14,73,190,155,235,217,135,233,249,28,228,0,76,99,81,146,100,139,7,166,231,184,7,
+211,169,185,39,62,195,167,227,154,140,172,99,32,60,60,142,115,61,224,207,110,139,113,158,152,206,73,250,250,51,201,200,229,161,28,245,26,132,248,237,211,231,39,142,227,35,191,61,41,22,4,201,204,182,224,
+142,230,254,232,19,206,122,121,184,199,226,114,125,104,1,90,24,73,201,123,78,152,193,184,189,63,142,26,237,127,207,183,70,152,45,206,71,153,100,56,227,253,34,236,96,122,28,95,19,142,131,145,249,231,137,
+82,218,51,159,158,34,125,86,242,233,184,250,238,207,208,29,195,166,9,169,197,170,19,157,232,113,216,92,92,30,156,245,44,127,28,99,167,211,32,20,197,176,234,141,111,192,31,50,220,222,145,159,76,11,163,
+234,79,113,78,251,60,248,32,60,11,199,79,54,252,231,57,239,231,255,0,62,255,0,74,187,246,104,240,73,70,112,127,233,188,128,103,57,224,149,113,131,143,124,117,231,21,19,65,22,48,182,209,183,251,211,146,
+79,29,51,229,130,115,244,250,12,28,80,5,99,111,50,142,36,140,12,115,137,111,240,79,29,204,152,244,228,126,85,27,67,32,28,201,207,32,98,109,72,231,159,81,33,29,56,228,99,56,206,57,21,51,196,171,255,0,46,
+40,115,212,239,7,175,166,96,235,215,169,237,249,192,193,84,224,88,12,125,23,131,219,129,14,125,186,117,227,62,128,17,152,100,3,151,219,235,153,181,33,199,169,204,157,190,131,156,212,38,22,36,126,247,241,
+19,94,128,61,243,192,192,207,185,237,156,154,152,178,227,45,105,180,127,215,24,156,99,208,150,183,63,207,250,229,9,140,115,246,52,56,24,193,181,179,35,28,140,100,219,46,49,198,56,227,181,0,70,32,96,118,
+137,143,169,1,239,137,29,122,103,63,94,152,199,229,73,228,184,56,201,99,131,198,251,173,221,185,251,132,251,158,15,242,169,119,198,58,218,65,220,12,195,102,1,206,112,72,242,135,78,58,103,242,205,51,126,
+115,139,107,116,199,60,199,100,56,63,246,207,60,224,116,24,227,147,201,160,8,90,18,189,68,221,240,22,75,161,130,8,207,222,182,111,241,252,170,54,136,17,156,206,167,130,15,154,248,239,235,110,57,61,15,
+78,120,192,25,169,25,136,27,136,181,192,235,145,105,215,145,252,32,17,215,176,233,237,85,94,97,142,26,201,121,227,62,65,246,227,12,167,140,243,130,58,30,58,80,0,68,99,239,73,55,32,112,102,60,254,86,221,
+185,60,158,7,175,90,105,49,231,37,229,198,15,62,113,56,244,57,251,55,115,216,118,239,206,106,54,145,179,159,54,200,245,231,203,64,122,116,4,92,14,57,244,28,253,113,72,102,140,125,233,108,135,166,236,14,
+188,96,1,116,188,247,198,56,252,168,2,66,99,199,86,56,233,153,58,243,201,201,183,32,145,128,7,61,71,28,12,148,13,16,207,35,212,130,192,231,234,126,204,65,252,253,170,35,44,121,32,220,105,195,61,119,52,
+163,243,197,203,14,220,99,190,127,6,179,32,231,237,186,119,124,102,89,151,249,92,246,255,0,35,212,2,99,44,64,127,171,141,129,200,63,188,218,15,227,246,101,252,70,51,232,120,170,239,50,103,229,138,0,65,
+39,30,107,227,56,231,36,91,158,63,167,35,24,166,249,170,27,139,189,51,7,158,101,188,111,166,54,220,54,115,131,219,30,188,84,109,56,235,246,157,57,185,227,105,187,32,253,1,114,121,227,28,140,156,228,98,
+128,20,221,17,159,221,91,118,4,121,242,242,59,28,8,51,199,167,29,115,145,205,66,215,204,14,2,219,15,111,50,225,137,56,236,22,17,198,63,51,156,116,201,67,56,7,47,61,153,4,30,49,126,51,143,67,159,255,0,
+95,231,81,155,152,15,87,183,57,60,5,93,72,241,245,14,7,175,167,110,56,52,0,227,124,253,210,220,224,115,242,222,227,142,122,133,28,227,61,113,140,140,82,53,219,28,145,13,177,56,235,254,155,158,126,145,
+129,249,250,84,108,209,55,59,99,43,216,99,82,92,17,215,39,204,25,7,60,116,253,42,61,214,196,157,208,71,142,153,206,165,156,12,99,157,204,9,235,140,143,78,77,0,63,206,152,28,249,54,156,143,239,94,140,126,
+5,135,227,215,159,98,9,137,230,151,181,189,169,255,0,129,222,28,231,223,206,4,227,25,32,125,79,24,52,142,150,132,28,66,132,242,126,254,164,71,126,127,213,231,223,191,31,149,64,98,131,159,221,169,250,53,
+254,79,224,209,175,175,56,57,30,199,20,0,173,113,56,4,11,107,110,125,30,249,65,192,235,129,114,51,245,35,7,158,106,177,146,224,228,173,165,177,207,117,55,103,156,227,63,53,206,62,188,115,143,90,151,202,
+135,57,104,201,247,95,183,19,193,198,50,112,8,200,61,63,94,200,201,110,62,236,111,199,253,125,41,29,206,75,48,237,223,28,30,114,114,1,0,136,53,217,0,11,104,135,254,4,142,156,143,249,111,156,122,247,231,
+35,29,106,54,19,224,230,206,50,217,231,11,49,224,117,32,52,192,231,142,231,159,115,79,217,8,206,97,113,158,71,239,46,8,200,199,161,25,206,59,227,235,205,70,97,133,142,76,32,146,112,15,250,64,237,142,164,
+28,231,39,156,17,158,189,13,0,66,82,225,128,34,204,30,227,228,148,122,244,205,192,24,29,120,60,122,131,81,178,93,242,69,180,96,14,72,59,129,199,96,65,156,231,174,63,46,252,213,147,109,110,192,49,85,24,
+227,172,163,7,156,0,94,12,47,108,117,232,114,114,115,81,181,162,17,242,136,182,245,1,158,76,103,179,96,91,240,56,227,129,129,235,216,2,139,45,208,60,218,194,56,60,101,242,49,233,137,192,95,231,233,211,
+136,255,0,210,15,6,221,48,123,15,49,176,7,253,183,252,134,79,167,81,87,190,201,193,194,219,246,229,102,145,127,246,223,156,246,24,207,7,156,84,109,109,40,60,4,250,249,178,30,51,200,36,198,163,25,56,199,
+32,18,59,244,0,206,101,184,237,110,131,177,24,151,174,121,206,39,250,116,3,145,156,1,210,3,29,209,235,12,32,127,180,146,28,231,60,16,73,30,252,147,248,138,216,22,242,158,118,43,15,65,43,113,223,36,50,
+115,249,19,249,84,109,4,184,57,129,79,28,159,52,169,36,244,235,106,221,255,0,95,168,192,6,81,134,225,70,12,118,192,30,163,29,186,250,140,250,224,28,245,233,158,89,178,96,49,229,219,28,158,155,73,206,58,
+18,4,156,117,228,227,241,226,175,188,83,255,0,207,176,32,127,211,195,131,208,14,139,96,71,78,58,18,125,106,22,134,78,65,182,193,206,54,137,164,199,83,235,99,146,112,1,237,142,212,1,73,150,80,8,88,45,71,
+60,224,202,167,185,227,19,15,126,73,237,215,156,212,108,146,168,230,43,65,145,130,68,242,140,123,99,237,93,113,208,0,58,242,122,213,163,3,130,197,162,101,246,23,108,131,7,176,255,0,66,83,192,39,28,123,
+115,197,70,209,73,247,132,108,63,237,240,159,155,234,45,193,62,189,7,191,0,80,5,82,10,252,205,4,39,129,146,30,95,110,155,110,70,70,126,189,42,18,83,159,244,72,219,233,246,156,241,233,254,149,140,243,140,
+0,70,49,211,53,109,132,234,14,109,216,227,166,46,89,115,212,255,0,20,74,15,161,60,117,29,49,81,73,35,16,67,71,42,224,116,251,66,178,253,48,209,159,110,1,198,57,233,208,2,155,176,0,145,96,173,142,122,76,
+112,122,119,155,28,16,7,83,219,25,170,230,83,255,0,64,245,4,30,155,36,32,140,96,103,46,71,211,29,113,129,212,85,227,42,227,38,41,75,115,252,113,14,125,142,206,58,144,1,25,61,134,0,21,3,60,125,76,82,96,
+241,254,185,49,245,1,99,28,117,61,255,0,44,10,0,175,231,100,99,251,62,50,71,111,46,92,250,103,33,176,122,243,216,96,103,154,137,229,29,180,189,217,238,33,144,245,234,114,24,99,142,222,190,185,230,102,
+146,46,185,101,199,56,243,88,231,29,240,93,113,249,118,239,154,69,154,35,252,103,216,229,142,57,39,254,123,142,227,25,45,249,12,138,0,170,211,40,7,254,37,32,117,4,121,51,3,142,188,141,249,253,59,15,78,
+107,181,193,25,198,149,38,14,51,182,9,88,122,245,50,158,7,235,201,246,23,90,101,234,37,57,39,177,144,96,116,237,119,144,120,25,233,145,237,81,25,227,92,157,197,136,206,112,178,183,35,144,62,91,225,206,
+56,233,250,243,64,20,26,227,156,127,101,79,198,114,13,156,216,227,174,120,56,206,70,77,70,206,140,48,116,183,61,62,244,23,9,146,127,224,7,177,244,57,232,51,214,174,189,234,41,201,18,12,245,196,23,71,235,
+146,47,123,227,161,239,158,57,25,174,110,227,97,195,50,30,112,190,68,227,223,161,188,86,198,58,0,120,36,2,40,2,174,58,129,166,170,96,96,147,27,140,246,231,116,71,182,58,254,60,240,20,33,27,113,103,24,
+250,35,231,39,61,140,104,48,126,184,228,84,141,118,15,11,36,152,238,190,77,200,25,233,156,11,204,146,8,56,31,134,77,49,174,157,128,10,242,142,159,242,198,248,31,76,113,122,49,249,241,131,207,81,64,8,201,
+41,3,203,130,37,28,253,225,49,207,108,157,173,142,160,240,63,12,26,129,173,167,111,249,101,8,25,207,73,65,247,228,176,29,189,0,239,201,197,43,93,204,135,6,103,7,156,19,29,240,202,247,255,0,151,254,163,
+62,163,129,140,227,172,45,127,57,24,243,31,0,245,205,206,78,58,14,111,137,24,239,128,6,125,79,64,4,48,78,163,31,32,57,227,18,96,143,83,159,53,70,126,153,206,78,113,77,48,221,1,145,55,94,0,243,122,12,242,
+120,127,79,115,233,145,76,123,171,147,156,153,79,184,146,232,99,219,34,232,112,127,28,212,30,115,156,130,178,147,140,100,201,112,71,35,168,45,116,79,29,206,71,106,0,148,199,112,1,223,114,71,31,116,203,
+129,215,7,157,205,206,127,218,200,199,60,243,77,196,248,32,78,14,58,1,44,99,158,131,239,123,227,182,61,234,54,107,129,200,18,168,228,18,12,224,99,142,230,224,224,147,199,3,61,51,81,226,237,243,183,206,
+97,130,57,121,9,250,243,46,72,238,48,15,25,224,247,0,152,201,116,159,118,124,118,200,54,238,113,220,103,105,201,228,122,125,113,76,51,93,183,38,224,241,193,194,218,254,3,24,39,0,142,51,158,158,132,83,
+2,95,0,113,28,189,122,135,124,245,39,144,36,253,49,252,249,105,75,162,57,138,78,9,24,253,241,3,29,56,243,20,19,244,207,65,233,200,3,203,221,144,7,157,115,219,36,11,92,12,103,182,228,227,255,0,173,216,
+83,9,155,171,93,93,156,114,64,75,81,211,254,218,144,15,211,159,214,152,82,243,160,137,187,115,137,6,57,60,237,243,8,207,224,61,143,90,102,203,176,10,152,75,31,66,100,206,61,134,79,29,121,28,3,249,208,
+3,242,115,131,37,238,59,145,21,175,95,81,137,115,140,250,114,105,141,34,130,115,46,160,122,115,228,197,199,183,14,71,191,211,167,188,45,13,217,56,22,196,1,254,196,135,167,39,4,169,235,234,122,12,140,250,
+35,37,202,143,248,245,247,4,171,156,129,232,73,231,175,96,71,57,0,147,64,18,153,147,63,126,252,243,255,0,60,99,7,183,60,56,207,208,143,200,0,41,254,98,55,221,251,99,103,29,85,6,125,248,97,235,234,61,61,
+170,128,91,192,126,91,120,80,117,25,82,164,31,203,57,231,243,28,250,7,31,182,12,238,138,37,233,206,214,254,88,244,244,3,156,1,64,22,204,97,198,72,187,228,3,201,0,12,123,7,35,232,112,125,120,166,27,96,
+195,133,186,60,147,159,48,46,113,219,59,129,56,29,185,234,51,205,82,102,187,28,148,131,3,24,201,42,70,115,158,78,15,110,127,94,148,205,211,176,249,150,44,242,64,89,137,227,36,118,39,240,24,24,232,125,
+192,46,27,85,29,99,185,192,237,230,62,49,142,121,66,223,153,198,120,20,195,10,130,65,142,102,28,140,180,183,0,243,142,226,34,61,122,244,60,98,168,31,180,99,229,17,99,254,190,92,31,124,140,28,250,14,153,
+192,60,116,165,30,121,198,241,31,25,228,92,72,217,60,118,100,29,71,184,239,216,80,5,194,136,167,11,9,32,31,188,110,46,23,208,30,150,76,61,51,243,96,244,228,230,155,142,225,64,30,247,23,42,78,15,253,131,
+240,58,255,0,49,206,42,176,46,71,49,161,39,191,158,196,241,254,203,69,128,15,60,3,199,97,234,109,98,112,51,207,31,36,153,253,10,28,253,78,1,207,34,128,38,59,136,225,35,60,113,155,185,241,219,177,211,207,
+24,236,51,235,232,9,80,128,217,206,215,199,251,202,63,148,103,219,61,59,254,37,0,126,184,156,158,4,150,216,193,254,57,65,57,35,191,217,192,236,58,126,116,205,163,28,60,25,28,103,207,155,7,230,237,136,
+54,250,251,17,154,208,121,165,31,242,213,143,111,150,45,73,113,215,61,83,4,241,238,49,159,124,87,105,101,36,226,89,1,232,71,151,168,177,206,79,118,136,158,113,248,254,20,1,24,183,12,50,242,91,140,247,
+243,230,60,14,135,2,15,196,114,63,173,33,181,7,238,201,108,199,35,24,146,232,224,31,92,71,207,78,156,251,26,71,105,48,63,210,155,208,171,195,168,119,206,122,170,142,71,127,168,205,48,51,127,12,176,169,
+228,243,13,227,117,199,80,89,79,211,191,61,71,20,1,39,217,61,94,221,79,95,249,123,201,232,121,59,27,184,224,128,78,121,57,227,13,107,62,112,100,182,233,145,185,110,59,227,7,152,23,166,56,200,207,224,115,
+76,253,248,25,243,237,61,255,0,209,238,129,235,159,249,233,158,120,234,70,78,112,71,64,220,200,78,60,219,65,216,101,46,1,235,215,153,51,200,231,142,122,113,154,0,127,216,87,169,123,76,142,164,67,49,39,
+191,31,42,228,115,143,175,56,53,19,89,70,1,195,218,177,60,228,196,114,15,190,254,135,4,241,255,0,214,166,178,184,36,137,109,134,50,56,107,145,235,156,126,248,118,245,25,199,173,68,22,98,121,158,216,3,
+255,0,77,46,63,249,35,0,255,0,146,121,160,7,53,161,28,102,208,158,160,136,243,233,193,196,160,116,207,247,121,234,106,6,179,199,204,99,183,98,50,115,177,137,29,72,0,139,144,56,198,113,198,51,192,169,24,
+30,158,124,57,0,255,0,203,89,122,245,231,117,200,198,126,135,233,156,83,78,49,205,212,11,212,115,44,135,28,231,160,184,246,228,112,122,145,130,69,0,64,214,192,3,136,173,176,14,15,238,36,110,221,50,110,
+8,39,145,156,99,223,165,66,109,128,31,114,1,254,237,171,227,30,231,204,247,61,51,142,189,106,217,109,167,63,109,128,30,122,238,239,219,45,118,15,94,50,113,235,193,21,27,72,188,98,238,35,156,103,107,227,
+242,205,227,100,251,99,219,173,0,85,48,47,241,44,68,14,6,34,101,7,56,228,254,241,128,193,235,249,227,213,190,64,228,41,128,113,253,220,19,206,112,119,76,192,227,167,32,14,65,250,219,105,128,224,223,28,
+122,6,4,117,32,243,230,30,248,28,147,239,211,53,11,60,68,115,125,38,123,129,112,6,122,246,7,57,60,156,103,159,78,152,0,131,201,147,61,87,185,226,72,147,147,223,254,62,144,14,152,201,30,157,113,81,152,
+31,28,200,192,231,129,246,184,63,63,248,249,115,199,225,206,70,123,212,165,226,201,205,227,128,61,38,114,115,244,201,254,125,135,175,41,246,168,151,131,114,57,200,5,154,70,200,252,126,163,174,49,207,182,
+0,32,48,205,218,118,94,49,196,241,182,48,122,16,179,18,114,7,96,61,250,28,187,236,238,70,26,121,78,127,187,50,1,142,58,230,76,231,57,224,115,142,128,116,167,181,205,169,206,110,70,72,201,4,22,39,28,255,
+0,18,159,204,0,56,233,142,42,51,121,110,15,51,175,208,123,122,254,236,17,140,224,245,250,28,230,128,23,200,133,49,186,226,225,78,58,153,211,63,81,146,195,28,243,243,30,157,248,164,242,161,228,139,187,
+146,72,192,196,246,248,57,199,247,194,130,62,167,61,72,237,76,107,203,92,28,205,27,122,1,229,177,206,56,57,116,199,30,217,238,58,226,152,183,86,125,14,9,61,127,227,220,17,143,81,129,207,65,211,220,156,
+98,128,38,48,34,255,0,203,123,150,250,203,110,127,61,174,56,224,224,131,218,155,181,0,31,188,152,224,247,54,237,131,158,228,200,113,142,62,135,24,29,233,62,213,102,50,10,161,32,228,157,208,224,117,232,
+195,130,63,207,78,161,189,178,61,98,94,184,56,104,201,207,94,126,96,14,7,29,128,39,235,144,3,247,99,239,77,49,56,63,118,59,110,253,70,124,195,220,241,130,63,28,102,154,94,216,17,151,99,216,134,22,228,
+12,115,129,153,202,113,201,192,226,143,183,88,129,254,163,142,224,152,200,231,175,252,180,24,250,250,247,237,78,23,214,4,19,228,244,200,63,45,177,250,227,124,191,175,29,51,233,64,17,25,45,51,200,82,123,
+3,5,177,39,191,222,19,175,25,28,247,227,174,105,162,75,126,209,68,255,0,239,91,192,120,231,39,30,123,112,61,51,239,244,144,221,233,196,103,203,81,207,24,54,153,201,207,0,9,56,239,158,163,233,197,52,221,
+105,217,226,45,195,140,231,236,185,28,245,4,200,191,92,15,94,121,226,128,35,62,64,233,4,32,247,34,214,216,243,200,25,2,111,207,156,240,79,126,26,101,236,18,32,185,198,62,195,104,78,59,240,102,7,159,195,
+21,33,186,177,237,3,131,208,28,218,0,123,96,255,0,164,103,62,156,123,118,24,136,205,1,63,34,56,238,6,200,89,122,99,31,35,144,61,200,207,174,58,80,2,249,187,122,199,15,83,130,109,32,25,247,249,46,121,35,
+129,220,241,192,34,147,205,99,156,11,113,156,114,98,132,30,120,200,15,62,62,163,158,152,227,138,103,154,153,7,203,126,231,148,80,8,57,236,73,63,143,3,219,213,12,240,30,54,62,64,57,193,136,123,158,171,
+142,249,239,211,30,130,128,7,4,231,152,126,160,90,167,30,184,89,128,207,126,216,247,199,44,40,65,249,90,50,55,12,229,237,7,35,129,146,103,60,103,168,232,65,82,120,20,25,161,56,62,88,252,82,22,39,29,201,
+202,231,39,211,29,193,207,90,105,146,51,200,72,198,122,15,42,62,190,251,100,245,39,255,0,175,129,64,14,217,33,232,97,31,238,181,167,60,250,153,143,92,126,28,126,42,34,148,19,251,200,250,244,34,220,243,
+245,15,206,57,231,169,168,76,167,60,8,198,72,57,17,129,128,51,146,15,153,156,125,114,61,207,20,166,83,219,104,199,127,37,152,159,199,121,235,199,110,131,138,0,156,197,40,199,239,99,246,0,219,241,207,0,
+124,255,0,145,224,103,235,78,228,14,102,94,157,55,69,219,143,225,124,12,119,231,215,29,56,170,211,72,73,233,140,117,16,28,103,29,194,176,218,51,233,207,20,195,51,231,153,99,252,109,164,239,235,128,223,
+82,59,241,207,122,0,182,91,3,153,98,24,234,60,238,159,80,38,56,252,121,227,189,49,152,16,115,113,0,25,198,60,197,35,166,127,231,169,207,67,215,62,132,122,215,222,27,36,201,111,215,169,133,129,245,232,
+200,184,56,233,207,20,187,211,140,220,91,142,65,27,130,17,147,216,12,175,62,248,224,254,20,0,252,71,213,174,33,57,29,149,15,175,251,67,29,125,73,193,61,105,4,145,131,204,203,140,246,71,227,215,143,48,
+231,219,0,12,243,73,146,223,114,238,17,219,253,84,89,237,254,217,7,158,113,197,59,109,207,4,95,198,156,231,136,225,92,119,224,150,32,15,94,195,215,145,64,14,251,68,67,56,218,221,64,44,146,130,49,215,59,
+91,31,94,217,199,208,176,180,76,51,156,115,252,49,203,131,140,243,252,62,221,243,198,123,98,148,139,140,124,218,136,199,127,154,217,65,227,29,9,0,2,58,247,198,113,199,20,223,47,161,125,65,136,234,72,107,
+70,250,227,4,99,28,156,103,211,61,51,64,9,251,174,161,152,250,254,238,112,123,244,33,248,199,161,239,248,138,99,109,25,206,72,28,143,150,110,248,3,145,134,233,142,191,206,157,182,32,112,47,27,28,228,131,
+102,9,207,168,44,1,252,72,63,160,160,65,25,63,241,251,34,228,119,54,67,36,122,150,148,227,30,224,126,89,160,6,121,128,125,208,73,238,127,126,56,56,35,171,99,211,243,165,51,3,140,163,158,189,164,97,147,
+216,245,201,199,215,240,198,75,252,148,94,154,132,188,231,238,73,96,6,120,206,79,152,64,29,49,206,78,120,224,10,79,149,9,63,218,55,71,221,102,211,219,169,246,115,220,14,185,36,142,49,210,128,35,46,9,24,
+183,110,152,4,36,220,254,33,15,113,235,75,185,128,7,236,231,56,60,149,152,100,144,127,187,16,201,28,96,147,244,233,196,134,111,75,155,188,129,195,239,179,36,254,143,233,192,198,71,168,233,72,215,82,47,
+75,187,172,99,188,182,128,241,159,72,73,193,39,56,227,29,113,234,1,22,246,39,152,208,118,229,39,63,142,4,121,235,159,79,124,102,147,50,28,159,46,48,59,98,59,172,242,120,233,30,63,199,176,228,138,119,219,
+113,128,110,238,9,236,12,144,103,140,242,7,217,199,80,65,207,3,160,192,206,105,62,220,70,72,184,152,30,115,186,88,112,126,187,97,201,224,3,129,142,63,28,128,27,217,113,243,112,49,198,203,145,199,76,143,
+229,200,62,167,166,106,65,114,7,95,44,145,199,205,28,231,128,58,18,67,126,61,59,224,98,163,26,156,195,164,205,131,223,114,48,198,115,212,218,158,195,167,255,0,172,184,106,55,60,226,232,39,25,35,35,35,
+7,161,205,160,29,112,71,36,31,165,0,74,47,0,60,132,92,119,16,207,183,28,142,199,61,113,198,61,14,58,138,149,174,98,113,193,136,224,119,138,231,223,140,238,82,78,51,223,190,51,235,83,251,66,228,99,253,
+51,118,15,77,209,31,78,185,181,35,185,254,184,239,32,212,46,15,13,112,164,30,160,172,31,210,208,127,135,74,0,148,73,17,60,8,135,94,76,87,61,113,192,63,233,107,128,121,245,25,36,226,164,19,70,14,55,196,
+7,7,136,238,87,36,100,255,0,207,248,228,14,227,211,189,87,251,92,196,113,34,231,177,16,70,199,32,124,191,118,221,73,199,94,189,134,13,52,203,112,217,38,224,14,71,88,19,28,116,198,232,15,227,207,35,175,
+61,64,46,27,152,135,202,12,103,175,2,59,156,103,184,36,234,131,63,151,29,112,56,165,23,16,158,74,46,79,28,36,255,0,250,15,246,167,242,233,211,38,169,15,56,255,0,203,96,73,238,177,40,234,125,68,93,255,
+0,12,28,84,158,84,195,31,189,60,243,128,160,3,233,200,141,72,235,233,142,79,25,52,1,117,110,161,94,112,170,15,92,137,71,231,255,0,19,38,29,207,190,71,20,166,250,60,141,190,81,224,237,59,100,206,122,242,
+62,217,159,81,130,79,29,143,34,168,249,51,3,247,193,61,121,66,79,60,243,219,168,231,160,237,138,127,217,220,243,243,247,28,64,49,248,146,167,7,60,122,158,63,16,11,70,254,79,225,17,115,199,16,202,73,252,
+174,206,115,249,123,83,77,243,158,163,36,14,71,147,62,220,242,58,139,181,235,199,161,31,237,30,4,34,25,87,32,36,167,167,72,227,94,158,153,140,158,216,252,50,15,2,164,17,202,0,34,55,57,231,63,41,207,28,
+103,17,17,223,168,206,113,236,50,0,211,116,71,37,14,222,251,109,231,32,147,159,91,174,70,57,239,211,241,9,246,173,221,223,158,185,129,198,78,73,4,254,249,137,244,251,167,142,217,228,171,71,112,73,2,221,
+155,142,57,97,143,206,44,96,30,195,56,233,77,16,221,103,155,124,123,19,215,241,48,237,224,103,250,80,1,231,177,32,17,145,142,208,73,147,207,61,242,123,113,249,30,130,151,206,98,120,222,161,73,255,0,150,
+51,1,248,240,72,206,49,239,239,193,167,17,47,59,173,148,183,83,243,68,56,235,158,33,67,143,175,83,201,199,80,210,101,81,255,0,30,59,142,127,136,18,48,126,170,1,199,92,122,254,84,0,255,0,62,66,14,39,110,
+252,121,83,103,131,206,112,6,61,57,200,57,193,235,76,105,36,35,253,107,156,241,194,73,219,215,115,14,199,176,234,127,54,121,142,9,3,79,77,217,206,124,149,238,65,236,58,118,7,7,175,161,167,9,92,124,173,
+97,39,127,185,4,100,112,63,218,183,110,121,236,127,94,40,2,48,243,244,18,77,140,158,14,226,57,63,245,208,100,28,245,231,159,173,40,19,145,201,126,58,253,225,156,14,160,7,227,245,247,206,49,65,151,144,
+77,133,200,199,79,244,120,240,122,245,197,186,140,244,234,120,253,74,52,160,12,125,142,112,221,193,181,92,243,207,247,148,125,63,192,208,0,82,97,194,179,142,252,201,50,241,245,5,192,200,236,57,231,35,
+160,1,165,110,179,242,202,126,108,242,110,231,24,62,224,40,232,115,212,145,142,70,73,197,39,154,189,236,110,31,182,126,200,132,114,59,157,254,221,207,31,94,105,4,241,143,189,103,50,231,214,210,38,198,
+120,238,78,8,233,199,231,64,15,9,168,246,148,119,200,243,174,91,177,56,39,99,99,0,103,167,81,156,224,112,211,253,161,247,124,240,7,108,92,220,119,250,69,248,28,129,205,32,158,219,161,138,224,31,81,107,
+26,15,110,75,227,30,185,7,25,168,252,200,27,36,67,114,121,231,49,47,25,227,177,35,0,31,70,3,36,244,52,0,237,154,159,105,20,129,142,77,236,254,153,255,0,158,28,156,227,159,173,49,147,82,231,132,110,59,
+92,206,220,113,129,254,172,113,207,95,195,30,175,86,66,8,17,72,1,35,27,163,64,120,233,131,176,250,96,115,219,138,152,20,95,249,232,61,64,0,100,99,184,100,35,142,71,67,208,96,231,168,5,101,93,67,174,197,
+24,227,253,124,228,3,212,100,121,36,116,235,223,190,57,229,225,117,14,1,17,143,76,189,211,100,99,147,194,46,121,246,237,249,217,205,191,241,6,234,62,241,135,0,241,215,59,15,114,65,24,231,183,52,162,72,
+122,3,24,193,238,34,238,58,28,183,60,244,198,62,156,19,64,21,66,222,0,50,97,28,159,249,105,120,51,248,21,3,233,198,57,60,156,82,159,181,55,7,200,252,100,186,255,0,226,151,175,215,177,227,138,180,89,73,
+31,52,124,243,242,201,8,28,242,54,226,54,25,246,236,73,6,131,229,140,156,130,7,95,222,195,250,255,0,162,147,156,245,207,31,173,0,83,219,116,14,223,221,12,118,84,186,144,227,142,254,120,0,240,122,250,129,
+143,69,196,153,231,7,175,105,211,3,185,3,237,3,175,57,35,211,60,231,155,27,226,199,115,244,146,35,159,108,136,20,145,245,200,206,6,61,23,205,132,14,19,156,156,101,225,98,123,140,230,34,63,224,36,116,239,
+214,128,42,229,129,24,108,129,131,131,29,203,103,156,16,27,237,168,58,28,116,250,158,42,97,43,1,203,40,198,1,205,189,195,227,166,114,63,180,148,126,24,239,215,166,36,18,196,1,194,198,56,234,86,30,15,177,
+242,254,185,207,7,128,23,181,39,218,80,114,21,72,31,221,242,143,215,141,128,30,158,189,65,7,24,52,1,25,149,206,8,117,43,255,0,94,179,175,82,56,31,233,173,128,51,212,19,129,140,158,6,80,204,196,12,227,
+3,28,249,83,19,200,198,64,55,71,174,121,199,211,218,148,221,174,120,92,244,56,219,17,31,78,19,57,28,99,250,230,152,215,12,78,68,121,7,144,20,224,117,60,224,40,61,206,49,245,236,104,1,76,132,228,157,217,
+255,0,114,101,235,211,147,114,63,250,221,186,211,119,43,117,87,28,128,112,29,143,94,122,221,14,189,50,71,60,158,59,48,201,51,100,152,228,237,192,150,81,215,166,114,71,244,235,216,245,110,88,245,138,78,
+120,57,150,99,237,156,25,20,123,116,7,175,24,226,128,30,66,124,223,44,158,223,43,224,28,143,250,110,222,192,116,25,233,207,5,167,107,28,20,115,142,153,70,207,227,137,7,110,50,73,3,223,20,224,167,28,195,
+47,126,76,146,3,234,121,18,15,174,50,127,83,76,33,249,192,145,71,65,254,145,39,228,65,151,244,61,199,65,193,0,18,128,184,37,96,98,59,157,172,196,250,28,134,32,116,201,228,14,249,207,84,218,196,156,218,
+200,195,147,212,169,236,113,243,131,158,125,51,156,119,168,8,147,167,155,32,228,96,125,165,137,28,246,27,206,58,255,0,16,252,113,79,30,119,92,204,255,0,89,165,232,113,144,126,124,117,227,57,25,61,112,
+40,1,94,37,239,109,48,61,192,100,56,233,223,202,35,243,245,235,197,51,201,94,246,215,61,126,242,207,31,183,64,109,134,61,59,227,131,211,163,88,158,141,230,40,29,1,146,86,254,114,1,244,197,48,132,244,148,
+146,51,159,54,94,61,72,253,240,3,190,49,239,201,2,128,39,242,129,199,238,110,7,78,178,66,79,211,62,80,207,92,228,158,6,114,41,124,182,83,149,141,248,231,151,139,35,240,35,63,167,57,170,161,161,13,201,
+148,3,206,12,211,14,65,31,244,216,228,14,50,14,7,65,239,75,230,64,50,251,152,28,227,253,100,141,199,29,65,144,100,1,207,3,60,30,120,205,0,90,253,234,242,177,203,140,19,242,180,61,70,79,252,242,253,123,
+123,228,210,110,184,32,229,92,15,67,60,29,186,99,40,189,59,15,111,173,84,50,197,140,131,184,125,36,221,129,147,159,245,172,79,0,118,245,235,193,168,13,220,3,130,195,175,60,184,61,184,207,152,8,239,200,
+207,60,30,148,1,165,155,174,203,38,125,174,33,29,177,219,111,174,78,58,118,224,84,108,46,240,15,239,1,57,7,55,49,31,94,50,8,236,49,211,167,124,213,17,119,110,221,51,236,112,112,78,7,247,174,1,28,119,224,
+125,121,20,191,104,182,60,108,82,78,79,222,144,31,99,242,221,254,88,4,100,28,129,198,0,44,31,181,14,228,103,251,211,35,125,121,223,235,233,212,115,233,76,223,120,126,225,140,159,119,39,142,159,194,197,
+78,121,28,30,253,143,88,217,237,207,30,92,96,1,206,102,159,61,122,182,110,254,189,8,218,7,83,147,152,219,236,173,144,68,63,95,50,115,142,157,127,210,143,29,61,115,210,128,38,63,218,24,60,64,120,233,180,
+28,245,245,35,243,235,253,33,101,189,61,12,42,122,112,187,137,227,63,195,156,244,233,156,116,24,198,65,15,149,208,73,10,245,192,221,117,145,223,60,94,14,221,120,193,235,138,77,176,157,199,113,127,77,141,
+48,228,103,214,244,127,65,142,157,193,0,97,134,236,159,153,215,62,162,18,112,59,12,121,68,117,231,183,30,253,97,107,75,166,235,32,32,247,107,114,122,125,84,15,82,79,29,176,113,131,82,20,139,146,81,178,
+48,78,228,115,199,167,55,253,179,199,4,227,241,166,236,128,140,148,42,58,130,21,151,25,198,115,186,243,140,145,220,14,122,251,0,87,107,41,65,36,190,120,199,22,161,143,96,49,212,31,96,1,227,241,164,22,
+110,57,50,191,28,140,218,100,103,160,206,64,250,255,0,92,241,86,68,112,116,18,40,60,231,0,19,143,252,11,63,207,158,220,10,113,80,72,195,228,129,142,99,24,28,145,201,51,18,121,206,15,67,131,207,168,5,38,
+180,39,0,206,7,108,11,37,227,220,245,29,187,231,233,205,70,116,244,57,204,202,78,113,255,0,30,145,117,231,3,144,125,250,231,223,147,131,113,145,219,147,180,245,36,249,81,177,192,227,35,8,252,99,161,206,
+122,85,121,35,115,128,48,64,228,226,218,60,241,220,254,235,129,193,207,76,228,246,20,1,7,246,116,96,101,174,25,113,192,197,156,35,61,56,57,3,142,58,253,125,242,195,99,18,142,46,152,19,253,219,123,78,128,
+30,57,25,24,4,0,51,207,108,241,78,101,117,255,0,158,129,114,70,69,186,174,6,121,56,218,6,78,14,114,122,154,76,17,247,188,194,59,124,145,12,245,199,85,39,240,198,125,57,160,8,190,205,17,63,241,248,252,
+115,255,0,30,214,185,235,221,182,140,147,199,57,31,82,105,222,76,64,12,93,1,158,51,246,107,34,112,62,160,15,78,115,199,78,112,77,46,225,142,16,131,140,101,150,30,59,231,30,89,252,79,168,239,145,75,185,
+128,24,104,128,255,0,118,53,60,113,213,97,233,215,140,99,223,176,0,143,203,135,159,244,156,96,240,124,155,64,79,235,223,158,70,59,242,105,166,56,199,252,188,169,57,232,22,219,249,1,142,185,28,31,76,84,
+158,107,103,253,98,143,238,224,161,24,7,142,145,3,237,208,159,203,134,52,167,24,44,228,247,195,14,71,226,139,159,168,234,121,228,243,64,16,152,19,35,253,33,114,78,55,24,224,206,57,233,152,143,63,204,231,
+53,31,217,151,112,197,201,61,126,80,176,16,9,238,71,147,249,231,24,199,7,173,77,230,195,144,89,220,17,199,250,221,184,207,29,2,251,114,59,243,248,55,205,180,7,62,107,238,28,113,52,152,207,29,198,208,113,
+199,127,111,106,0,104,136,166,118,220,182,125,54,194,160,158,152,199,148,115,239,143,198,145,145,216,109,19,177,61,64,85,136,31,169,219,110,216,35,146,113,215,208,230,158,110,160,24,204,146,228,17,210,
+73,191,248,177,145,238,61,137,164,55,240,0,65,158,76,30,198,89,0,244,193,221,33,244,247,198,40,2,15,179,74,217,62,99,130,115,215,24,25,237,242,217,161,239,212,158,51,222,154,116,247,98,15,153,131,220,
+101,190,189,163,92,224,140,224,243,207,112,42,193,190,135,35,109,204,156,143,148,137,200,37,113,158,155,249,228,231,25,192,39,28,114,104,251,92,64,18,110,166,224,156,143,60,12,244,206,67,22,255,0,60,228,
+99,0,2,140,154,107,159,249,107,39,185,12,248,244,61,16,143,204,116,239,142,106,31,236,183,199,19,202,0,206,63,120,220,247,60,24,126,157,51,90,47,117,110,121,121,231,32,255,0,211,116,25,36,241,146,209,
+176,25,62,191,135,65,136,30,123,46,190,108,199,253,235,152,9,7,235,228,227,28,116,32,224,12,12,147,64,21,134,157,140,230,73,216,140,28,121,142,120,239,210,16,6,121,231,255,0,212,28,108,145,120,62,112,
+56,236,207,158,228,240,33,4,156,227,191,244,165,19,217,238,255,0,88,231,169,193,154,219,129,206,113,254,142,79,190,72,60,245,226,154,215,54,167,163,187,18,15,6,107,114,59,118,54,96,116,207,215,159,168,
+0,132,219,32,207,203,112,71,65,147,49,63,153,129,135,227,211,185,170,237,111,31,35,55,11,215,128,206,126,184,196,3,61,122,122,246,192,171,66,75,98,123,147,219,47,7,176,25,255,0,68,61,79,61,61,70,56,226,
+55,75,50,73,44,87,39,161,150,221,125,250,155,14,71,29,243,200,228,158,65,0,166,208,70,58,92,94,96,158,66,180,131,161,224,243,26,251,99,158,167,143,65,17,142,36,28,207,118,71,98,60,205,223,153,43,143,115,
+249,17,222,243,71,99,200,102,29,185,51,218,231,191,31,242,14,239,250,254,60,198,214,246,24,3,28,118,27,237,219,32,113,158,52,240,59,142,167,167,214,128,41,23,129,0,97,45,251,125,89,200,228,2,114,78,79,
+30,157,50,61,49,81,180,240,15,249,252,63,237,25,36,4,99,234,64,231,29,249,29,51,235,59,67,107,200,202,1,201,230,104,120,246,63,232,0,140,28,244,61,71,110,162,22,130,212,96,137,45,249,198,115,42,103,143,
+113,104,1,232,121,250,244,52,1,27,92,91,224,22,123,175,198,105,58,246,251,164,156,103,174,57,231,61,120,170,237,115,105,206,94,108,251,205,113,216,227,24,39,158,189,113,158,79,24,21,57,138,33,192,54,237,
+131,234,167,24,28,5,97,104,64,57,32,250,28,123,84,126,84,96,31,150,220,147,247,114,64,233,255,0,110,153,39,242,207,110,40,2,169,158,212,156,137,92,100,112,26,107,129,159,168,222,163,145,199,62,149,9,158,
+220,12,9,80,243,140,27,137,58,241,156,143,60,16,79,30,160,30,217,60,219,49,69,140,249,118,217,39,161,36,113,235,159,179,244,61,176,51,207,78,42,38,142,50,48,35,182,36,19,209,148,158,221,51,104,127,28,
+175,28,251,26,0,166,215,16,96,147,52,39,211,116,179,123,1,157,183,7,240,57,31,225,92,220,219,147,146,246,76,59,22,158,224,122,117,255,0,73,24,199,124,159,173,104,145,183,32,71,7,25,227,120,231,240,251,
+32,231,183,225,80,177,4,227,100,121,235,254,181,198,79,97,197,191,25,239,193,231,144,59,80,6,115,92,218,103,30,101,128,25,207,23,23,3,24,237,197,198,122,28,119,25,235,156,96,87,146,107,2,65,255,0,137,
+88,224,255,0,203,213,202,156,253,62,211,216,231,223,28,231,131,90,187,164,7,1,99,0,118,243,165,228,30,122,253,148,131,234,1,31,227,77,46,255,0,196,168,58,99,14,207,208,231,28,219,15,175,3,60,99,129,212,
+3,21,165,178,4,146,250,98,243,206,46,110,113,248,102,124,122,118,235,215,147,81,60,182,0,13,167,77,98,115,202,79,49,250,116,115,211,29,242,71,113,91,141,52,195,238,195,33,231,25,69,29,51,142,119,66,7,
+3,161,56,199,78,217,168,90,121,178,70,203,197,231,145,181,48,61,185,132,14,56,201,252,122,17,64,24,12,246,191,120,38,154,73,200,24,145,178,9,237,134,59,191,60,103,212,212,45,44,35,28,105,203,201,24,222,
+15,232,67,28,99,161,56,173,246,154,76,99,253,51,159,246,71,94,152,225,7,78,188,123,116,53,11,52,132,100,73,116,50,49,180,132,200,32,30,164,40,108,14,224,251,243,212,0,14,125,238,96,7,4,233,221,120,34,
+72,253,123,0,131,158,184,201,245,29,69,69,246,139,92,253,235,82,71,31,235,98,7,158,195,0,100,12,240,50,8,232,107,125,131,182,73,158,237,64,198,72,76,1,131,142,15,152,6,58,117,227,7,240,21,156,100,115,
+61,211,99,159,186,15,110,164,125,161,112,127,159,61,40,3,43,207,180,192,44,177,31,80,175,1,206,123,231,203,39,61,57,201,193,252,105,165,237,91,159,46,62,153,207,153,16,227,182,119,68,7,113,207,255,0,170,
+174,148,7,254,90,79,215,35,48,3,142,216,255,0,143,130,79,126,115,142,79,76,226,152,99,137,142,11,220,103,169,219,110,160,17,248,207,223,208,140,30,231,154,0,207,43,14,70,216,226,255,0,191,144,28,253,127,
+112,192,99,191,94,72,227,25,164,49,161,200,10,23,56,206,201,109,135,76,228,243,107,206,61,0,57,237,210,175,24,32,98,114,111,56,236,182,171,143,199,23,30,190,231,31,76,84,15,103,106,231,147,116,184,228,
+19,3,100,227,61,71,154,120,61,56,239,129,237,64,21,13,185,36,109,243,49,200,201,54,252,117,232,194,216,12,144,49,211,24,237,158,66,253,153,128,192,47,187,212,60,99,140,250,136,7,166,122,3,248,28,84,198,
+202,211,4,121,147,19,145,214,6,227,145,147,193,61,250,1,159,174,77,51,251,62,211,63,235,46,57,36,113,28,201,248,123,247,32,128,121,207,175,0,16,155,71,56,249,156,158,51,204,100,158,115,144,60,163,236,
+113,220,118,7,172,109,101,38,73,13,48,4,156,252,170,71,169,249,133,190,6,122,242,77,88,54,54,171,255,0,45,110,125,192,107,143,253,150,50,115,211,174,79,20,223,176,219,127,12,247,106,121,233,231,254,121,
+242,136,245,238,120,234,61,64,42,155,73,0,249,75,19,212,146,0,56,193,201,193,181,39,57,227,28,143,126,73,168,77,172,128,140,99,130,71,206,160,119,7,60,218,143,235,245,199,53,108,217,199,142,46,111,179,
+208,129,246,130,127,51,0,192,199,57,252,241,221,159,97,140,245,185,212,15,190,249,7,183,25,183,239,223,191,127,90,0,171,246,105,71,62,96,92,140,146,173,25,32,118,235,106,167,169,247,227,30,152,168,188,
+169,208,231,237,12,190,128,0,120,244,44,97,80,58,224,96,242,50,71,124,222,54,10,6,22,231,81,98,125,89,207,29,7,75,126,57,244,231,56,230,163,107,28,156,153,174,187,231,38,81,143,65,204,88,201,207,94,125,
+122,245,0,168,13,199,252,254,55,60,103,247,127,252,70,51,142,128,12,245,198,78,42,51,231,127,207,226,156,30,242,66,132,243,221,74,18,127,195,183,174,128,181,0,113,60,237,255,0,3,99,235,147,147,14,71,175,
+94,231,39,173,35,91,228,28,51,158,157,102,156,30,57,4,109,64,57,239,199,31,149,0,101,191,152,217,205,225,98,51,200,146,223,215,39,159,47,145,192,60,244,231,2,161,44,203,192,189,199,61,11,192,121,200,60,
+5,140,175,95,94,230,181,13,169,206,124,178,196,227,150,158,82,115,193,254,37,198,7,57,245,239,237,19,90,190,7,238,113,198,56,149,136,57,56,199,35,229,63,80,70,15,114,70,0,51,67,202,120,55,112,146,120,
+203,27,125,222,220,180,96,242,56,228,103,166,58,209,229,220,54,118,221,91,128,114,120,22,205,207,65,255,0,44,15,212,116,29,65,197,94,251,36,216,202,194,64,232,65,144,128,122,119,49,145,245,35,144,65,199,
+97,77,251,36,135,129,16,7,161,6,76,177,246,255,0,86,7,39,35,24,247,199,76,128,83,242,174,200,218,46,226,32,1,130,5,150,122,123,194,8,60,117,62,188,16,42,39,75,193,149,91,196,239,147,182,209,143,7,28,17,
+31,31,150,115,142,162,180,126,194,199,145,20,126,249,146,82,120,239,132,135,175,167,39,216,158,205,251,27,28,255,0,163,71,145,158,127,210,186,103,174,124,188,231,158,164,28,250,114,5,0,103,40,190,83,143,
+181,194,70,79,81,104,48,61,203,68,199,63,78,228,116,207,40,209,93,54,55,79,17,201,224,226,216,159,195,108,10,79,226,122,147,207,53,124,216,168,228,199,24,206,7,18,78,49,158,63,138,29,195,62,188,129,233,
+212,84,127,98,78,240,131,199,31,233,19,31,212,91,113,245,28,208,6,113,182,185,206,3,66,71,63,121,35,36,250,244,136,245,234,122,125,58,211,77,189,201,192,196,28,119,41,180,250,12,2,139,211,60,227,3,191,
+110,47,27,8,129,193,136,47,29,124,219,131,159,95,249,96,189,179,234,15,67,222,155,246,72,189,35,83,142,166,89,199,230,124,161,158,61,206,62,148,1,76,219,221,231,238,219,48,4,99,10,205,143,200,174,6,121,
+193,247,57,192,168,218,27,163,145,182,37,234,9,93,192,159,65,195,156,99,158,163,161,233,201,173,31,178,193,211,117,177,200,254,41,174,14,123,118,94,49,193,61,7,233,74,108,173,142,79,250,9,61,129,184,156,
+96,12,228,28,17,143,94,135,31,157,0,101,8,110,176,70,216,135,160,204,159,92,147,230,168,201,24,254,30,188,243,198,19,236,215,47,140,8,83,144,50,94,97,215,212,45,192,244,231,156,117,235,90,134,206,223,
+32,121,58,113,255,0,183,171,172,253,70,24,118,207,56,31,212,6,218,217,115,251,141,56,1,142,62,213,117,159,94,238,7,231,145,146,63,16,12,197,181,184,236,45,201,199,39,117,201,207,113,140,93,250,119,31,
+165,21,171,228,219,255,0,4,86,4,224,103,55,174,1,0,100,140,23,201,224,156,231,35,208,146,115,69,0,126,180,181,211,140,131,110,156,117,204,246,189,185,206,77,215,57,63,211,215,21,9,188,96,121,183,140,15,
+250,237,109,250,31,180,227,143,96,1,237,222,167,104,116,242,57,121,78,120,229,109,151,235,128,98,62,191,143,7,6,154,32,178,207,202,236,191,86,182,193,30,152,242,9,31,135,78,158,184,0,132,222,147,255,0,
+44,35,28,244,89,225,39,35,167,73,143,56,207,115,206,62,148,134,228,158,124,190,15,96,241,183,167,240,137,1,231,161,4,175,39,168,239,57,183,131,28,49,108,228,140,45,179,18,61,70,96,3,167,67,128,121,30,
+224,180,199,108,129,178,24,116,60,193,102,64,39,145,200,182,114,61,115,156,131,234,122,0,85,55,40,56,48,144,123,18,145,118,246,243,199,94,7,66,70,15,173,68,215,81,19,204,62,196,143,41,120,231,36,3,112,
+121,246,199,167,57,230,167,145,109,155,162,2,114,50,124,171,97,199,185,251,54,73,231,128,63,17,211,53,158,24,72,3,100,92,30,50,145,22,228,28,99,22,170,127,51,248,80,0,46,173,70,71,150,228,224,14,86,212,
+246,24,254,51,158,199,25,38,162,123,235,96,121,10,6,57,204,86,249,207,114,54,177,28,99,191,176,61,41,166,221,64,63,36,120,207,247,99,25,233,140,102,220,31,115,212,231,211,60,70,96,61,86,40,61,183,71,25,
+201,255,0,191,28,250,117,160,0,222,89,48,235,9,227,230,204,86,188,116,25,29,199,3,60,140,131,215,56,230,49,61,147,30,30,1,142,112,18,219,62,189,148,159,174,51,142,192,241,148,49,237,60,165,136,255,0,122,
+48,14,71,28,149,132,103,144,122,245,198,58,12,84,108,177,131,146,150,4,146,57,17,38,79,226,99,252,14,64,207,92,142,5,0,77,230,91,142,76,145,224,231,0,45,169,224,99,185,135,223,235,198,120,230,154,210,
+91,19,204,192,103,254,153,218,115,158,163,34,0,70,113,207,191,78,106,35,212,130,182,91,70,48,4,49,147,199,253,179,95,192,227,28,117,61,153,229,196,120,48,219,156,99,56,181,143,0,227,175,221,252,58,103,
+57,205,0,72,100,182,4,131,114,156,118,43,107,200,247,253,216,63,159,183,208,66,103,182,3,139,152,142,79,0,8,6,125,240,168,64,235,211,3,191,122,15,146,8,197,189,169,3,131,254,140,160,251,224,133,244,3,
+7,63,165,38,216,71,2,43,113,239,228,19,206,115,215,105,227,252,6,61,8,3,60,248,71,34,116,207,57,200,139,159,65,254,160,224,103,30,188,114,5,33,184,94,113,60,61,250,164,103,242,196,43,255,0,215,234,48,
+106,76,160,255,0,150,86,220,156,147,246,68,60,246,228,166,115,147,244,239,235,133,19,68,160,230,59,85,24,57,205,180,88,245,57,27,121,252,58,123,228,154,0,174,38,82,50,178,161,35,178,198,131,158,123,121,
+88,228,140,142,189,59,246,69,150,85,60,72,132,117,254,0,122,243,210,32,114,15,184,239,208,154,156,221,194,59,91,0,120,5,109,148,231,61,57,94,159,227,223,213,5,218,12,21,142,46,132,156,89,6,206,79,191,
+211,190,9,30,131,154,0,141,166,157,135,250,222,249,0,12,254,161,8,231,191,177,227,28,84,38,119,228,151,201,4,130,60,183,61,61,72,76,158,48,7,30,224,158,149,57,189,32,156,70,84,250,45,142,61,7,69,36,19,
+248,14,189,250,211,13,233,63,192,78,122,255,0,160,200,57,245,56,97,145,234,63,12,80,5,70,154,80,115,188,115,156,19,20,192,228,251,136,248,232,113,199,76,103,182,90,215,19,241,213,190,144,185,60,253,99,
+207,244,231,138,176,111,36,193,218,144,158,15,252,185,202,15,80,6,113,187,143,199,7,175,181,51,237,115,54,72,88,72,236,69,188,163,140,147,147,133,35,29,51,142,157,179,216,2,185,185,184,193,202,176,255,
+0,182,56,63,170,96,126,127,175,21,17,184,113,213,156,117,60,68,141,140,245,232,51,129,250,247,200,226,174,52,211,115,251,184,138,158,194,205,201,201,245,223,183,63,159,124,129,145,204,38,73,143,72,162,
+3,169,45,98,195,244,203,115,238,122,114,56,230,128,32,105,201,228,180,164,118,197,170,49,231,184,236,51,142,14,6,57,62,180,158,121,80,49,231,99,184,16,32,97,207,247,113,142,62,185,28,158,106,124,200,115,
+136,19,175,63,232,32,241,158,163,4,31,204,3,216,224,1,64,71,124,102,221,121,233,255,0,18,240,0,57,201,251,195,30,189,15,76,240,15,52,1,95,207,128,240,230,231,233,246,120,136,207,126,145,55,92,115,156,
+126,36,243,31,153,105,206,77,193,60,231,247,72,58,118,57,140,131,208,99,7,250,85,131,11,117,251,44,126,152,22,136,9,235,220,39,113,212,28,244,200,231,144,209,9,207,252,120,41,227,161,183,254,96,46,61,
+115,201,244,28,80,4,6,234,216,17,143,61,143,76,24,173,206,57,61,153,58,122,13,163,158,1,231,132,75,136,247,103,108,196,19,218,43,61,220,96,243,152,193,28,245,24,207,31,74,176,99,97,211,77,140,30,231,236,
+204,15,232,71,62,252,231,169,235,76,6,69,198,52,226,122,116,183,151,29,177,200,113,159,124,231,167,83,154,0,97,158,62,233,56,231,131,228,217,231,169,231,36,14,113,145,208,250,146,113,78,19,64,120,249,
+198,121,255,0,87,106,8,247,63,186,57,29,184,62,244,190,108,131,254,92,24,113,192,54,242,246,228,2,124,243,248,231,211,181,40,185,144,116,177,92,245,192,130,101,28,123,137,73,192,207,160,247,7,52,0,23,
+135,29,100,35,56,36,69,102,70,120,227,62,94,9,57,39,147,215,220,211,79,146,64,27,166,199,169,75,53,4,228,241,128,153,244,237,159,214,165,23,51,99,155,63,166,35,186,13,128,122,6,243,70,125,7,227,197,53,
+174,110,65,59,108,159,28,240,90,236,126,35,109,200,233,130,61,122,113,232,1,22,216,122,6,32,156,30,90,215,166,113,252,81,245,39,182,71,126,194,151,203,39,133,120,178,49,195,45,153,60,30,184,219,140,250,
+140,231,169,237,76,55,119,60,226,213,134,9,200,18,221,228,117,228,131,112,79,94,184,28,119,207,52,159,108,185,28,24,102,24,235,181,238,219,190,78,63,124,59,30,71,99,216,116,160,9,60,169,73,3,43,215,157,
+171,167,247,198,50,54,147,143,76,1,207,36,26,145,96,99,140,178,242,48,55,199,100,79,60,100,109,94,9,24,200,193,244,168,197,229,199,120,238,1,25,63,55,218,250,103,28,143,180,224,115,199,32,114,115,201,
+32,82,139,169,200,234,249,201,227,23,36,1,255,0,2,156,247,233,193,198,56,7,176,4,166,211,131,155,136,190,187,45,179,207,7,166,210,49,215,142,157,133,68,108,131,100,253,162,221,179,211,49,192,126,160,157,
+196,244,237,143,160,3,38,148,51,191,222,32,103,35,44,46,9,39,63,245,211,4,227,24,200,224,241,207,52,205,171,206,233,112,122,125,203,142,62,152,39,182,59,242,112,120,28,208,2,125,136,130,8,146,2,79,93,
+176,219,156,117,3,59,153,114,58,99,29,251,242,41,126,197,32,39,139,66,59,23,182,136,12,125,19,35,28,250,114,77,49,209,14,127,122,204,121,224,173,192,29,242,6,36,207,39,212,15,233,85,202,197,192,44,254,
+159,47,158,167,60,245,203,182,15,28,245,31,74,0,185,246,66,62,98,44,72,35,180,81,241,142,135,6,38,29,253,57,227,52,125,157,207,11,246,62,71,65,109,25,245,231,34,208,144,127,47,122,166,12,0,124,204,71,
+215,205,57,25,227,144,191,150,125,126,148,111,181,233,153,36,62,129,138,243,208,96,52,100,159,160,7,30,180,1,101,173,217,73,200,132,103,29,33,42,7,161,192,181,56,57,238,79,214,154,99,25,0,152,49,211,148,
+144,142,51,201,255,0,69,227,60,231,142,224,103,34,160,38,219,56,54,228,131,156,110,98,59,251,193,128,49,234,7,94,125,106,51,246,96,127,212,66,188,231,44,233,158,184,234,208,96,125,121,245,224,117,0,153,
+163,76,244,182,63,68,101,199,126,246,192,231,215,184,57,61,241,80,178,168,199,16,0,61,35,110,185,232,115,106,79,235,244,168,152,91,57,201,183,133,136,206,48,209,55,94,217,54,227,159,211,166,49,76,205,
+162,240,32,32,224,112,60,131,158,120,199,250,48,252,186,227,56,60,208,4,192,160,232,35,3,56,207,148,113,234,121,22,76,113,211,3,147,215,57,24,169,84,193,140,249,144,142,163,24,35,249,233,190,220,3,129,
+219,61,13,86,86,131,4,44,18,28,14,155,173,135,191,123,124,247,245,30,253,105,87,105,60,89,204,57,4,19,37,150,122,240,70,109,155,60,14,248,234,59,228,80,5,143,221,131,159,180,194,184,57,234,195,175,97,
+157,52,131,215,140,30,220,210,110,64,56,187,131,131,252,69,122,115,223,236,74,127,65,81,225,88,255,0,199,189,192,233,128,62,194,199,216,31,244,60,96,159,78,160,253,40,219,24,235,5,199,178,172,118,96,143,
+196,90,96,246,233,253,120,0,83,32,3,38,250,216,123,110,32,12,117,199,238,84,99,233,129,211,215,33,162,100,25,7,80,181,57,231,27,198,71,168,201,0,99,220,19,215,2,164,30,95,202,76,87,137,201,0,136,237,137,
+252,49,108,122,144,63,33,158,216,112,216,73,249,239,208,100,125,216,173,243,193,0,240,208,224,122,253,223,108,115,64,17,135,31,243,255,0,111,142,59,130,0,237,247,79,167,212,156,146,51,78,222,71,252,196,
+109,187,242,124,211,156,127,186,15,115,144,51,211,32,96,244,122,249,100,16,101,212,137,201,201,48,194,57,24,192,27,97,61,9,231,35,185,206,58,83,252,184,71,35,251,67,175,37,161,141,73,3,3,36,139,80,9,246,
+24,199,229,64,16,44,132,103,58,133,169,25,201,193,157,127,51,228,147,212,242,115,216,122,84,194,80,1,63,110,180,7,182,37,184,7,183,82,32,231,211,25,61,51,154,126,20,231,229,188,98,14,7,238,198,64,247,
+11,107,142,199,212,115,208,138,7,148,51,251,187,163,129,201,40,224,131,158,248,180,24,29,129,207,60,123,10,0,133,174,0,60,94,68,73,199,220,184,184,201,60,242,71,150,56,207,211,169,227,25,164,55,67,4,153,
+213,142,49,247,167,207,167,31,40,227,29,179,159,167,74,152,180,3,150,73,215,130,112,35,114,71,175,63,99,36,122,231,39,60,243,154,4,150,188,100,92,100,30,133,92,118,245,54,131,158,163,149,255,0,235,128,
+86,243,212,224,153,27,219,15,112,49,248,96,231,191,76,117,234,106,69,104,72,31,189,145,178,122,9,39,36,3,206,121,67,158,188,129,208,253,106,198,251,86,254,9,78,113,213,219,245,205,158,9,39,146,72,7,60,
+125,93,254,136,120,218,122,242,28,228,112,70,57,54,62,199,142,220,16,71,25,0,131,116,3,141,210,244,60,111,152,145,255,0,144,51,159,167,225,192,197,46,235,94,67,164,141,199,44,102,185,65,145,211,32,218,
+112,122,103,239,12,251,84,165,45,71,204,4,121,57,56,44,71,76,224,228,89,118,57,239,159,214,163,63,100,228,237,66,115,213,101,144,31,127,189,103,180,115,201,232,58,159,106,0,76,90,227,136,220,103,7,254,
+62,38,57,227,142,13,137,35,233,128,115,199,83,79,88,225,32,230,218,67,234,68,140,70,6,123,125,137,79,76,17,207,20,128,64,79,5,215,29,113,55,3,240,251,25,206,125,113,215,233,154,148,34,30,142,195,208,153,
+216,127,237,144,235,235,210,128,34,100,139,167,217,216,231,156,150,113,192,28,117,181,254,188,250,30,129,22,4,59,118,193,142,112,6,1,236,58,230,1,140,243,220,99,24,169,140,121,60,73,156,228,228,206,184,
+0,116,4,155,62,152,25,224,99,185,235,71,146,8,255,0,89,25,60,99,23,48,130,122,245,38,203,39,183,28,116,245,160,10,237,110,153,207,151,10,243,255,0,61,10,143,167,22,196,122,31,189,193,250,208,32,136,117,
+138,54,35,61,37,99,131,212,231,253,28,143,78,152,227,57,246,159,201,193,227,201,60,159,249,111,110,79,7,167,205,102,70,79,92,115,142,121,237,75,177,134,112,99,7,158,60,251,78,49,232,62,200,59,103,156,
+12,123,80,5,127,32,144,54,216,169,29,114,172,216,231,57,255,0,151,94,222,228,247,201,160,90,228,224,233,206,115,253,201,240,49,238,12,25,199,215,63,173,79,229,202,216,196,145,227,191,239,237,84,251,142,
+45,207,92,113,158,7,24,239,74,34,148,30,76,67,191,223,136,244,231,24,22,167,215,25,62,189,113,64,21,254,194,49,133,176,145,73,207,222,152,28,118,63,47,217,193,233,192,57,207,175,187,76,12,157,108,206,
+14,64,253,238,58,250,230,30,224,240,71,29,207,173,104,44,115,19,242,202,7,93,164,173,169,25,57,192,27,172,129,244,207,7,156,244,237,47,147,48,228,205,16,32,100,226,24,25,189,248,251,23,225,220,30,126,
+148,1,149,242,143,189,102,234,115,142,46,130,126,24,85,28,113,220,127,58,114,149,232,44,92,147,192,63,106,99,198,51,208,58,100,113,156,231,25,237,129,197,246,86,31,122,100,252,96,182,25,7,175,252,186,
+99,159,66,56,35,160,168,192,4,130,25,115,147,131,229,90,3,192,246,179,30,220,227,56,235,235,64,20,219,106,129,254,134,195,174,127,210,228,234,126,151,29,186,244,25,239,220,211,1,66,73,54,178,140,156,16,
+183,44,202,59,14,178,115,200,35,111,191,189,104,144,122,9,92,122,108,138,2,59,231,143,32,114,14,48,72,24,3,24,165,1,243,195,75,129,213,133,188,100,253,72,16,253,58,30,63,74,0,206,27,65,255,0,143,41,200,
+207,86,153,148,0,115,159,249,110,6,15,30,132,125,120,167,51,41,28,218,184,56,200,205,201,61,207,7,23,89,31,136,252,5,93,49,72,73,253,228,185,28,228,219,177,206,113,211,253,28,131,147,232,8,244,231,25,
+97,140,1,254,177,199,168,22,178,30,122,99,229,181,81,212,28,250,243,218,128,43,121,139,131,139,98,59,19,231,183,81,211,36,92,228,0,59,127,141,30,97,199,48,103,191,23,18,123,96,127,199,192,247,231,156,
+123,147,79,99,252,59,220,227,144,13,172,139,156,99,254,152,131,219,211,167,191,21,27,6,198,124,180,126,217,54,242,131,199,109,222,95,215,250,208,1,132,108,226,3,146,64,192,186,147,25,244,24,186,4,243,
+142,157,120,236,49,74,96,13,156,66,71,210,230,227,142,157,127,211,89,123,30,123,123,244,16,21,148,103,109,164,39,185,221,111,56,0,103,215,203,25,28,117,28,103,35,61,138,21,156,1,139,24,14,127,187,4,228,
+158,122,242,132,12,246,227,211,57,228,16,7,60,15,211,116,203,147,247,126,211,63,233,182,240,254,29,51,239,76,242,25,122,53,201,57,25,197,237,216,255,0,218,164,15,168,235,214,158,22,114,14,108,34,83,207,
+45,111,114,58,115,218,34,49,235,212,244,3,20,221,146,18,196,89,219,30,50,192,219,221,16,0,207,173,187,30,49,156,116,30,212,0,171,28,163,56,23,29,178,90,246,240,113,156,245,19,174,51,199,161,226,164,30,
+126,8,49,76,15,98,117,43,209,233,200,13,114,71,215,145,244,170,237,31,57,251,37,129,247,54,215,188,127,228,142,63,46,252,241,73,176,131,197,173,135,215,236,247,120,233,211,6,213,112,122,252,184,198,14,
+115,130,104,1,231,237,0,253,217,84,244,207,219,175,73,61,135,34,124,100,14,167,191,126,217,70,50,241,147,46,71,102,187,188,98,50,121,233,62,58,250,241,207,61,40,9,47,1,45,44,136,244,75,59,131,140,255,
+0,192,23,28,241,202,129,201,61,197,73,229,92,255,0,207,173,190,49,209,44,174,62,110,7,80,16,140,116,228,245,57,250,208,4,34,71,94,14,113,216,180,215,30,163,185,184,39,208,145,212,158,114,105,194,225,199,
+59,67,103,161,50,76,216,199,185,184,193,238,112,112,50,49,239,82,149,148,125,235,112,131,56,226,206,69,3,130,57,253,216,201,192,245,201,231,35,209,70,0,193,143,147,200,205,179,12,16,123,102,49,216,250,
+244,244,36,228,2,6,186,81,213,84,18,63,188,128,15,76,230,224,142,157,201,227,167,4,156,57,110,211,161,138,55,35,166,230,92,143,126,102,43,207,78,248,207,81,214,172,110,96,70,33,24,61,51,27,114,71,76,128,
+153,234,78,79,108,14,7,20,187,152,114,32,64,125,0,32,116,227,168,29,122,142,63,250,224,16,53,210,116,16,198,70,59,180,36,227,232,101,62,221,6,59,98,144,92,198,70,60,152,148,243,146,4,60,240,61,31,61,123,
+103,219,140,147,83,238,144,142,109,64,245,109,138,113,142,188,119,252,7,65,238,41,8,144,100,173,188,184,227,238,196,79,60,247,243,147,191,113,140,115,138,0,174,211,71,233,26,147,211,41,17,206,113,200,
+249,178,121,207,90,4,177,113,153,10,241,206,200,208,113,232,62,98,49,207,94,71,76,12,96,84,164,55,57,134,113,206,112,99,56,245,35,38,225,137,0,114,15,184,233,216,218,78,65,183,155,25,207,30,96,29,135,
+64,28,126,61,253,69,0,69,186,38,63,44,238,189,248,242,179,143,161,35,56,25,192,199,211,165,25,198,49,59,17,236,216,61,58,156,112,79,78,253,122,241,82,236,183,56,221,107,49,4,140,16,101,25,246,32,174,6,
+9,198,115,199,52,162,27,110,72,180,108,159,225,38,86,206,79,124,96,126,35,3,232,40,2,185,105,71,34,105,70,7,80,91,30,185,200,39,61,187,143,208,84,102,91,172,156,92,92,17,211,134,152,241,212,156,42,140,
+143,199,159,124,213,223,38,19,242,139,30,121,231,108,199,159,168,149,120,252,73,238,48,42,54,182,135,128,214,50,6,35,180,87,77,147,211,32,121,224,127,46,188,19,138,0,168,210,94,127,207,123,156,14,121,
+19,16,113,199,66,8,246,234,120,168,90,107,146,112,101,153,137,193,63,235,78,14,122,116,62,135,24,29,114,125,170,225,179,181,25,63,100,124,156,245,134,239,60,240,122,77,216,16,112,15,25,24,30,173,251,29,
+160,228,91,176,62,240,94,17,236,126,105,179,198,127,196,250,0,84,221,114,65,34,105,193,233,214,112,123,241,134,94,9,207,112,51,198,114,49,76,105,174,148,149,15,41,227,57,62,112,36,246,228,40,28,240,79,
+24,237,142,113,87,154,43,113,144,45,65,224,231,48,92,30,123,253,249,155,60,244,199,167,74,66,144,140,1,2,16,113,199,217,165,207,167,86,126,188,128,125,201,61,13,0,102,188,247,74,64,1,152,245,193,105,15,
+97,234,50,57,231,169,239,248,70,46,175,6,113,19,143,109,207,200,227,184,143,216,247,31,227,166,98,136,242,109,192,234,56,181,115,143,160,18,142,61,15,30,189,234,22,136,30,18,221,61,57,179,151,130,120,
+60,9,249,237,143,78,189,49,64,25,230,234,240,253,232,167,35,24,249,100,99,207,126,10,113,249,17,235,156,211,76,183,0,31,221,92,224,147,206,236,30,7,80,66,46,0,28,99,7,158,9,207,6,219,69,46,113,246,120,
+112,120,255,0,143,41,137,199,169,196,222,190,156,0,125,240,107,181,187,255,0,207,37,7,254,188,231,245,61,188,236,113,235,248,30,212,1,23,157,46,78,248,174,121,60,110,146,76,143,65,192,25,233,211,191,57,
+247,60,242,127,229,148,170,15,118,148,156,122,140,23,95,78,153,206,122,244,167,136,92,116,68,244,57,180,155,63,250,48,99,241,7,223,160,164,104,228,31,120,196,184,239,246,102,7,156,31,226,114,59,142,253,
+240,64,192,200,3,119,177,229,21,199,29,119,74,113,142,70,113,54,6,113,131,130,121,30,228,83,12,178,0,114,71,176,36,140,99,143,226,185,31,158,1,3,20,21,148,12,171,198,115,159,249,116,39,156,117,239,248,
+228,145,198,122,241,76,217,41,7,115,0,15,66,45,70,79,97,213,148,140,241,223,183,67,197,0,47,218,9,4,17,15,78,73,57,231,146,14,77,195,125,56,231,60,146,58,211,11,231,57,88,136,39,60,47,168,234,49,56,31,
+145,253,120,167,121,79,192,242,213,134,48,119,68,62,135,239,187,127,245,254,163,52,190,91,12,237,129,50,123,136,178,122,228,96,49,43,158,79,245,230,128,26,74,127,18,193,220,96,196,231,25,237,205,208,231,
+167,160,207,28,142,176,179,192,50,60,139,54,201,32,150,182,152,243,248,92,112,125,72,28,103,175,56,169,76,114,14,60,151,56,29,65,137,113,245,12,15,61,120,207,4,99,145,76,33,135,240,78,78,48,54,203,107,
+143,192,121,100,122,123,246,160,10,238,208,231,230,143,77,0,129,193,182,186,4,241,211,229,151,111,224,9,201,4,251,213,118,104,48,115,30,153,207,253,59,221,30,6,73,36,137,64,224,245,30,159,157,95,18,63,
+221,217,112,191,240,59,94,123,99,62,79,205,238,120,199,39,24,57,161,183,30,10,77,239,137,97,201,235,217,109,192,28,251,128,61,40,3,36,164,7,131,246,44,115,144,45,110,72,25,231,3,46,195,7,167,57,200,231,
+60,241,9,88,70,64,88,54,142,226,11,188,103,61,112,81,143,78,128,103,161,227,211,88,151,28,8,238,126,162,69,108,228,241,210,37,227,235,142,79,175,20,214,14,127,229,141,225,30,242,2,57,228,28,8,250,99,167,
+32,55,56,227,160,6,59,71,17,94,82,19,193,0,8,46,176,51,142,120,135,167,57,247,36,122,224,192,97,67,144,137,24,227,144,144,223,3,223,156,132,237,215,32,30,56,173,205,185,255,0,150,55,57,63,119,12,115,223,
+130,162,44,244,199,62,163,131,207,12,100,144,131,136,174,7,3,35,46,72,247,36,66,72,231,190,64,244,24,160,12,31,179,166,119,21,199,161,43,168,1,159,92,20,61,135,126,190,196,12,192,214,220,96,121,96,245,
+63,45,240,24,199,124,194,9,35,61,206,62,167,145,188,194,108,17,182,232,158,51,145,41,3,25,237,228,96,227,63,135,191,32,68,119,127,113,142,123,188,115,57,227,61,150,1,244,224,127,46,64,48,141,171,243,129,
+14,57,235,246,220,227,25,206,124,178,61,185,25,250,30,105,166,212,158,173,25,62,130,91,188,240,56,224,168,24,244,29,189,49,91,97,212,114,203,22,71,36,155,121,186,241,158,13,184,239,211,156,253,121,164,
+38,54,7,11,22,65,32,130,151,10,1,233,212,219,227,31,152,62,253,128,48,133,187,127,113,88,15,73,174,84,28,244,235,25,237,219,57,164,104,229,29,22,44,3,213,174,46,79,175,76,168,228,156,116,3,61,179,212,
+236,51,42,159,186,6,0,206,35,184,110,78,122,102,215,25,198,49,159,255,0,83,73,7,130,185,62,166,217,201,192,234,50,214,4,227,167,32,228,254,20,1,132,222,120,28,249,30,163,51,78,79,81,156,252,195,7,56,227,
+35,167,182,3,55,200,120,45,14,64,237,37,193,253,124,252,99,211,3,30,189,107,109,221,50,113,4,100,99,140,219,201,147,239,205,136,233,208,227,29,58,244,168,154,102,199,8,132,48,192,42,132,16,122,116,22,
+203,142,57,228,113,199,78,13,0,99,179,100,17,185,9,57,228,61,193,4,247,235,33,207,92,244,201,201,35,25,168,11,178,244,113,198,70,0,185,201,237,206,88,129,249,99,235,90,166,86,207,205,30,64,255,0,166,103,
+60,231,32,19,104,125,123,158,253,241,138,133,156,48,224,21,35,60,180,104,223,135,54,155,114,125,253,185,160,12,179,116,195,35,36,103,253,171,128,15,168,33,87,145,206,79,39,129,215,213,13,231,172,178,12,
+224,240,243,243,255,0,127,34,35,166,57,250,117,171,172,100,61,0,199,111,221,99,183,125,176,174,57,206,59,113,215,213,2,92,54,118,135,62,131,107,119,239,247,84,96,96,158,160,15,165,0,80,55,79,130,203,60,
+252,142,243,77,219,57,232,132,12,244,200,30,216,235,72,111,165,28,155,153,148,115,207,155,49,224,251,8,251,30,1,200,250,30,106,233,130,244,130,118,182,59,2,175,144,64,60,231,61,63,15,206,171,180,23,157,
+192,25,235,185,49,156,247,25,117,207,226,57,29,113,147,64,17,27,233,59,221,72,163,215,19,30,131,166,124,150,237,253,9,53,3,223,12,146,215,50,156,117,108,204,49,255,0,146,248,198,58,100,247,28,12,102,166,
+54,183,71,143,221,130,115,140,205,26,156,145,199,6,80,126,185,29,129,25,3,52,134,202,236,142,26,44,28,227,253,34,14,79,127,188,88,254,56,96,79,24,226,128,42,73,125,24,231,237,14,72,24,203,60,131,39,24,
+57,221,106,64,233,207,63,153,21,87,251,69,51,129,113,130,70,63,215,56,61,114,14,13,147,99,30,223,157,104,53,133,203,28,55,151,130,73,4,77,110,114,49,223,247,109,199,243,207,110,41,159,217,83,114,7,149,
+158,113,153,237,199,94,252,69,156,126,7,211,28,112,1,76,106,49,240,26,116,35,143,189,44,217,206,59,98,200,103,240,224,30,190,148,167,80,136,159,150,226,21,199,127,54,86,35,255,0,37,199,175,76,119,39,21,
+108,105,151,120,35,253,27,130,121,107,176,191,250,12,75,252,241,158,158,149,11,105,151,99,146,208,140,99,145,168,176,28,246,0,166,7,24,228,15,94,59,208,5,118,190,4,28,93,65,211,251,242,48,231,61,132,25,
+30,255,0,90,131,237,192,2,13,205,183,190,69,201,57,237,143,220,246,61,199,78,181,108,233,179,144,119,125,152,227,4,31,237,60,96,129,237,15,35,175,61,121,61,200,168,77,129,92,156,219,147,131,143,248,152,
+18,125,7,75,110,156,231,140,175,168,192,160,10,207,116,141,201,187,136,112,112,68,55,93,241,142,112,128,231,249,112,64,230,170,73,42,49,230,238,51,212,2,34,186,0,126,95,135,92,119,231,185,208,54,143,142,
+124,174,58,19,168,3,192,236,15,217,78,59,112,71,25,3,184,168,158,209,248,1,97,7,176,251,121,35,235,129,107,215,31,204,250,80,6,126,112,120,184,135,30,134,43,140,224,250,18,221,242,56,207,4,243,215,4,62,
+118,62,73,32,57,206,63,117,32,63,159,81,158,221,113,219,168,171,15,105,34,228,8,224,247,255,0,76,148,228,129,254,205,176,199,7,160,236,122,122,86,107,118,7,37,45,198,14,50,110,110,142,14,123,98,1,158,
+228,99,28,254,116,0,1,116,121,86,31,240,27,121,152,31,174,70,115,238,8,232,105,132,222,3,128,238,14,8,226,9,148,123,240,73,25,31,67,239,236,198,73,1,32,139,110,189,165,188,198,58,244,251,51,100,142,51,
+245,227,210,163,116,32,28,44,36,159,73,46,177,244,63,232,163,233,156,126,61,168,0,41,126,231,13,35,227,142,74,48,227,167,32,227,183,28,246,61,179,80,27,107,204,242,239,238,60,183,60,126,103,7,160,207,
+7,165,55,50,100,143,46,19,142,255,0,188,110,58,243,155,51,198,125,120,224,115,70,37,237,28,99,31,244,201,216,19,142,153,54,131,244,231,175,28,208,3,77,189,216,4,239,144,251,40,124,114,125,216,122,117,
+199,24,7,60,98,160,48,93,14,64,148,145,208,150,85,35,167,102,83,245,252,186,30,142,117,155,57,253,216,234,114,177,30,157,241,254,139,208,127,60,245,57,168,138,156,146,89,115,207,2,23,250,224,108,183,29,
+185,198,0,246,206,40,1,194,27,194,65,8,224,117,31,190,85,231,158,160,68,195,7,191,215,38,145,163,187,207,32,48,3,140,220,115,215,142,22,12,231,145,211,56,57,224,84,24,110,152,97,223,152,39,35,140,227,
+31,184,227,211,57,7,174,7,74,97,112,15,204,88,227,160,88,174,51,232,9,2,62,50,59,227,167,210,128,36,100,184,25,207,31,91,137,198,127,43,101,62,156,175,108,83,72,184,199,6,50,127,218,158,108,142,227,146,
+128,250,158,71,99,129,138,132,178,55,241,176,56,63,242,202,231,35,215,254,88,113,143,126,190,252,212,103,27,137,6,70,39,60,148,185,95,78,198,16,56,250,30,122,208,3,156,93,18,112,45,79,63,197,36,142,49,
+140,224,146,160,18,6,65,7,3,215,29,42,60,77,209,146,200,156,116,80,220,119,56,25,231,242,61,120,39,36,211,63,121,202,226,66,15,251,51,96,140,158,9,49,247,250,12,12,100,247,169,85,120,229,36,4,119,45,114,
+6,125,62,88,138,247,207,25,62,244,0,207,222,175,240,91,116,234,21,248,224,140,159,148,254,61,7,4,231,173,52,203,32,234,208,116,231,43,39,78,131,60,123,244,60,247,52,230,81,130,121,199,168,150,245,127,
+93,158,160,142,63,44,230,153,177,179,149,141,219,131,214,75,246,31,129,1,72,244,233,158,62,180,0,195,36,128,1,155,82,58,242,140,216,207,212,12,245,206,64,224,227,154,105,150,65,140,53,152,30,240,179,16,
+71,175,202,0,31,67,211,169,167,24,223,181,176,60,30,146,222,1,198,71,118,25,62,135,29,248,231,138,122,199,32,24,48,47,57,227,204,187,108,12,103,56,219,128,122,245,60,30,220,208,5,127,54,98,127,213,88,
+177,245,22,224,231,223,230,148,99,160,199,29,249,239,76,47,41,228,67,110,1,25,36,91,198,50,120,234,11,159,166,120,29,49,212,85,221,152,255,0,151,69,36,116,56,185,60,247,235,11,103,158,185,57,236,72,25,
+166,108,151,57,91,54,201,231,229,243,71,231,132,80,8,227,28,1,250,228,2,168,89,143,240,67,200,31,55,217,208,224,103,29,159,159,81,192,235,64,140,182,73,217,198,127,229,218,61,191,158,238,58,142,118,243,
+192,36,213,229,19,30,77,155,2,113,146,90,85,220,49,223,128,9,227,175,126,72,57,193,167,249,83,17,159,178,184,32,159,249,106,70,51,142,164,130,79,175,94,157,40,3,48,196,122,238,139,140,244,129,8,199,242,
+56,199,169,233,219,140,199,153,23,42,12,39,146,72,251,56,207,95,113,142,15,76,12,2,51,142,107,76,195,57,4,11,86,30,194,229,58,119,224,161,200,57,231,215,183,187,62,207,113,142,109,39,247,219,52,36,254,
+27,163,63,76,14,61,5,0,80,87,113,192,142,2,79,28,192,163,143,117,242,200,231,28,243,129,206,13,41,121,113,255,0,30,246,255,0,79,33,71,215,164,39,176,237,250,26,180,208,76,57,251,29,208,227,163,75,104,
+7,4,247,242,199,81,142,15,126,157,65,44,219,56,0,11,75,206,79,123,155,111,200,129,15,3,30,191,92,226,128,43,153,110,6,127,115,22,49,159,150,9,1,0,253,45,246,241,237,245,162,166,97,112,113,139,27,198,206,
+120,243,173,249,30,185,17,140,228,28,247,197,20,1,250,179,229,69,202,152,19,29,79,250,120,35,30,188,73,248,103,240,52,8,226,232,18,60,103,167,219,35,60,127,192,164,249,143,3,167,57,250,208,109,213,70,
+119,130,121,229,67,16,59,113,200,207,96,15,29,241,142,149,23,150,132,231,204,147,238,147,196,110,115,130,125,95,24,235,207,78,8,207,56,0,15,242,147,7,8,0,63,220,186,95,76,244,91,149,4,231,191,112,122,
+10,140,192,152,231,127,39,3,51,175,29,248,255,0,75,227,211,3,219,32,211,138,43,142,12,141,233,136,255,0,194,64,1,231,223,57,232,5,68,109,100,25,34,55,32,158,1,136,30,228,242,60,207,160,255,0,60,128,73,
+228,196,23,163,22,237,153,149,71,110,230,227,159,231,215,241,111,149,144,48,157,58,98,224,22,192,245,196,164,103,190,115,143,67,205,64,214,206,127,229,151,67,255,0,60,84,131,232,114,39,199,28,228,99,4,
+14,9,165,91,105,122,24,71,167,17,91,143,174,9,151,159,199,57,28,242,48,104,2,95,37,207,43,4,111,140,156,52,128,240,63,237,183,62,217,227,57,226,144,71,33,25,49,67,199,3,152,143,78,156,179,146,79,76,114,
+79,94,0,53,93,173,238,57,62,72,192,61,68,80,96,99,29,0,149,122,115,200,4,14,231,181,48,197,112,50,4,44,79,97,246,120,207,175,253,54,24,3,212,103,63,204,2,119,141,243,247,33,207,124,164,106,64,206,56,36,
+115,207,28,241,199,94,245,93,149,199,247,6,61,237,208,100,140,241,144,79,111,124,99,29,105,162,27,205,223,234,0,198,63,229,135,78,123,145,40,247,192,252,123,83,188,169,251,198,7,108,152,134,58,118,30,
+97,224,99,208,125,113,205,0,66,203,41,94,89,7,3,172,246,254,189,134,65,56,227,60,117,228,245,197,68,86,76,103,205,227,24,230,104,48,72,246,57,35,183,127,122,185,246,123,131,150,16,130,59,48,133,121,237,
+212,147,250,114,71,165,85,104,103,56,62,66,228,250,71,31,242,36,30,212,1,17,89,198,8,184,143,232,215,22,220,14,157,4,36,231,211,4,28,247,198,41,141,246,145,252,81,99,129,147,119,2,231,190,72,54,224,19,
+215,156,18,121,197,88,242,228,198,76,35,35,166,4,99,160,239,200,227,39,158,221,70,58,80,98,124,31,220,250,127,12,64,253,58,123,143,231,144,58,128,84,196,132,252,243,70,58,253,219,171,94,220,255,0,207,
+168,227,232,113,215,61,141,70,113,145,251,212,24,28,17,113,104,114,120,60,145,7,227,212,103,129,142,57,186,99,148,15,245,64,125,90,17,142,252,0,125,62,184,200,227,158,24,86,101,0,249,107,198,6,9,140,251,
+99,191,35,191,94,135,189,0,85,219,25,59,140,161,135,61,110,237,70,14,51,206,200,65,244,245,224,245,4,210,52,106,167,229,148,47,94,183,177,3,206,56,230,19,158,131,29,15,95,90,185,153,79,72,83,129,207,41,
+147,140,231,36,32,245,200,4,127,74,55,75,158,35,57,255,0,100,161,192,244,201,143,36,122,231,147,211,158,5,0,82,35,35,33,209,137,235,155,149,207,28,12,4,139,25,7,32,156,17,249,240,211,20,108,78,89,51,207,
+30,108,100,227,177,230,54,219,255,0,124,142,253,69,89,103,156,103,17,75,216,0,171,7,82,59,229,57,206,58,99,211,218,162,47,57,32,20,144,99,56,249,45,199,82,126,241,10,61,185,255,0,10,0,129,162,133,121,
+49,161,231,25,243,237,242,71,190,228,94,63,250,221,129,37,2,91,128,127,113,25,25,206,67,90,54,51,142,164,17,219,140,112,61,58,84,199,237,4,229,86,99,235,132,132,140,103,183,113,207,110,63,94,88,94,228,
+127,4,231,31,244,201,14,115,199,240,131,220,231,219,28,241,64,17,50,217,228,110,182,95,92,7,181,30,249,193,36,227,158,59,224,245,233,76,242,172,242,64,181,136,227,187,52,68,40,227,174,51,143,67,199,60,
+227,142,106,70,154,110,63,117,114,196,14,112,132,14,231,128,160,14,157,120,250,211,68,210,99,6,11,147,199,67,20,140,58,231,3,111,60,231,144,49,159,173,0,70,98,182,39,253,85,186,129,159,238,3,207,211,0,
+247,245,236,115,235,20,145,192,191,118,24,137,233,144,35,200,193,30,160,131,238,58,247,227,173,90,243,36,35,13,5,206,15,92,219,206,167,174,48,9,153,48,63,159,60,114,69,41,7,160,130,228,14,50,76,47,156,
+243,193,63,107,7,4,31,113,207,95,64,12,207,45,15,30,74,149,234,9,91,97,144,51,140,147,200,239,212,142,163,20,166,218,6,201,107,101,24,232,85,225,29,114,122,2,127,51,219,60,119,171,238,172,220,52,82,176,
+62,177,149,233,236,47,198,71,224,63,44,97,158,89,28,8,152,231,131,149,148,14,115,217,111,128,246,206,71,191,184,6,121,183,136,30,33,57,237,135,136,144,127,5,32,240,120,233,223,175,6,152,84,169,249,97,
+193,24,206,74,245,29,242,19,158,135,35,128,9,233,235,121,162,97,202,219,103,131,184,110,184,3,61,120,197,241,228,241,198,59,147,130,122,194,81,178,51,107,208,245,243,39,32,117,232,77,216,231,156,103,63,
+65,64,16,252,220,254,235,129,206,3,50,168,233,147,145,24,252,112,122,227,142,41,164,150,228,196,58,250,150,206,73,255,0,103,129,144,122,126,21,107,99,113,251,148,66,123,155,137,179,193,61,141,208,247,
+193,207,63,134,11,124,176,72,38,52,246,253,228,204,113,211,171,95,112,49,200,24,244,28,30,104,2,185,100,199,40,73,3,31,47,108,113,146,54,103,57,237,199,174,121,164,14,131,172,50,176,29,248,28,103,3,131,
+22,58,228,156,240,121,21,57,81,129,196,99,220,51,142,188,103,39,81,95,97,216,245,228,227,21,3,244,32,24,207,161,50,201,145,215,157,191,218,13,234,58,143,234,72,2,121,177,241,155,121,71,98,70,208,62,160,
+20,25,235,235,208,30,121,165,243,97,25,204,108,185,245,79,195,177,224,99,185,60,231,30,149,1,39,60,74,128,96,19,251,201,134,125,58,94,96,15,207,211,174,77,32,4,245,124,245,63,44,215,63,159,252,124,243,
+238,115,200,227,189,0,76,110,173,148,243,17,39,35,162,47,60,96,28,146,72,29,65,231,252,75,205,229,166,0,54,239,159,81,229,126,184,111,233,249,244,168,88,176,7,44,221,249,243,166,224,243,198,13,215,29,
+137,235,140,116,197,52,51,19,159,49,184,232,55,202,122,159,123,131,249,114,14,113,158,77,0,61,175,180,254,134,216,245,255,0,99,241,231,112,224,246,237,143,165,49,174,116,242,120,181,7,140,242,87,167,167,
+18,158,252,118,25,169,3,58,242,178,184,235,213,229,4,116,238,183,32,250,31,65,207,52,166,71,201,38,121,135,76,225,231,61,62,183,25,0,254,99,174,123,80,4,6,123,14,246,171,207,83,149,95,110,251,179,198,
+120,207,225,211,12,105,237,58,173,160,227,140,15,44,130,48,123,238,83,142,189,121,24,200,235,86,12,146,18,127,125,55,94,190,108,131,175,61,60,198,199,227,252,232,243,15,241,77,40,62,191,106,148,115,131,
+147,195,115,233,156,30,48,50,6,48,1,80,221,91,103,31,217,241,18,121,7,114,1,199,170,249,185,7,57,232,79,63,92,208,39,135,175,216,35,92,118,44,112,122,112,2,203,212,100,100,12,231,158,245,160,132,255,0,
+207,73,91,161,27,174,174,8,244,29,115,142,115,250,99,131,83,239,56,24,103,30,184,184,156,254,91,148,129,239,215,32,251,80,6,64,154,19,255,0,46,8,115,158,3,73,206,127,217,221,199,242,36,253,72,77,208,158,
+154,123,46,122,225,88,131,206,122,150,61,71,76,17,199,3,189,106,153,152,119,152,247,255,0,95,32,199,78,132,192,114,0,35,219,215,175,13,243,151,175,239,3,118,34,80,113,239,197,184,231,223,57,244,231,20,
+1,151,136,65,226,208,228,242,113,19,145,233,234,199,169,231,220,143,90,56,228,45,172,131,159,224,130,92,231,60,103,229,3,24,224,158,123,14,249,173,95,60,15,152,180,195,129,130,206,71,175,115,109,198,125,
+115,140,30,71,83,76,55,4,243,230,182,9,28,22,45,143,174,109,176,113,237,199,94,57,228,3,60,150,7,2,11,128,122,100,219,74,71,28,127,207,23,7,182,70,112,8,252,40,243,24,28,249,82,246,193,22,236,79,115,200,
+22,192,227,61,72,60,125,79,23,204,171,212,202,190,156,149,4,246,227,22,216,32,119,201,246,207,164,123,212,242,39,193,3,174,246,39,129,232,44,241,131,207,114,122,99,29,128,43,9,91,166,201,129,244,123,121,
+87,30,227,17,1,192,28,241,233,235,194,227,143,191,50,231,176,73,134,63,15,36,1,215,161,35,57,234,65,57,152,203,216,93,63,82,1,14,231,147,159,91,96,15,32,246,244,207,52,198,154,66,48,110,166,247,192,103,
+201,207,95,248,244,56,201,231,3,62,244,0,171,180,224,25,167,56,206,67,23,199,92,244,48,158,188,116,231,61,71,7,46,27,0,199,153,54,59,102,71,3,131,198,71,150,184,31,231,61,234,185,222,126,99,123,113,199,
+98,6,1,199,81,155,64,71,92,1,144,123,82,225,136,193,185,151,35,3,39,31,64,64,251,63,7,3,61,128,206,1,6,128,45,6,11,200,149,135,78,90,230,85,60,246,249,99,36,254,29,177,78,47,140,109,145,242,115,156,94,
+92,144,113,159,250,103,156,227,159,108,131,142,152,168,81,199,75,201,114,71,114,0,28,245,249,98,207,78,217,244,166,152,165,60,125,189,250,18,78,244,7,255,0,69,6,199,110,184,252,58,0,92,221,158,178,176,
+7,128,14,161,120,61,51,255,0,44,219,129,223,62,185,3,25,192,74,99,170,48,4,124,195,81,212,51,201,237,182,53,228,96,147,140,100,123,231,52,254,200,248,25,191,144,30,196,73,31,113,144,115,229,158,57,206,
+70,57,232,71,116,54,67,57,254,210,144,19,219,204,0,156,255,0,219,12,122,119,227,24,24,228,16,11,120,29,149,134,1,193,254,209,213,59,245,198,31,29,56,60,14,220,241,79,10,127,132,76,122,96,46,167,170,130,
+123,228,18,27,216,114,7,81,140,117,170,233,104,163,134,188,44,14,58,170,190,121,228,15,146,62,157,201,56,247,226,165,22,112,49,56,157,79,76,255,0,170,4,158,157,60,210,120,30,221,207,98,8,0,152,9,71,0,
+92,224,244,255,0,137,150,162,221,250,0,87,4,103,35,161,199,35,142,148,242,100,219,194,78,72,228,230,250,251,232,65,249,0,227,220,103,25,236,106,17,99,7,79,54,35,212,140,20,39,35,253,230,192,232,57,199,
+167,122,79,178,192,188,153,162,7,61,11,91,227,174,122,134,7,183,79,115,211,165,0,59,50,19,131,28,224,116,56,212,111,135,61,78,6,194,87,24,206,50,115,233,138,97,50,17,140,220,116,227,23,215,221,58,158,
+131,167,185,207,76,158,69,59,236,208,158,60,248,126,162,72,70,71,169,0,231,29,15,94,157,243,193,67,5,191,252,247,182,207,95,154,72,120,198,15,33,88,103,212,28,158,156,129,64,12,204,131,36,45,209,207,115,
+123,122,120,228,255,0,26,228,117,252,249,205,72,29,251,173,207,62,151,247,36,116,192,60,186,251,241,199,167,213,4,54,227,31,191,131,140,100,172,145,231,4,245,1,92,147,142,59,158,157,177,131,47,238,7,73,
+151,3,36,112,184,206,79,36,134,62,227,175,191,61,72,4,127,49,60,172,170,7,67,246,185,72,24,237,150,148,231,3,191,235,206,11,246,38,6,239,52,245,193,23,44,120,198,114,51,187,31,143,80,61,5,47,152,160,140,
+50,146,71,76,174,120,227,254,122,100,14,57,59,113,250,83,252,197,36,98,85,83,158,161,145,113,215,156,151,61,59,31,94,64,52,0,192,177,142,76,114,63,161,50,19,206,121,227,28,245,57,227,215,158,185,81,229,
+142,168,65,25,200,101,207,35,35,143,151,140,231,144,120,30,221,4,155,152,228,11,143,195,204,140,231,208,96,163,14,61,61,243,198,105,204,179,55,220,152,243,208,175,217,198,65,235,143,221,12,247,201,245,
+205,0,71,251,163,144,20,47,56,251,169,158,121,57,207,160,231,167,39,241,169,23,201,61,101,81,142,118,149,128,147,215,251,204,9,28,118,56,244,234,77,53,96,156,143,188,92,30,8,45,15,25,24,236,170,50,65,
+25,25,224,18,125,105,226,214,98,126,97,40,227,174,33,57,35,167,25,3,28,96,14,40,1,9,67,156,121,108,7,92,199,106,185,250,157,216,234,122,231,39,211,35,52,5,136,140,59,64,131,160,199,216,243,201,228,103,
+120,246,232,123,241,205,61,109,100,200,7,126,222,185,40,157,51,193,249,50,56,207,175,78,49,142,105,255,0,102,24,28,183,57,234,137,140,112,15,249,201,239,129,205,0,65,229,192,70,85,225,98,114,51,155,92,
+103,140,156,130,64,246,247,201,167,168,183,92,146,83,61,56,146,212,0,126,132,143,78,128,154,121,179,140,158,74,143,79,149,71,35,208,231,159,126,231,142,113,79,91,40,136,249,139,131,254,203,70,57,227,166,
+71,24,250,227,240,228,128,66,69,191,103,219,206,71,239,44,189,240,67,111,221,211,219,240,239,65,138,51,210,224,15,67,231,218,1,233,129,251,192,63,15,173,76,214,176,99,147,41,35,174,26,50,1,227,140,142,
+79,242,227,218,160,54,246,99,37,150,64,115,201,220,50,122,118,243,6,122,100,18,7,215,145,64,3,66,0,199,218,147,166,127,215,218,103,175,3,253,120,253,1,61,127,8,60,174,114,110,148,245,233,115,22,73,231,
+35,43,62,62,185,3,191,6,167,217,96,189,76,199,31,221,44,1,199,57,249,156,18,71,160,0,116,247,166,249,154,120,254,41,198,79,160,57,62,159,124,147,129,248,113,64,17,249,92,127,172,39,24,31,44,217,63,134,
+217,121,25,192,224,14,157,49,72,35,97,156,180,156,131,255,0,47,56,56,57,207,6,80,78,79,168,207,83,214,172,137,116,246,227,204,185,224,96,5,221,156,117,63,42,175,35,60,253,239,254,178,239,178,232,102,186,
+0,241,195,200,189,142,70,7,25,206,1,36,254,157,0,34,8,20,114,151,13,198,70,36,7,182,112,14,243,198,115,253,61,227,99,140,131,21,215,94,243,54,48,114,65,0,96,115,215,250,158,42,83,37,137,31,235,46,183,
+125,119,12,246,25,63,134,114,125,127,0,201,167,128,63,121,114,14,127,218,3,3,30,132,231,240,25,234,59,208,4,91,80,146,68,87,3,212,249,132,140,251,2,141,206,125,185,4,96,12,230,144,162,174,120,152,228,
+228,238,243,121,62,185,88,199,227,142,131,167,57,167,27,141,48,12,51,92,49,206,62,97,38,7,81,215,112,61,51,156,142,221,115,77,243,180,146,127,229,224,17,131,193,152,117,245,39,175,61,248,233,219,145,64,
+13,223,26,142,81,184,32,147,190,224,112,115,254,210,116,231,182,113,216,140,226,51,45,190,112,209,55,60,231,125,193,60,245,200,102,32,122,31,148,158,190,198,172,180,214,10,1,73,174,87,160,200,103,62,227,
+170,122,122,96,116,239,154,140,205,11,96,9,110,72,238,9,61,59,0,74,113,248,126,70,128,25,190,200,3,152,100,36,117,201,149,115,236,73,70,198,120,233,143,92,224,138,70,54,199,24,182,32,158,159,191,144,30,
+122,228,4,3,249,1,223,57,56,176,134,3,247,166,152,19,212,22,5,120,244,249,51,207,167,56,245,235,82,3,106,114,90,103,56,56,35,44,65,235,156,133,35,244,57,62,158,160,20,54,192,50,13,175,184,2,89,88,227,
+35,166,216,179,158,122,145,143,229,77,2,216,100,125,149,135,166,101,152,28,158,152,11,16,57,244,228,227,190,107,64,201,98,1,24,102,247,11,39,7,223,57,231,232,79,29,206,105,164,217,158,2,62,65,231,11,180,
+14,190,138,115,219,242,193,193,230,128,51,246,196,114,86,6,231,60,137,38,207,28,158,164,127,232,60,228,96,142,237,42,157,60,163,223,248,174,9,199,184,223,142,199,140,254,125,43,65,214,216,125,196,159,
+158,184,66,203,233,206,98,35,29,58,245,7,183,74,112,138,6,3,10,192,145,215,203,101,198,51,142,68,36,231,35,175,122,0,206,80,49,143,179,231,131,130,30,232,28,99,177,19,227,220,96,115,147,129,72,67,158,
+150,210,99,159,186,247,44,112,58,146,76,135,131,211,36,31,92,117,206,143,217,215,39,106,72,217,227,56,126,221,240,34,201,244,235,199,62,152,45,107,39,36,22,129,241,234,200,227,61,186,236,228,253,48,61,
+104,3,56,245,192,130,224,116,3,6,113,128,58,240,87,61,186,243,208,82,237,147,248,45,166,99,234,100,185,7,7,140,99,103,183,63,135,28,214,162,216,33,95,154,45,163,30,147,100,250,242,35,199,29,143,56,166,
+182,159,23,98,57,235,145,114,121,199,170,199,235,156,28,126,93,192,50,136,144,112,209,78,185,28,225,110,79,25,245,42,61,123,243,215,173,38,112,14,67,247,225,163,185,39,128,1,56,61,15,110,122,123,118,209,
+251,4,99,59,65,233,131,255,0,31,68,100,255,0,219,6,199,211,175,127,114,195,167,18,15,206,170,185,233,254,144,51,249,91,122,254,29,40,3,59,112,96,112,19,211,230,142,108,241,216,228,28,231,3,167,61,134,
+105,185,200,251,176,227,61,124,187,140,244,199,79,41,250,127,187,158,157,71,21,162,214,0,100,9,1,110,231,253,35,216,242,13,171,99,159,165,2,194,65,210,69,35,208,181,194,131,248,11,92,117,239,158,9,227,
+174,40,3,55,203,95,189,139,112,112,58,35,2,114,61,94,207,158,158,164,19,206,5,70,232,193,78,99,128,142,79,10,190,167,214,216,99,156,14,135,36,227,158,250,141,103,42,227,230,235,145,195,221,21,245,224,
+11,126,114,62,158,249,168,254,206,235,156,176,199,7,159,181,146,71,175,48,96,227,146,121,245,235,220,3,48,42,224,110,134,28,228,244,17,3,201,193,201,54,192,254,121,28,30,148,184,28,5,183,182,97,232,76,
+100,245,206,73,16,46,115,129,158,49,235,198,42,217,132,142,11,168,30,191,233,96,140,250,5,136,156,251,14,180,211,8,239,34,227,39,130,183,231,241,207,147,142,79,63,253,122,0,175,180,142,60,171,52,239,141,
+232,15,95,77,131,220,130,71,160,28,115,72,6,122,11,81,216,143,48,46,49,215,143,47,7,145,156,15,254,184,148,164,105,200,104,241,211,152,239,201,62,220,70,51,249,96,117,0,117,45,62,95,64,201,142,231,203,
+190,232,61,204,127,136,25,3,220,244,32,17,60,101,176,2,192,59,2,174,164,144,112,123,196,123,231,146,56,233,206,105,158,65,227,44,128,15,71,76,245,244,242,0,235,159,186,121,24,39,24,20,226,45,192,249,229,
+112,49,216,94,227,159,118,95,161,35,7,191,74,96,146,215,160,148,118,251,194,113,211,212,128,57,245,56,201,232,73,226,128,29,228,244,196,206,0,35,248,225,3,168,39,33,163,4,100,117,227,245,167,5,97,202,
+201,130,50,120,33,135,175,59,29,9,234,120,206,126,153,230,23,154,212,140,27,128,59,140,61,198,114,63,28,1,207,32,16,61,185,168,188,251,51,129,246,196,7,142,178,207,223,254,2,216,252,251,158,104,2,254,
+227,252,114,145,142,227,127,7,60,116,145,135,94,189,122,253,69,53,142,121,243,200,237,247,38,31,94,141,200,227,39,159,126,153,170,134,107,108,16,47,33,206,59,76,217,24,237,143,47,60,31,66,115,200,199,
+60,195,231,71,156,11,184,72,28,228,75,41,3,128,121,38,3,147,215,57,56,24,32,15,80,11,172,35,39,6,228,15,64,22,97,156,246,4,158,79,3,128,7,215,181,70,201,110,6,13,214,113,131,183,50,113,159,66,164,19,250,
+245,198,79,53,92,76,131,254,94,163,35,61,165,39,241,32,91,147,215,36,228,100,231,138,97,145,91,173,200,35,177,18,191,175,56,197,160,206,121,244,247,205,0,74,99,180,35,230,186,111,76,31,56,103,129,207,
+60,245,231,142,1,235,198,5,70,99,178,25,197,192,232,126,249,151,215,160,37,79,78,248,28,241,239,76,37,14,115,114,20,99,175,158,235,140,103,39,38,212,103,233,159,212,212,101,226,201,196,234,121,227,116,
+228,158,123,228,91,251,227,190,125,78,69,0,76,69,160,199,250,68,127,240,31,63,174,115,238,115,140,246,201,99,146,59,24,157,173,207,13,49,97,142,57,185,207,185,226,38,3,215,156,115,143,76,210,51,144,48,
+102,140,103,254,155,57,207,79,250,103,128,125,6,209,193,227,147,204,59,67,28,135,70,39,131,146,228,17,245,48,96,156,12,228,99,38,128,6,54,57,255,0,88,65,60,16,166,96,114,59,228,192,78,57,57,206,49,156,
+119,53,3,37,137,60,72,115,131,252,83,28,17,223,31,103,61,176,122,251,213,175,36,183,240,196,64,239,229,187,116,25,231,108,0,30,184,245,61,55,122,35,89,140,228,172,10,122,146,97,155,129,239,136,240,48,
+9,231,190,123,244,160,10,37,109,185,196,169,219,25,105,135,211,24,140,12,125,113,248,83,72,132,125,217,151,219,231,155,241,227,96,198,62,135,147,245,173,1,109,25,31,52,150,227,0,231,247,77,211,234,97,
+111,243,156,241,205,48,219,65,147,153,98,35,174,68,123,64,199,184,180,29,121,192,201,31,128,160,12,210,209,142,60,244,201,206,70,233,59,127,188,164,147,236,6,56,0,240,106,54,101,29,37,137,191,224,100,
+113,199,94,23,250,245,252,107,75,236,240,99,153,32,200,206,114,200,9,24,200,255,0,150,10,216,227,176,238,6,59,84,111,4,56,251,208,31,171,196,79,174,63,212,147,199,161,233,211,147,64,25,161,212,145,151,
+83,237,184,28,247,31,197,198,1,63,79,206,152,229,120,218,92,158,223,188,32,114,51,198,211,144,115,254,115,87,204,17,156,101,225,3,161,198,207,195,56,182,56,238,70,11,30,184,25,168,141,180,68,240,99,61,
+192,93,139,158,114,51,155,92,118,193,199,36,250,231,144,10,7,24,193,101,206,120,223,43,156,147,235,243,156,119,244,235,249,66,202,239,247,101,133,127,221,121,243,235,252,51,46,115,211,31,169,34,181,13,
+180,96,241,176,99,167,206,188,243,216,139,124,126,60,231,233,81,27,104,73,251,227,175,105,84,117,29,63,213,14,221,136,160,12,195,246,129,156,73,27,142,248,107,133,29,125,4,167,7,147,206,65,61,42,34,101,
+193,220,16,228,227,114,153,219,61,207,222,221,156,231,25,227,140,113,210,180,154,218,35,140,51,100,15,225,158,62,57,235,204,71,159,76,99,169,200,233,80,53,148,68,147,186,92,243,134,243,225,4,142,231,112,
+136,18,58,96,103,184,198,104,3,48,161,96,67,241,206,115,229,185,224,244,231,96,56,207,32,128,70,79,166,5,70,98,56,192,81,147,128,113,19,103,215,248,182,241,198,114,49,158,252,86,147,89,71,211,124,157,
+79,222,185,140,140,115,219,96,7,63,137,29,62,145,27,24,73,251,242,103,217,163,36,227,184,33,14,62,131,31,65,64,25,173,11,231,1,27,223,247,76,125,200,224,176,29,127,46,221,170,187,193,33,36,225,184,255,
+0,166,50,96,99,140,140,1,129,207,183,83,144,15,3,99,236,17,129,196,204,48,114,1,88,219,158,131,147,23,183,66,73,235,140,156,228,251,1,57,34,81,211,171,164,56,3,62,133,20,12,103,184,244,199,0,138,0,231,
+204,114,41,60,198,122,28,181,188,167,24,61,14,91,3,35,211,191,110,105,12,69,198,11,70,167,63,123,236,228,113,244,201,32,117,199,29,125,69,111,157,57,243,147,50,30,216,219,111,143,196,30,59,123,117,3,173,
+66,246,46,78,76,169,233,194,68,160,227,156,100,241,252,207,74,0,194,54,141,207,239,143,113,129,0,28,122,228,130,113,207,67,206,49,154,107,91,3,130,100,108,122,152,134,125,58,108,0,125,125,113,91,102,199,
+185,100,30,152,17,49,200,232,50,35,56,56,231,36,117,237,76,251,43,140,109,217,215,169,76,231,32,241,133,136,243,237,193,246,245,0,197,54,107,159,245,135,158,114,98,141,65,7,25,28,40,39,39,159,97,249,211,
+13,159,202,65,114,196,117,33,227,7,161,199,71,30,196,142,195,245,220,104,220,28,2,153,60,255,0,170,127,76,28,126,228,158,58,31,94,166,152,193,199,252,179,143,3,147,251,137,142,72,29,70,45,177,252,243,
+235,197,0,96,125,137,79,86,148,128,123,75,187,60,244,249,92,129,142,156,12,251,119,13,54,177,28,143,152,244,206,231,102,30,224,229,148,127,63,195,154,223,253,233,24,16,169,227,145,246,118,219,129,236,
+208,41,227,169,4,231,57,250,212,12,88,19,148,140,156,30,145,186,15,114,121,92,123,113,199,110,58,128,98,155,68,7,161,199,61,70,236,103,208,153,8,3,143,229,235,77,107,56,78,126,85,252,124,161,143,79,188,
+217,227,158,157,241,140,103,141,98,64,235,26,17,233,190,65,207,168,251,217,63,228,250,212,12,202,62,237,186,119,231,124,199,63,147,15,161,224,119,235,64,25,141,97,14,50,99,7,3,174,228,231,30,152,157,127,
+30,6,106,51,101,110,51,254,139,147,255,0,93,34,25,199,0,243,120,61,51,208,246,231,21,160,101,95,238,0,87,56,195,202,23,63,174,71,174,15,111,168,166,25,31,57,11,199,214,127,199,168,29,51,248,118,237,64,
+25,143,105,17,251,182,176,174,51,247,165,143,35,255,0,39,120,239,211,212,144,106,7,180,136,2,4,22,225,186,96,60,103,156,244,56,190,60,143,94,163,145,207,67,172,194,86,234,48,14,71,18,77,207,24,227,32,
+115,142,113,200,245,207,0,213,120,166,207,221,36,96,114,94,98,125,200,218,248,246,235,206,40,3,33,237,148,28,139,120,144,115,134,30,81,28,241,158,110,72,227,208,14,226,155,228,122,65,106,217,193,203,67,
+0,235,142,237,49,25,199,211,166,13,105,52,51,159,186,204,15,247,75,93,245,224,142,183,10,127,79,126,164,211,90,222,231,130,31,103,92,135,154,241,127,149,211,122,100,99,177,233,145,64,25,166,219,63,242,
+194,17,199,85,123,85,31,151,218,49,199,29,120,233,201,235,81,27,107,112,126,123,104,201,28,159,223,217,128,63,15,180,100,125,8,60,227,168,206,52,54,92,103,137,114,127,217,184,187,101,25,231,4,23,114,122,
+30,131,3,161,60,210,24,46,184,195,74,51,212,135,191,237,233,177,72,207,227,142,188,158,148,1,152,97,183,4,98,213,70,58,109,188,181,29,61,49,113,203,28,142,152,250,118,168,153,33,255,0,159,89,187,158,47,
+45,7,94,1,5,221,177,215,156,238,63,152,206,177,134,239,3,47,48,28,127,14,165,223,185,249,91,147,236,163,131,159,122,140,219,93,62,6,231,60,247,26,153,25,250,8,185,253,126,148,1,144,225,49,242,193,40,56,
+25,6,239,79,110,252,158,7,24,233,212,231,183,113,81,40,92,255,0,170,184,29,126,228,182,0,28,103,28,227,255,0,215,223,25,57,214,123,41,201,59,153,121,199,240,106,89,39,158,198,221,185,35,219,241,53,93,
+172,102,7,146,163,190,76,90,129,207,61,64,107,50,61,123,231,60,103,158,0,51,219,110,127,212,93,14,120,253,253,128,7,61,15,92,14,227,212,243,192,168,200,139,248,188,245,24,25,205,197,142,122,227,31,44,
+224,244,245,245,252,70,131,89,220,0,7,152,128,231,140,67,122,167,156,158,166,203,215,212,255,0,90,97,178,185,60,153,65,231,167,239,212,140,31,238,181,137,3,241,207,63,137,0,20,115,8,25,30,120,206,78,86,
+123,50,6,121,206,5,192,199,7,140,103,53,27,24,251,52,248,35,248,133,163,227,131,199,23,125,248,201,199,95,122,208,54,83,3,146,224,147,206,54,51,31,169,197,128,63,67,145,142,71,35,154,13,132,206,0,87,110,
+49,156,67,33,218,122,227,229,181,231,211,160,227,61,40,3,52,2,1,219,191,24,28,152,237,143,61,200,2,240,143,65,248,117,235,65,89,91,163,202,64,198,7,217,173,155,243,111,180,146,121,207,3,235,223,139,70,
+198,96,120,151,7,57,203,69,40,231,174,49,246,112,62,159,214,152,214,115,1,131,48,29,112,74,56,39,142,167,247,68,99,212,129,236,14,121,160,10,126,92,128,156,187,100,245,6,210,216,116,245,255,0,73,4,145,
+219,242,29,40,217,140,157,199,39,175,250,36,36,247,228,230,236,113,143,126,65,230,172,155,43,158,72,184,206,61,152,142,48,6,55,42,245,207,82,0,207,166,42,63,178,93,242,13,192,35,57,32,128,14,50,1,25,15,
+254,31,153,228,2,18,139,143,154,92,14,184,54,144,99,166,122,125,191,28,231,131,145,207,227,136,118,196,132,55,156,84,240,0,75,40,148,156,247,32,94,56,35,166,57,7,174,7,53,104,218,77,201,107,132,25,232,
+60,198,228,28,247,19,231,61,62,132,243,218,155,228,184,200,50,6,25,224,249,178,158,49,211,2,86,227,158,57,32,245,160,10,219,224,7,253,99,19,147,214,202,53,56,193,228,230,114,57,238,63,35,65,146,3,252,
+67,129,142,109,162,83,143,112,39,207,30,160,113,86,60,142,115,136,216,128,57,38,225,177,223,180,131,159,81,245,28,246,107,64,221,22,40,48,113,193,123,197,207,169,35,127,36,125,56,237,238,1,76,189,167,
+241,22,238,114,34,183,237,207,114,221,51,140,30,115,159,122,66,246,60,141,238,58,140,249,118,163,191,168,136,156,245,228,17,211,3,21,100,218,177,57,54,113,63,98,124,235,178,0,227,209,48,57,231,4,147,211,
+240,60,133,25,197,132,35,7,7,51,221,30,113,145,199,144,220,227,168,4,14,164,119,160,12,246,54,35,7,206,144,3,158,208,175,30,191,234,122,99,167,36,158,125,105,11,89,159,187,59,231,24,206,16,224,15,247,
+99,25,255,0,19,158,122,85,211,111,27,117,176,141,75,30,51,44,231,161,24,235,8,199,94,51,253,56,140,91,70,56,54,80,156,246,221,112,217,62,228,41,232,121,233,130,122,119,160,10,46,208,12,129,112,248,60,
+100,195,25,200,7,129,147,192,61,243,140,245,246,201,87,77,186,145,255,0,30,80,147,158,194,232,227,175,111,44,247,207,112,48,125,104,160,15,212,82,179,3,247,34,62,184,142,219,223,57,13,111,212,123,140,
+254,4,210,19,46,57,88,128,247,142,219,129,207,164,25,28,119,192,235,249,220,49,168,7,16,145,199,123,183,39,243,220,189,57,235,142,228,130,49,72,68,42,62,112,1,207,252,253,72,220,247,227,39,191,78,79,90,
+0,207,98,79,24,137,72,201,63,187,136,127,232,48,1,216,227,242,237,138,128,149,200,203,68,49,220,162,2,79,56,193,242,201,199,124,251,125,43,76,201,17,63,197,232,74,201,112,9,252,75,103,24,224,224,241,193,
+207,34,144,136,155,37,120,224,112,210,92,28,241,207,252,181,81,245,7,161,60,119,52,1,154,66,99,59,147,140,255,0,203,49,235,211,34,32,125,123,142,157,9,163,110,58,121,68,30,132,198,199,215,183,150,49,223,
+169,207,65,222,180,2,197,201,50,34,253,94,225,139,125,64,155,24,61,120,3,158,6,69,70,241,196,121,18,238,193,231,2,228,147,234,1,50,96,14,6,57,239,249,128,83,216,72,35,17,122,28,9,63,80,2,142,164,17,212,
+231,166,104,40,202,115,176,96,119,30,97,31,145,101,246,231,24,235,232,42,199,149,22,6,119,156,100,2,13,198,64,231,4,145,33,198,79,208,156,231,218,147,202,135,144,75,125,127,210,78,51,244,115,142,131,31,
+174,69,0,68,15,64,23,129,215,135,24,231,211,205,29,121,238,123,140,250,56,227,35,40,152,60,100,150,62,248,255,0,94,0,252,78,51,235,221,166,218,49,206,246,192,60,12,220,15,230,231,7,240,60,122,211,76,49,
+118,147,31,239,52,227,62,128,229,143,7,35,60,115,239,206,0,36,49,196,112,118,15,166,227,199,36,158,76,199,60,145,143,199,52,190,82,3,187,231,7,60,97,155,233,218,78,1,254,19,131,214,170,152,16,130,17,227,
+25,198,8,243,243,158,253,6,72,29,122,254,28,154,97,130,76,224,76,167,31,237,78,163,24,207,28,28,122,147,207,83,214,128,52,124,152,216,103,247,128,158,222,108,192,158,255,0,194,248,237,211,183,126,249,
+97,183,80,73,193,245,59,154,236,241,219,5,72,57,252,189,114,56,172,239,45,198,71,154,184,29,132,175,145,235,193,143,146,125,199,56,239,142,24,209,30,210,176,227,238,254,236,227,254,251,136,116,56,200,
+227,242,0,208,6,137,129,113,146,135,215,33,239,8,63,249,16,31,192,231,241,197,35,91,43,245,140,227,29,231,187,3,4,250,121,131,147,158,9,7,60,245,172,163,28,164,100,49,227,143,185,6,126,188,160,199,97,
+145,215,249,140,178,1,204,152,60,227,117,188,7,7,161,228,196,70,56,227,159,92,96,208,6,144,179,139,32,96,39,92,102,123,174,157,135,15,156,147,215,143,160,226,156,214,72,48,62,92,12,140,139,171,194,58,
+227,63,235,215,130,51,238,122,158,43,20,172,164,253,248,216,103,59,141,173,175,62,152,253,222,71,79,81,223,30,236,100,152,253,231,135,142,1,107,120,6,63,239,156,158,125,249,239,183,161,160,13,159,178,
+194,184,220,78,114,15,203,113,121,145,235,201,186,234,64,3,39,175,82,58,10,137,173,163,236,100,35,208,220,94,156,250,96,173,208,235,200,60,231,131,138,199,195,41,193,150,220,113,222,205,9,3,142,114,1,
+193,244,39,130,50,125,105,27,104,4,22,82,9,36,21,180,64,188,227,24,223,24,7,169,238,123,227,173,0,106,155,117,35,133,148,227,39,139,155,236,228,116,60,221,158,131,3,4,103,158,162,162,123,66,65,37,37,32,
+131,242,253,174,228,18,125,247,93,18,79,226,58,231,29,43,52,136,203,16,72,206,58,152,109,20,30,125,30,49,131,212,114,125,113,214,154,99,139,239,121,182,227,168,33,173,172,139,14,195,133,80,15,39,29,15,
+74,0,208,251,30,7,16,202,114,121,2,246,113,219,175,55,99,145,76,54,221,182,206,167,142,183,82,17,223,32,159,182,55,3,212,253,13,103,18,160,229,90,208,142,196,219,218,46,58,250,2,121,244,199,28,244,197,
+59,122,255,0,211,1,215,5,45,226,192,35,158,70,194,125,248,39,24,192,227,24,0,182,214,216,201,223,32,39,36,134,186,118,0,224,231,35,237,57,25,231,215,223,57,230,51,3,156,126,244,129,212,127,165,48,206,
+48,114,127,126,127,151,224,42,177,149,177,202,196,79,0,31,38,35,215,166,6,206,121,61,51,244,61,169,26,71,60,172,112,0,48,50,97,85,245,255,0,103,25,245,237,223,138,0,123,219,130,112,93,135,253,190,140,
+231,159,82,71,3,177,60,119,234,42,3,106,188,229,216,251,155,166,201,207,96,71,25,207,124,143,207,52,239,53,199,13,20,4,246,251,128,142,56,7,247,36,1,142,49,234,114,15,122,103,152,231,149,183,132,143,111,
+35,159,82,9,136,117,7,255,0,173,64,14,91,85,228,228,28,96,145,246,135,36,14,135,4,130,6,71,57,24,61,122,118,67,0,207,222,65,140,17,185,228,111,195,229,139,25,63,225,216,230,163,219,116,73,41,105,9,4,117,
+97,8,7,241,218,51,140,227,211,25,239,70,203,178,113,246,43,18,64,227,33,88,147,207,80,163,61,71,96,120,30,220,0,59,201,143,60,189,190,78,122,71,112,127,19,136,219,244,234,41,172,128,12,9,109,200,247,73,
+135,94,185,204,57,31,143,211,218,143,46,240,115,246,27,35,207,37,99,124,114,120,3,106,1,192,200,231,234,79,6,131,29,225,207,250,21,160,237,144,146,130,7,211,103,95,203,219,214,128,35,43,30,126,253,177,
+60,158,76,200,15,95,72,15,231,145,207,181,48,237,28,98,217,185,228,41,157,143,94,188,66,185,234,125,61,59,212,194,222,243,254,125,173,87,159,226,18,109,35,62,187,15,25,247,61,59,116,9,246,75,131,247,162,
+211,131,17,156,121,178,47,175,170,119,235,215,211,234,64,34,2,1,247,162,70,35,251,162,98,9,199,253,114,231,158,158,184,35,61,104,243,96,28,11,120,192,60,28,165,193,61,58,130,20,28,117,30,156,28,15,73,
+62,201,115,201,198,154,184,193,192,184,70,231,142,197,115,145,239,200,244,227,33,13,164,199,7,117,135,251,192,43,119,30,139,147,207,25,25,207,67,193,20,0,121,150,195,173,188,57,30,130,229,57,199,66,90,
+32,15,166,1,198,122,230,145,164,128,129,251,184,215,4,241,153,192,28,146,14,74,117,4,30,160,12,100,99,166,28,45,100,29,90,203,230,224,17,25,0,246,224,133,250,247,252,135,52,225,104,58,52,214,131,62,131,
+241,32,244,235,232,59,14,180,1,92,201,108,1,225,6,123,137,101,83,244,230,60,123,240,70,125,6,5,48,53,171,28,133,124,247,197,219,40,36,96,231,152,240,127,14,114,122,213,198,180,140,114,102,128,242,15,202,
+31,140,103,220,227,223,167,245,168,90,218,211,39,117,212,75,199,204,50,231,60,228,140,23,218,15,212,117,60,12,245,0,135,125,144,251,203,32,237,255,0,31,210,28,126,10,128,241,223,166,113,159,74,4,150,29,
+49,48,227,143,244,169,58,103,176,198,79,126,125,57,245,195,190,205,102,122,92,190,71,167,43,207,39,171,142,9,206,48,120,246,233,75,246,107,66,63,214,185,60,145,195,0,121,255,0,174,131,249,250,245,197,
+0,68,36,176,39,239,220,14,191,118,230,76,244,35,35,0,147,244,235,237,210,145,154,204,12,44,243,119,63,53,212,188,115,208,225,1,63,67,156,142,180,255,0,177,219,115,134,151,36,245,3,32,125,118,202,167,219,
+161,227,177,57,163,236,150,227,63,189,148,156,116,100,144,103,7,218,126,252,246,231,183,161,0,131,22,199,56,184,151,160,233,115,62,71,184,31,151,65,235,154,80,32,206,18,103,98,15,31,233,19,159,204,25,
+1,200,237,242,228,96,240,15,89,214,222,220,127,203,103,95,92,25,134,120,56,207,239,71,60,142,8,245,62,130,143,38,208,158,110,36,92,112,127,123,112,51,143,101,156,140,246,232,61,241,64,16,18,167,143,49,
+206,63,233,181,199,65,201,198,88,143,200,31,198,155,181,51,209,177,211,153,46,243,223,39,228,239,239,140,0,51,159,89,138,90,12,226,226,118,3,174,36,185,24,39,215,18,182,57,3,233,223,29,226,38,212,19,182,
+89,87,144,57,123,211,250,137,84,3,158,253,122,208,4,194,53,218,48,165,184,227,116,151,173,250,108,227,243,3,168,237,193,177,65,192,64,115,156,243,123,128,126,167,3,223,28,99,223,188,102,72,87,238,203,
+43,112,71,91,214,227,167,5,165,207,182,121,200,239,72,36,92,143,222,54,59,43,53,240,227,140,156,9,123,231,174,123,156,80,4,203,28,132,130,33,141,134,114,1,123,176,49,158,195,31,159,62,221,48,3,241,47,
+31,184,140,250,141,243,145,233,221,7,81,156,224,228,123,228,213,83,36,125,166,80,61,254,216,64,227,24,230,66,120,227,56,198,58,240,41,4,241,174,115,50,231,174,67,95,1,158,227,59,177,206,59,14,65,231,25,
+160,11,129,164,92,102,206,219,25,228,230,115,248,19,229,156,145,211,245,169,132,172,0,63,103,182,3,7,28,204,112,120,31,119,203,200,245,31,79,74,207,23,176,30,134,22,32,156,130,247,204,122,241,193,147,
+169,231,4,140,125,51,138,113,187,183,198,25,97,7,28,229,175,179,131,159,71,24,30,156,17,142,15,3,52,1,124,221,72,188,8,160,35,130,66,199,112,72,236,51,251,150,31,158,62,188,211,13,243,28,129,28,67,184,
+202,203,145,249,219,129,206,127,1,211,222,128,158,220,147,129,15,83,129,186,252,227,232,25,192,193,231,158,58,131,158,153,60,216,143,252,177,141,198,120,255,0,143,163,211,191,51,142,249,198,50,79,183,
+2,128,47,11,233,58,40,128,100,114,48,234,125,112,115,15,60,123,14,188,142,212,141,125,32,193,43,22,122,231,39,39,7,25,7,201,206,115,223,0,140,28,116,200,170,174,189,86,222,28,99,210,96,71,60,96,180,216,
+32,31,239,12,99,28,103,57,144,57,207,203,111,6,78,15,59,87,175,214,101,200,224,122,159,175,96,9,86,250,96,62,89,34,81,158,48,196,156,115,216,195,223,35,156,2,71,83,197,40,212,46,79,252,181,78,253,195,
+12,122,144,98,233,252,184,252,17,119,14,124,136,123,113,184,30,122,127,207,70,198,122,245,3,175,174,41,226,89,50,87,203,140,175,160,114,7,230,27,39,182,8,207,215,61,0,24,215,247,68,243,112,164,123,22,
+3,56,233,196,125,241,158,72,239,142,164,21,23,119,45,192,184,114,123,237,154,64,71,230,128,255,0,90,112,46,121,88,199,94,49,48,228,244,225,89,206,63,95,235,78,62,111,4,91,185,199,247,100,94,58,140,231,
+118,122,17,215,175,212,226,128,32,55,23,195,238,203,35,47,92,121,142,79,36,250,130,61,121,198,59,81,231,93,185,27,140,195,142,49,46,15,115,207,221,232,62,157,13,75,151,110,176,220,158,216,89,148,119,199,
+114,70,63,1,156,212,170,72,200,54,119,71,166,11,75,25,233,201,206,84,231,223,31,142,40,2,15,244,156,156,203,112,63,237,166,78,79,39,63,188,32,245,39,143,79,194,164,81,115,140,43,222,55,60,237,105,49,199,
+94,142,51,159,175,97,237,83,170,147,210,198,97,193,235,42,140,158,131,24,133,184,234,58,100,115,201,224,83,136,10,6,235,71,4,14,247,100,17,215,183,217,185,206,122,96,131,239,200,0,12,84,184,199,250,219,
+229,57,254,236,132,240,120,206,233,115,206,51,158,156,30,106,80,46,0,230,91,246,28,103,16,187,31,196,121,222,221,177,205,71,152,200,192,179,147,145,131,182,234,82,122,115,192,181,35,235,198,9,57,239,154,
+54,194,56,54,19,57,227,39,237,18,177,207,227,110,189,114,121,197,0,76,170,249,249,141,246,15,253,59,75,159,175,250,193,232,123,255,0,60,83,188,136,75,13,194,252,123,125,145,136,252,204,135,158,59,99,175,
+25,61,96,17,219,55,93,46,118,35,210,89,186,118,251,168,62,167,161,252,58,189,99,182,31,243,14,184,29,58,61,192,61,122,13,184,231,142,56,61,127,32,9,68,17,12,16,111,87,144,50,214,109,143,76,253,254,71,
+167,39,158,152,171,11,28,4,0,239,113,129,255,0,78,67,119,83,198,8,207,95,155,131,140,254,117,79,202,180,60,27,27,174,123,179,93,243,207,183,231,208,84,203,111,105,159,248,242,148,147,220,27,211,193,193,
+207,0,103,220,14,113,206,123,80,5,130,150,188,98,107,172,115,199,216,56,29,123,99,215,144,56,30,188,103,40,22,215,143,222,92,28,158,250,122,117,25,227,148,0,100,246,231,24,232,72,21,25,183,135,181,148,
+188,96,125,219,240,64,57,29,200,61,59,19,158,135,146,120,22,8,192,200,181,156,99,212,94,129,140,245,31,63,83,201,237,238,7,56,0,147,203,181,99,157,238,59,146,214,16,241,143,169,4,30,252,113,212,128,104,
+242,236,191,231,170,143,173,149,191,191,208,158,158,254,157,248,140,36,93,4,55,67,61,113,29,217,0,126,50,19,198,123,12,142,128,227,154,112,68,3,253,85,214,0,233,229,93,142,123,231,50,227,36,250,145,212,
+243,222,128,26,209,90,19,149,154,60,247,205,165,176,192,193,235,243,12,127,63,65,234,44,54,216,24,150,15,168,130,208,19,142,153,12,9,224,99,169,199,56,244,167,12,242,22,57,23,28,100,197,113,131,215,0,
+98,109,195,235,199,65,216,1,78,18,76,58,110,249,115,143,158,237,120,250,18,234,57,206,65,247,206,13,0,66,82,32,64,89,226,239,214,27,82,7,62,203,144,7,160,198,56,62,180,255,0,45,27,36,220,65,207,3,253,
+30,207,7,243,95,76,251,17,142,122,3,39,155,41,200,12,185,234,67,92,72,126,163,6,38,199,28,129,206,9,246,160,73,47,31,52,3,208,239,228,227,7,161,136,28,243,140,244,232,121,160,8,90,214,19,159,222,32,35,
+159,150,222,205,127,246,154,253,7,56,200,192,61,114,45,156,68,242,255,0,165,154,231,215,176,192,28,131,192,247,169,26,89,58,111,143,61,51,230,14,125,70,76,100,113,223,60,15,206,153,147,146,75,193,201,
+35,37,148,159,76,140,65,158,131,25,207,67,142,122,80,2,155,72,135,42,224,242,57,15,102,78,59,96,114,61,135,7,183,83,209,235,109,16,234,78,122,103,125,178,131,200,235,182,6,227,233,159,241,102,226,7,203,
+52,92,96,227,204,64,61,115,204,3,28,116,252,135,180,69,164,255,0,158,176,245,231,50,166,127,15,147,61,49,215,60,158,192,208,5,213,130,216,14,99,201,25,36,249,144,30,191,246,197,71,76,245,239,222,157,246,
+107,114,199,247,32,227,167,207,110,79,108,99,228,24,198,15,56,207,161,192,21,75,204,155,0,44,240,224,14,130,100,63,81,141,131,56,255,0,30,48,57,2,204,228,230,104,143,166,103,81,192,227,166,222,125,178,
+1,235,142,40,2,251,219,218,99,30,89,92,131,206,96,207,92,127,14,204,116,239,215,28,117,205,68,45,236,73,229,16,31,246,164,136,30,156,242,100,232,71,234,51,156,213,83,111,188,12,156,250,21,120,220,1,255,
+0,126,199,94,122,158,51,212,247,97,176,82,9,27,176,71,56,8,57,39,213,93,72,237,212,123,128,123,0,93,104,180,229,207,238,145,135,78,46,45,212,113,255,0,3,228,251,146,72,57,233,77,39,79,94,5,178,28,119,
+243,237,207,61,51,147,42,231,143,167,30,157,42,129,177,92,96,23,29,121,56,199,108,242,25,206,6,113,158,185,250,114,193,167,100,112,253,178,48,236,48,64,199,63,186,111,166,7,60,245,199,80,13,15,55,78,94,
+182,176,228,114,119,75,110,220,228,127,211,94,73,235,143,83,219,154,79,50,192,241,246,107,69,28,31,153,224,239,238,11,96,129,145,215,129,142,69,80,251,1,80,126,124,118,24,148,140,126,106,190,227,4,117,
+52,139,106,8,229,242,0,63,242,244,50,61,242,3,140,115,232,61,15,98,64,47,23,176,25,63,103,180,198,123,75,17,199,177,30,98,99,191,184,200,198,13,68,243,88,131,196,86,195,145,145,186,44,0,57,227,253,43,
+25,231,169,30,196,96,212,66,205,113,145,36,135,212,36,249,36,100,241,196,45,233,158,56,227,56,233,77,54,77,206,26,124,30,153,152,156,240,56,193,133,121,199,110,221,58,208,0,103,178,12,24,69,108,49,198,
+67,33,36,244,60,9,192,245,201,231,158,180,173,113,96,112,90,27,83,245,145,3,115,237,231,49,235,211,35,142,69,66,109,138,227,50,206,158,153,149,9,250,237,17,3,158,59,241,156,231,154,104,66,6,126,223,34,
+158,49,188,38,7,61,248,83,212,250,145,220,140,115,64,19,27,141,56,174,12,16,231,182,217,151,158,79,96,199,7,183,78,253,122,84,70,91,2,115,228,129,215,7,237,3,61,250,227,31,250,22,64,199,181,73,185,215,
+166,166,156,255,0,120,47,4,103,140,4,124,103,190,6,126,163,154,81,52,197,64,26,164,103,182,112,158,185,192,62,66,224,227,165,0,68,127,179,240,14,210,0,198,65,150,67,223,145,242,202,63,15,167,110,198,253,
+60,130,0,96,123,226,226,110,122,228,128,93,179,239,215,183,32,100,212,190,107,224,231,82,82,115,140,170,43,0,122,247,24,224,158,70,78,122,156,118,4,205,130,191,218,106,15,7,253,82,31,92,247,60,145,219,
+184,28,10,0,170,223,217,228,131,251,198,206,79,250,233,79,127,64,232,58,129,140,147,206,115,147,77,111,236,192,167,17,206,63,224,82,158,123,145,155,160,115,199,169,206,120,227,138,184,100,155,4,141,77,
+91,7,169,183,220,0,0,144,126,233,24,207,182,115,244,226,19,61,231,65,168,199,140,131,205,174,56,235,200,10,57,56,227,158,71,98,40,2,153,254,207,39,229,142,96,58,103,121,24,28,224,225,167,108,146,51,220,
+30,248,224,26,1,178,7,136,37,110,58,52,156,145,142,195,206,28,250,115,250,113,87,55,93,183,63,109,182,57,29,237,84,255,0,78,184,224,251,113,235,75,254,149,255,0,63,150,204,65,200,81,104,160,245,206,120,
+3,0,118,193,250,247,20,1,77,154,204,228,139,89,0,60,131,230,150,228,255,0,187,117,235,236,7,32,158,42,50,176,17,197,188,227,208,143,48,254,88,184,193,250,231,233,214,180,54,222,16,14,240,221,112,68,37,
+65,255,0,190,84,227,161,25,7,167,214,154,209,221,30,153,97,159,238,128,123,242,3,198,9,250,254,116,1,72,198,160,96,65,48,207,25,17,59,31,253,42,199,29,199,61,240,13,35,0,58,65,49,199,127,179,63,39,174,
+73,251,65,233,248,147,142,72,171,6,218,233,178,12,101,200,206,50,136,192,127,232,36,99,39,168,244,244,164,251,37,200,28,66,221,71,30,92,96,100,103,159,152,241,215,174,125,59,80,5,83,25,39,38,222,83,207,
+35,200,99,156,103,28,125,163,223,220,251,103,32,177,144,2,63,209,221,114,113,147,12,171,207,3,168,184,193,250,231,240,2,173,181,173,233,224,91,246,207,252,176,28,112,114,126,126,127,46,63,51,81,27,107,
+229,233,107,146,6,120,75,66,72,227,0,18,199,29,123,96,158,79,24,192,0,174,84,28,225,89,0,206,65,89,57,247,3,237,42,62,157,179,211,20,155,118,244,222,71,25,249,92,18,62,190,127,228,115,239,154,145,173,
+238,136,203,90,31,161,22,71,159,92,25,120,237,207,60,129,235,80,180,19,142,182,204,163,56,193,91,62,123,146,24,73,223,160,29,7,20,0,50,142,128,204,63,9,8,61,248,196,195,28,113,201,235,80,178,18,115,230,
+79,198,127,229,148,189,240,113,204,141,129,193,198,112,58,244,56,37,205,21,207,65,106,196,117,24,251,40,253,55,158,61,193,239,215,177,67,12,220,19,106,164,31,239,53,169,199,76,255,0,203,81,142,72,228,
+15,169,227,52,0,210,54,143,154,71,60,14,12,109,223,182,55,242,71,25,207,126,157,113,76,103,94,135,118,115,222,22,199,57,199,221,200,235,129,156,159,169,226,158,97,117,39,253,19,29,193,83,106,56,246,62,
+97,60,250,126,28,210,143,52,116,179,115,142,255,0,184,39,158,56,33,155,183,167,191,4,245,0,129,152,3,130,153,0,100,131,4,199,61,187,21,7,223,233,192,60,82,2,188,254,232,99,176,22,211,246,198,50,122,103,
+142,192,129,245,233,49,145,198,71,217,101,207,32,101,144,246,227,32,71,198,14,59,224,12,112,123,197,231,57,192,251,52,223,64,64,56,29,62,111,37,186,14,185,3,30,220,208,3,11,174,72,16,70,120,227,253,18,
+86,57,7,129,130,153,63,167,173,68,238,224,29,182,209,30,57,197,141,192,29,184,33,98,114,113,235,128,79,56,30,179,52,142,49,254,141,114,121,236,87,145,234,63,118,15,39,129,158,59,243,77,203,158,176,92,
+116,61,37,99,234,57,194,241,211,3,169,3,56,25,20,1,80,151,99,143,178,194,7,98,108,175,125,7,95,244,101,252,193,200,252,41,164,73,140,125,154,223,129,223,79,190,198,7,98,66,0,127,195,39,21,109,131,30,124,
+169,58,142,60,231,207,126,228,103,142,255,0,203,184,54,145,156,197,48,24,192,253,249,207,249,60,99,185,206,1,227,144,10,12,88,116,138,0,125,5,142,160,163,191,160,207,211,25,3,166,42,185,89,152,231,201,
+132,244,228,91,234,106,65,224,140,16,167,56,4,253,50,71,0,113,162,203,16,193,104,100,4,140,103,118,224,61,57,108,243,233,198,123,227,161,168,216,40,63,117,138,159,239,73,25,193,199,251,153,207,32,14,252,
+245,38,128,51,221,110,84,127,170,132,14,156,166,167,233,220,186,142,190,220,212,12,101,39,110,197,28,15,148,27,213,30,128,225,144,147,207,166,48,114,62,154,5,80,240,34,218,50,121,204,99,223,28,133,25,
+62,185,245,3,61,12,126,90,18,71,150,49,223,231,182,206,115,215,44,199,60,14,15,30,190,148,1,157,135,63,120,148,56,63,199,114,7,3,182,98,199,108,138,133,188,206,2,207,183,7,140,75,56,227,235,229,169,206,
+122,112,49,145,220,86,169,132,28,128,163,142,197,237,58,253,114,199,7,168,207,30,153,29,33,48,198,14,60,168,14,56,57,251,63,169,231,33,9,200,198,59,227,177,236,64,51,74,204,113,186,231,39,222,230,111,
+234,128,246,206,115,199,78,153,163,203,144,115,231,48,236,51,112,15,113,156,6,113,199,78,198,175,61,188,71,159,42,28,3,216,219,12,30,115,130,214,255,0,158,8,206,57,39,179,124,152,215,238,67,15,231,105,
+143,108,254,232,96,131,237,142,113,207,112,10,44,143,131,155,133,207,57,204,202,79,67,142,114,192,19,219,183,231,80,180,36,245,149,95,142,65,145,92,123,116,25,252,135,233,205,104,73,25,231,48,64,58,244,
+54,231,156,123,91,103,56,62,253,185,245,143,107,46,54,199,30,121,193,6,32,71,62,162,219,61,61,243,237,131,64,25,134,221,57,36,174,119,30,50,167,142,195,230,143,29,9,198,126,185,60,138,139,236,177,158,
+126,65,199,35,100,64,227,29,73,242,253,57,231,167,92,214,171,9,1,207,148,132,245,60,144,115,248,66,184,245,237,249,30,66,37,32,252,145,39,251,207,38,61,65,251,135,60,103,29,253,199,90,0,199,54,106,120,
+6,34,7,77,203,17,227,223,228,4,158,126,184,224,18,106,54,178,7,141,208,18,59,121,80,159,78,112,87,63,134,125,240,57,53,180,124,213,57,221,0,25,224,6,159,183,126,16,116,239,207,60,125,41,133,238,6,126,
+88,10,246,196,146,250,145,145,251,178,65,207,110,71,212,96,208,6,3,88,110,60,170,145,206,118,196,128,30,120,224,21,61,179,192,199,83,223,136,223,79,140,127,203,29,223,246,203,147,142,185,219,33,35,129,
+252,129,35,183,69,230,78,113,128,139,200,7,19,202,6,58,1,143,148,127,42,104,146,112,79,239,20,28,17,129,121,46,79,35,176,148,114,71,78,190,157,232,3,150,107,1,146,13,174,57,235,229,75,156,17,220,135,35,
+143,161,252,49,85,222,192,142,69,152,126,157,99,152,16,49,156,19,145,237,158,122,227,142,57,235,218,105,207,30,96,3,60,143,181,204,189,70,51,143,57,243,142,217,29,129,236,49,25,102,99,146,65,56,35,34,
+121,127,12,226,85,56,207,78,15,184,245,0,227,141,147,12,145,102,128,130,121,33,193,25,199,114,173,146,65,25,61,206,7,25,2,155,246,73,122,136,80,12,14,173,156,14,255,0,194,184,31,95,231,93,131,22,198,48,
+163,253,163,60,159,142,225,246,145,207,24,28,231,212,243,204,123,75,156,127,163,158,192,121,163,39,182,72,105,220,241,220,144,121,200,207,168,7,36,109,230,94,145,169,29,212,30,71,63,135,92,1,147,216,245,
+230,163,48,74,65,30,91,48,206,70,3,31,195,62,103,62,216,30,184,227,175,90,96,114,57,49,12,17,194,201,8,246,234,237,130,122,1,144,7,30,245,11,219,49,201,196,100,116,207,218,45,64,35,39,168,25,193,57,233,
+143,64,40,3,149,242,101,227,253,29,73,247,89,65,239,192,195,246,255,0,57,231,17,20,155,63,53,178,224,29,188,137,27,215,166,88,177,231,60,123,158,58,87,80,108,216,103,119,144,128,250,220,66,113,236,48,
+126,95,64,122,117,224,28,84,31,98,148,158,36,181,3,167,205,52,77,128,72,199,252,180,198,115,237,233,201,226,128,57,207,42,92,159,244,104,241,193,226,62,114,113,193,4,245,63,81,223,160,232,207,42,113,146,
+182,224,112,115,182,56,143,110,153,220,115,255,0,124,158,216,174,145,172,152,2,67,218,147,142,70,245,7,166,1,63,54,14,51,206,15,95,214,15,236,214,32,146,109,58,116,243,148,30,164,231,27,64,57,231,28,227,
+158,188,28,0,96,249,55,12,73,54,188,99,175,145,25,35,219,130,7,226,125,59,83,26,218,94,127,209,219,24,254,27,88,15,32,224,224,111,4,125,14,120,247,57,173,211,97,32,24,87,182,65,235,246,134,31,135,94,255,
+0,238,228,96,2,42,7,182,148,28,249,176,99,39,24,189,97,216,145,208,31,65,219,159,173,0,98,155,114,73,221,110,231,0,228,155,100,206,113,215,2,229,71,110,156,99,29,48,70,43,180,9,146,77,172,199,223,236,
+168,0,192,61,49,116,73,207,225,220,131,91,134,222,110,165,161,0,28,241,119,33,207,191,250,163,159,199,20,198,134,92,96,24,73,245,55,83,130,127,32,49,199,96,64,227,223,20,1,137,246,124,253,216,9,32,112,
+26,29,131,232,72,184,32,224,244,192,7,138,105,182,39,57,141,65,193,233,26,103,0,12,253,235,156,254,96,115,145,235,157,102,134,224,246,183,29,78,126,209,114,71,184,255,0,92,188,117,199,3,167,126,42,51,
+12,227,140,219,129,233,231,92,117,224,119,155,29,176,122,114,59,147,64,25,70,216,40,255,0,84,132,231,63,52,113,159,110,159,105,28,246,207,57,198,61,233,141,1,28,108,128,243,140,24,163,36,115,143,249,234,
+72,247,199,74,214,41,58,130,74,35,127,185,44,222,157,177,62,15,124,142,252,99,154,136,181,208,56,72,78,8,61,36,156,253,120,55,57,63,76,147,140,208,6,86,210,191,243,236,188,14,124,172,12,119,39,107,55,
+60,113,145,214,152,89,20,228,201,109,140,255,0,14,1,61,121,63,123,208,245,4,15,210,181,204,215,49,142,99,32,251,197,51,16,78,122,31,182,12,129,147,212,115,206,122,154,97,190,187,29,6,0,31,243,237,47,226,
+127,227,240,140,1,156,158,125,177,131,128,12,147,112,135,143,58,33,239,145,198,122,18,86,38,199,212,158,223,133,48,48,124,127,164,192,56,36,29,193,179,237,254,168,99,25,238,15,79,106,218,251,101,201,0,
+224,0,120,59,173,91,3,241,107,190,127,76,243,198,121,49,155,187,172,31,222,66,57,29,109,71,81,158,167,237,103,57,207,215,222,128,50,128,56,200,186,182,4,142,224,31,78,114,176,147,156,14,49,158,252,131,
+213,165,123,53,196,13,193,233,187,159,92,102,220,142,123,115,142,184,56,173,38,186,186,206,4,209,140,119,91,118,29,127,237,232,175,215,25,61,7,189,49,174,238,1,203,72,132,247,38,217,138,245,227,149,156,
+158,252,228,28,122,243,128,1,152,86,219,130,210,71,158,122,42,227,255,0,73,248,246,28,103,222,163,38,217,72,196,171,146,120,36,71,219,208,27,94,184,201,29,71,76,243,156,233,189,220,228,143,157,48,48,79,
+250,60,128,231,219,247,235,140,251,241,131,198,41,134,230,98,217,18,70,184,245,137,151,244,23,68,15,99,129,215,189,0,103,51,91,158,183,17,228,142,6,212,4,30,122,226,213,59,246,57,252,242,4,69,45,200,63,
+191,67,140,103,5,1,232,61,96,61,50,112,122,145,147,198,8,173,67,52,135,57,146,220,1,212,149,62,231,7,55,75,235,146,57,3,168,247,135,205,148,182,4,182,103,57,36,239,137,125,177,131,118,72,60,14,160,159,
+95,96,10,2,11,92,127,174,76,224,117,17,30,123,241,228,168,199,126,15,183,90,62,197,106,220,151,182,62,159,44,3,167,7,172,71,219,241,235,239,113,188,238,14,235,78,121,0,205,111,219,61,63,210,115,140,103,
+169,199,127,83,85,220,75,129,150,181,193,56,32,77,9,254,87,125,58,125,61,104,1,159,99,180,3,56,183,126,122,133,136,243,201,228,136,138,251,114,15,190,57,33,166,218,223,254,120,91,158,72,228,66,51,245,
+255,0,71,62,159,94,188,209,229,241,140,193,147,193,196,241,3,236,115,246,175,94,121,63,215,12,104,134,57,88,79,7,25,185,183,29,61,55,93,177,206,58,103,242,60,208,0,109,109,142,127,115,108,59,16,18,217,
+189,64,192,120,1,199,95,167,30,153,166,53,156,68,124,176,192,121,232,33,183,56,252,86,2,79,62,167,215,129,73,228,169,206,22,28,245,39,237,86,231,142,123,27,147,250,247,198,15,90,79,40,169,24,120,58,30,
+151,80,244,29,246,137,201,192,61,179,140,30,123,80,3,62,194,79,72,99,61,115,251,155,126,15,94,191,100,39,25,232,70,115,207,60,154,67,167,28,143,244,34,231,147,242,69,107,215,241,178,247,239,214,164,242,
+137,228,253,159,29,243,121,14,73,61,241,246,144,113,215,60,14,195,25,226,163,251,43,125,229,48,128,1,224,92,198,196,119,255,0,159,147,207,190,61,137,25,160,9,23,74,66,1,58,124,228,245,218,34,182,199,224,
+5,160,252,198,57,244,32,209,81,125,145,143,32,198,65,228,145,33,206,122,99,228,155,0,122,114,123,123,228,160,15,211,147,51,19,254,162,102,63,195,137,163,231,233,139,97,158,79,61,71,92,130,77,30,114,116,
+107,89,155,216,75,8,198,73,63,199,16,0,117,56,11,131,208,244,20,214,187,4,28,192,56,227,230,130,76,247,254,45,221,242,71,96,61,243,81,121,227,180,32,119,226,54,25,233,221,166,7,143,92,117,199,3,60,128,
+76,90,14,73,179,186,86,231,36,24,27,177,238,177,142,1,35,28,12,231,185,168,159,236,231,145,21,224,60,30,82,48,58,122,236,25,206,15,175,242,165,50,228,103,202,143,211,230,82,72,244,200,251,74,231,39,211,
+215,215,53,19,75,223,202,140,122,157,147,5,232,6,126,91,190,189,58,244,231,161,232,0,133,173,143,84,189,61,248,9,143,231,215,245,170,238,176,115,152,174,253,70,98,95,230,100,4,2,121,206,58,117,3,4,84,
+190,96,39,62,76,76,163,61,30,97,206,58,225,174,27,234,0,245,245,164,50,198,167,148,140,118,229,230,39,219,172,223,78,220,123,244,160,10,78,32,4,229,39,30,230,32,73,62,255,0,49,227,28,158,50,58,19,85,143,
+150,199,10,39,237,193,132,1,223,7,146,188,142,184,201,199,165,106,121,209,16,54,172,99,158,79,152,253,189,1,99,223,223,29,49,129,75,230,130,62,73,35,92,231,25,145,176,64,227,179,19,215,156,117,228,129,
+154,0,199,42,189,48,252,103,172,106,48,115,201,255,0,88,216,224,243,199,90,83,17,232,20,142,156,148,36,122,14,65,60,243,199,94,245,167,231,78,126,237,212,64,100,224,44,178,241,248,100,96,30,122,255,0,
+92,208,36,188,3,34,245,113,233,246,167,25,31,247,201,227,208,15,200,138,0,201,242,157,184,194,31,251,102,6,58,246,33,137,56,227,34,154,99,144,0,67,68,8,235,242,17,142,189,203,14,56,60,129,207,108,115,
+91,6,123,161,128,110,135,160,255,0,77,147,63,64,22,62,127,63,126,123,49,174,110,129,226,119,239,202,222,74,113,219,188,103,239,103,184,224,3,245,160,12,109,179,117,253,203,14,127,137,0,29,10,242,199,39,
+166,15,76,100,28,209,131,156,149,182,25,57,37,154,17,211,25,228,171,14,188,117,63,83,154,212,55,87,39,172,210,103,142,183,210,46,121,235,205,177,239,216,117,206,62,140,55,19,244,251,76,131,142,247,146,
+73,159,202,20,227,233,159,198,128,40,23,192,57,107,112,123,98,107,117,7,29,253,142,126,158,184,245,110,241,156,153,97,201,199,2,226,216,147,128,64,3,37,72,192,198,73,199,25,29,170,255,0,218,39,3,139,183,
+56,232,62,211,114,51,158,153,24,207,253,242,106,54,158,240,140,121,129,128,255,0,167,187,204,115,198,78,210,160,119,231,35,175,2,128,42,111,7,171,196,63,222,158,216,140,142,184,219,38,121,200,239,140,
+14,57,234,229,120,250,102,28,12,116,120,91,166,121,57,35,182,14,58,2,63,26,145,154,228,158,65,60,127,207,213,227,100,251,19,39,78,152,233,248,84,109,231,147,146,178,31,97,121,112,56,245,193,151,62,185,
+56,31,141,0,43,201,15,59,164,135,24,31,120,219,227,143,98,224,158,159,166,123,83,9,182,32,146,208,245,234,60,146,121,61,126,89,15,185,207,208,99,29,13,242,1,204,59,177,217,174,239,15,234,37,3,245,61,249,
+237,77,46,249,201,128,245,7,137,174,100,206,115,253,235,131,158,131,168,231,129,199,74,0,105,107,113,252,81,224,112,70,62,189,54,146,120,207,229,212,115,76,223,17,232,33,199,251,178,30,254,193,50,7,28,
+3,158,189,123,202,110,27,56,242,6,56,251,235,33,250,156,249,188,99,142,8,245,252,16,220,174,112,32,201,234,0,83,147,142,152,13,39,227,156,118,230,128,34,50,70,7,223,183,92,156,0,45,174,9,244,234,37,92,
+112,122,231,20,205,232,122,180,28,119,251,45,239,208,156,11,145,237,192,207,122,152,222,42,158,109,241,156,159,245,113,3,207,111,154,94,125,65,246,245,234,223,183,12,99,201,57,25,200,9,109,156,156,127,
+14,242,120,233,199,168,207,81,144,8,188,208,184,196,182,164,227,140,193,121,199,35,214,224,140,142,6,64,224,119,226,144,79,32,32,137,173,127,239,213,208,227,219,247,132,254,181,49,191,3,33,146,99,215,
+0,67,109,198,71,7,230,110,253,6,125,250,129,154,67,119,25,195,20,151,160,193,107,91,30,113,211,156,22,245,239,193,207,210,128,33,55,60,16,211,66,7,7,10,151,0,30,153,206,27,32,14,167,36,251,30,226,22,185,
+99,157,151,8,122,130,3,92,231,242,243,87,161,235,248,99,189,91,55,106,112,10,177,233,128,109,236,143,166,78,118,250,113,146,7,113,192,3,12,107,136,243,200,96,59,145,6,158,61,120,32,169,233,142,48,15,36,
+230,128,41,27,153,1,201,184,126,152,4,61,199,255,0,29,231,175,78,57,239,78,251,99,28,15,62,126,7,240,188,131,60,17,159,154,96,51,200,201,234,49,145,158,149,55,155,1,7,6,80,78,120,48,233,252,125,9,95,174,
+6,70,59,3,81,190,214,232,210,145,212,5,75,49,211,221,84,131,244,192,250,131,205,0,55,237,94,183,23,95,236,227,146,58,119,251,73,231,167,248,83,77,194,30,12,247,164,127,178,202,185,233,130,75,72,223,136,
+61,255,0,1,72,99,231,42,215,24,39,248,254,206,8,246,0,14,70,59,143,196,116,200,168,253,60,233,71,174,86,46,59,17,149,66,58,100,103,167,191,2,128,17,204,68,19,231,95,251,147,53,185,233,156,117,83,254,79,
+3,144,76,103,202,60,111,212,143,161,6,6,4,147,207,72,143,110,195,211,159,90,151,203,159,162,200,199,28,128,0,3,29,78,113,17,61,253,114,61,105,141,12,196,243,34,131,158,11,21,39,232,65,139,24,238,71,114,
+79,25,193,160,6,226,12,16,6,160,216,245,72,8,235,232,118,255,0,46,253,123,20,101,64,62,88,175,15,7,239,69,106,125,49,192,3,215,7,39,159,110,148,243,20,169,207,218,33,61,56,4,2,79,4,240,45,248,63,150,5,
+68,68,135,171,198,7,110,100,235,248,91,158,0,57,25,7,175,94,104,1,134,57,59,65,113,206,57,242,173,186,119,24,17,176,233,140,118,244,246,4,82,19,133,73,241,201,192,138,216,228,227,156,131,111,245,61,123,
+15,122,80,140,196,2,209,228,243,150,243,143,39,168,200,137,7,95,167,126,1,166,60,44,50,76,144,41,28,125,217,73,207,99,144,128,250,156,231,62,152,226,128,7,181,149,186,69,113,211,169,138,205,65,7,24,56,
+242,112,125,0,224,123,30,106,47,178,92,142,177,79,143,120,173,194,255,0,223,66,37,198,50,59,250,138,119,151,130,15,218,109,129,227,57,73,250,250,96,198,78,79,215,159,169,160,131,218,238,204,123,249,115,
+127,45,159,215,183,74,0,111,217,238,200,192,137,243,232,86,30,65,247,242,143,60,30,189,125,115,74,45,175,135,252,187,177,235,218,12,253,120,141,123,255,0,62,244,224,142,70,22,242,192,145,207,48,92,116,
+60,245,27,65,63,253,122,112,138,92,100,221,88,129,158,190,76,184,60,99,174,240,122,251,3,156,113,129,64,12,22,186,137,255,0,151,110,217,249,154,221,123,103,0,20,25,246,245,250,98,164,22,186,134,48,96,
+69,56,224,137,173,243,158,167,35,203,110,123,158,9,193,224,116,53,31,149,32,224,94,89,245,192,219,12,185,25,232,127,215,244,244,24,206,123,154,105,138,95,249,248,128,143,104,36,235,207,63,52,131,177,7,
+156,15,214,128,30,214,215,68,224,194,1,63,222,120,207,61,51,196,92,31,92,241,215,166,120,81,101,112,112,94,52,32,231,248,162,30,153,32,21,228,15,192,100,99,60,83,22,41,71,75,152,20,30,193,20,31,196,27,
+156,251,119,199,225,138,118,219,129,210,230,220,118,201,0,123,241,254,148,115,248,245,29,71,96,0,241,100,152,230,8,216,30,8,217,110,220,145,129,146,83,223,156,31,79,193,62,203,24,255,0,150,49,161,207,
+56,17,47,232,16,15,94,249,227,0,116,164,95,181,156,129,113,106,196,30,63,120,139,249,126,248,131,235,212,30,15,165,77,229,223,228,97,224,61,201,251,68,67,63,95,223,113,248,147,198,6,113,64,8,182,246,220,
+101,70,70,49,147,14,58,158,48,195,145,156,243,131,158,224,247,113,181,183,198,66,112,121,60,64,48,112,48,6,66,231,240,206,123,119,193,228,223,30,166,220,14,57,251,84,88,237,215,253,32,123,114,122,250,
+241,77,104,102,254,47,35,142,160,93,194,71,254,149,126,184,30,180,0,241,111,109,238,49,158,241,238,61,206,66,200,163,61,56,238,123,243,82,4,181,94,89,128,60,245,219,159,192,25,58,156,228,241,129,216,213,
+111,40,117,34,14,72,255,0,151,180,246,199,221,185,198,125,58,243,216,226,151,201,3,162,66,196,122,221,38,123,145,214,233,136,31,135,215,182,64,39,100,181,110,3,131,199,25,72,219,233,144,3,113,255,0,2,
+165,16,198,64,10,202,113,255,0,76,149,73,227,24,192,218,51,208,126,126,188,64,16,100,126,230,216,250,226,237,50,115,207,252,253,130,127,0,7,67,142,181,41,76,241,136,7,253,189,176,239,147,194,220,144,127,
+14,6,121,25,230,128,38,16,1,201,46,61,72,44,15,225,181,135,81,200,3,252,40,17,177,28,79,56,193,32,128,242,40,31,80,178,12,250,114,50,51,207,66,76,2,0,114,8,135,175,240,220,183,28,227,28,206,79,191,255,
+0,94,165,251,52,64,124,194,63,127,223,49,234,78,56,243,79,31,159,65,64,11,246,86,97,149,150,98,78,120,253,241,24,200,207,38,94,220,30,135,244,52,245,179,184,218,112,202,64,227,231,19,146,78,50,15,203,
+187,174,0,56,25,233,220,145,64,182,180,0,110,104,129,35,156,249,228,159,174,46,23,255,0,175,239,79,242,44,74,242,208,140,14,190,92,196,145,233,150,189,0,122,116,38,128,1,107,116,49,204,24,246,121,250,
+142,120,27,73,239,233,207,74,95,178,92,16,55,52,45,158,223,233,25,56,237,180,193,147,219,24,57,246,238,21,109,108,142,10,78,84,145,208,67,38,58,231,33,141,233,24,239,159,124,115,193,18,253,138,33,143,
+223,182,15,82,98,96,8,227,140,53,230,61,15,231,237,64,16,127,103,92,31,153,124,128,125,60,187,128,199,255,0,37,249,239,219,63,174,83,251,58,228,28,145,108,78,121,59,110,73,245,227,17,160,199,226,121,199,
+122,179,246,40,79,2,114,1,193,24,64,48,15,127,248,250,60,118,7,210,129,167,192,115,139,147,156,115,142,15,174,120,156,182,58,15,92,250,231,128,10,194,202,112,114,203,107,220,103,117,199,7,142,159,47,4,
+143,200,123,224,133,251,43,227,149,178,25,35,134,123,160,79,92,117,66,15,167,95,78,152,226,83,167,64,72,219,116,91,208,6,147,35,7,254,187,1,233,143,254,181,60,105,208,17,147,60,220,115,247,91,30,156,31,
+56,231,39,61,115,198,126,148,1,16,181,151,25,22,214,45,140,96,159,56,131,143,81,177,179,158,121,57,192,61,71,2,158,182,242,231,62,69,136,232,8,13,32,4,117,207,49,145,233,215,223,144,69,59,251,62,219,167,
+218,28,30,184,49,146,113,244,243,114,7,108,254,92,142,21,172,80,96,45,210,41,237,186,53,92,129,159,239,51,116,32,156,143,126,121,160,0,192,196,157,209,90,130,63,184,242,14,249,234,16,12,231,158,228,251,
+117,167,125,151,61,97,80,58,241,185,189,79,7,11,146,126,163,131,198,77,51,236,99,63,53,220,92,130,57,88,206,115,193,24,8,71,167,36,19,156,156,131,78,54,170,156,11,168,136,57,192,109,128,103,39,63,242,
+192,238,231,245,207,166,104,2,81,101,140,129,23,175,240,49,199,215,247,128,246,207,97,199,189,11,11,161,254,30,167,0,197,38,236,246,199,206,79,28,156,12,243,206,122,211,68,81,236,59,174,96,4,116,32,71,
+208,224,14,69,184,57,192,199,113,198,125,5,52,68,160,227,237,41,183,208,42,54,113,238,214,196,150,60,125,61,193,224,2,97,9,234,177,161,227,146,97,155,161,224,255,0,23,92,14,157,115,193,24,167,253,157,
+185,249,20,31,95,38,95,92,146,126,240,235,140,126,36,98,154,21,79,6,82,120,234,99,92,17,143,250,224,160,245,233,142,153,245,169,68,49,156,110,46,122,96,172,49,49,62,153,38,220,156,113,142,190,221,40,2,
+49,111,54,49,185,23,158,209,75,235,199,82,50,73,28,231,175,92,83,140,51,237,255,0,88,163,174,51,28,192,115,198,56,7,142,51,131,156,16,14,48,106,97,12,107,134,222,64,28,128,241,66,0,193,236,60,156,227,
+147,158,221,115,201,52,225,229,227,59,119,22,233,136,213,79,224,68,124,224,127,129,160,10,254,77,193,0,252,167,161,251,179,14,57,207,117,61,63,188,15,83,197,30,85,215,85,88,129,245,242,238,48,63,29,224,
+117,24,234,122,12,3,86,132,136,120,49,72,7,251,34,46,113,215,104,199,56,233,130,57,234,59,84,131,203,231,106,220,14,157,22,47,207,230,97,143,160,3,24,239,156,80,6,113,91,220,159,158,17,142,199,237,107,
+245,206,217,0,61,57,235,210,130,53,18,0,223,107,143,97,118,120,3,57,56,252,184,62,254,181,162,26,76,240,151,62,217,49,15,94,160,51,122,244,228,103,63,90,118,101,61,86,231,63,239,39,39,254,248,39,211,219,
+142,61,8,6,75,11,243,193,88,27,183,200,211,130,63,239,162,63,169,224,117,238,170,53,16,7,201,180,127,189,49,231,31,83,142,61,79,215,138,219,65,48,224,36,248,235,135,120,198,122,145,201,140,123,99,143,
+79,106,82,38,57,62,91,243,208,51,198,123,142,160,38,61,250,14,157,243,154,0,193,7,82,31,196,8,61,177,40,56,231,184,96,8,245,250,116,39,144,226,218,128,0,111,39,167,105,143,78,123,200,6,56,199,229,91,59,
+156,16,60,183,7,156,157,241,1,219,61,81,79,97,244,231,215,144,153,142,48,141,147,233,44,62,221,63,119,192,231,215,212,102,128,49,3,106,36,240,236,61,71,35,243,38,94,248,57,231,242,169,191,226,97,129,139,
+149,67,142,67,130,70,112,125,36,98,114,126,160,116,231,6,180,76,119,109,130,4,200,51,201,19,67,239,211,48,145,156,96,128,57,234,79,165,6,222,114,57,146,227,223,51,197,142,127,221,182,32,115,211,4,127,
+82,1,157,186,248,96,155,232,128,231,254,89,156,117,234,121,29,78,122,228,246,3,173,61,69,247,95,183,199,245,242,148,244,250,131,199,94,58,250,140,102,172,181,188,228,127,27,118,249,167,64,14,61,140,7,
+61,251,99,56,62,148,191,101,147,159,149,207,176,117,43,158,227,254,61,149,129,231,185,199,215,173,0,85,102,191,61,111,85,184,24,219,26,129,239,219,31,227,208,118,164,45,123,145,255,0,19,12,17,234,128,
+140,244,35,239,12,116,244,227,57,230,167,107,35,201,100,29,122,157,164,243,219,253,90,145,245,61,127,44,215,123,36,238,128,117,7,0,115,200,233,129,249,224,30,226,128,28,166,236,144,27,82,131,61,131,33,
+29,79,94,37,76,158,188,125,123,211,204,119,140,167,23,246,249,227,179,15,94,191,233,60,142,160,12,103,156,243,210,162,91,72,135,31,48,206,15,42,195,216,99,32,113,207,211,129,211,138,148,218,68,87,27,136,
+228,103,10,121,244,25,11,156,159,110,125,72,25,20,1,27,67,124,122,234,17,144,57,24,221,207,62,158,119,29,78,71,61,114,57,25,163,236,211,245,55,223,79,145,78,79,191,239,215,142,249,35,235,154,13,172,9,
+252,64,228,243,152,221,206,56,24,31,39,79,92,231,167,165,60,71,107,255,0,76,78,58,150,133,143,167,76,160,39,175,108,253,125,0,35,48,205,208,93,171,117,207,238,92,255,0,232,23,0,113,207,175,83,158,212,
+159,103,185,199,19,59,12,131,129,16,94,252,224,53,193,227,191,3,211,220,153,140,118,163,25,22,199,60,243,109,33,200,244,56,81,143,195,25,237,238,220,217,224,16,182,152,227,39,200,43,245,28,33,57,239,142,
+167,31,90,0,132,219,220,168,193,105,121,239,133,231,61,49,251,236,224,123,19,159,160,168,90,213,155,27,222,76,228,115,182,54,57,25,254,245,198,238,158,184,198,63,10,181,190,212,127,203,43,79,197,88,3,
+131,232,35,224,103,177,7,167,108,19,71,155,104,7,11,102,14,58,40,250,244,253,207,79,78,61,77,0,83,251,38,112,119,202,224,117,196,80,156,1,129,131,153,152,241,215,169,28,242,123,3,236,168,14,64,144,177,
+4,16,97,183,234,73,60,238,148,140,3,219,3,167,24,171,94,116,39,0,45,161,199,1,73,98,122,118,197,187,113,236,62,188,26,71,146,54,1,86,27,50,49,156,134,63,252,96,28,119,61,7,183,160,5,35,108,167,171,56,
+0,147,242,195,108,167,143,86,4,130,9,231,30,157,253,20,91,219,129,243,44,132,247,38,43,44,30,14,120,231,28,113,244,234,106,86,218,78,4,54,128,158,7,57,207,60,117,136,18,122,241,131,207,66,41,187,73,0,
+8,237,134,114,112,177,131,142,71,114,152,227,175,61,61,50,104,2,55,142,221,121,8,167,35,167,151,108,9,36,147,146,17,15,97,215,7,130,41,4,112,28,22,183,94,184,226,24,7,110,185,104,215,175,174,57,231,147,
+217,90,3,253,216,241,216,8,215,39,241,3,39,24,201,227,215,140,114,43,180,42,63,229,155,231,215,202,24,236,8,203,103,60,127,178,125,201,207,0,18,152,109,193,36,219,244,227,37,45,240,58,174,112,132,99,7,
+208,3,249,156,194,241,91,18,127,118,171,244,134,50,56,39,143,245,128,142,167,158,163,184,237,64,182,137,134,74,72,58,231,8,128,41,3,32,128,177,31,215,185,199,213,175,107,6,65,223,42,146,8,249,173,201,
+56,25,7,56,143,25,235,235,158,6,72,160,0,67,103,128,4,64,243,218,222,62,222,165,95,249,254,124,102,144,195,111,255,0,60,71,254,3,161,233,208,241,48,231,243,254,84,207,177,91,147,204,206,121,60,27,105,
+20,142,220,133,132,228,255,0,128,224,246,81,167,90,30,76,179,224,30,118,219,220,16,59,28,19,108,0,250,241,158,230,128,26,22,60,145,229,140,103,168,141,84,247,228,254,244,243,142,121,0,116,245,20,227,20,
+124,20,136,147,215,38,53,24,24,237,182,82,14,49,200,206,1,206,64,20,162,199,79,4,126,254,97,200,206,232,36,56,199,79,249,100,58,247,29,120,201,60,208,108,236,134,0,185,147,35,177,130,81,200,24,193,43,
+1,0,122,227,143,173,0,53,145,251,33,193,198,63,114,58,227,142,75,227,211,244,238,51,81,188,115,3,131,19,158,56,62,74,145,244,229,142,7,95,207,166,77,57,173,237,243,196,238,64,237,178,224,15,126,126,202,
+64,7,219,4,227,235,76,48,194,1,2,118,228,158,49,117,219,254,221,8,227,140,244,28,30,135,168,4,70,41,176,72,82,51,254,204,43,219,31,222,201,199,24,24,227,235,205,71,228,79,159,189,180,158,132,172,89,199,
+111,190,172,24,241,219,142,58,158,214,4,48,231,63,104,24,235,207,218,151,167,99,254,133,244,245,246,228,12,169,8,191,118,233,71,67,128,110,72,250,100,89,130,79,29,191,3,197,0,83,242,167,63,196,79,29,197,
+190,15,254,57,199,94,157,115,158,49,72,209,222,129,144,16,231,166,90,49,143,169,17,99,7,232,65,232,125,238,12,146,8,184,45,158,14,62,214,51,215,191,217,49,252,186,119,160,176,28,249,173,158,126,235,220,
+131,223,57,6,207,30,227,36,131,215,61,104,2,150,203,224,51,155,124,103,145,152,120,7,216,195,131,158,121,224,113,234,112,20,71,124,84,228,219,0,57,24,242,9,61,185,196,61,191,62,185,234,13,76,101,85,201,
+50,49,207,118,150,97,215,208,125,152,31,200,241,143,74,137,166,14,127,214,0,49,193,243,102,207,28,140,126,227,166,56,245,233,238,0,4,45,29,240,35,63,103,35,144,72,72,219,131,207,31,187,3,30,185,61,136,
+232,5,56,44,196,141,255,0,102,110,191,242,206,0,79,225,179,131,216,140,131,249,26,118,232,185,221,38,15,92,137,46,27,57,234,79,238,0,227,252,79,92,82,98,208,156,153,128,57,245,185,227,31,246,205,125,187,
+250,250,145,64,12,49,224,252,201,108,123,127,170,128,244,255,0,128,2,49,248,83,188,184,78,50,144,30,220,36,36,115,237,229,250,231,0,127,141,59,253,16,46,4,203,232,48,243,14,125,191,119,199,174,63,157,
+68,205,109,200,243,228,227,3,137,231,92,19,236,35,244,246,247,160,0,249,10,120,84,83,156,113,20,67,235,255,0,44,73,32,224,119,206,123,14,5,70,198,3,208,41,57,36,252,168,185,252,224,32,103,175,79,203,154,
+97,88,79,73,103,35,3,3,237,87,35,24,232,65,84,0,244,252,50,56,232,67,63,116,163,37,174,88,15,250,125,186,92,118,60,30,157,241,207,243,160,7,17,109,131,152,152,147,217,124,179,238,127,229,128,237,233,210,
+162,101,181,25,204,87,0,30,14,210,71,175,247,98,199,208,227,158,249,205,38,232,14,118,181,227,30,164,11,251,190,185,60,146,1,60,247,198,65,239,73,145,198,209,114,62,183,247,132,241,207,33,151,28,254,31,
+78,112,64,32,99,104,1,1,111,49,232,38,144,30,195,161,182,193,231,156,31,195,147,138,133,158,219,143,150,251,62,215,15,250,98,219,143,207,175,76,85,253,167,239,22,186,92,244,39,80,185,244,244,217,193,246,
+34,163,102,149,78,86,91,129,235,141,70,241,113,208,224,144,184,3,191,110,148,1,158,207,109,255,0,81,3,233,139,217,193,60,122,11,124,15,92,240,58,102,160,47,106,24,144,111,179,158,191,108,184,62,153,224,
+70,163,156,131,156,123,30,130,180,204,183,131,56,243,155,190,127,181,46,128,199,94,173,9,31,161,61,126,181,25,158,236,131,145,62,1,193,219,171,76,70,120,231,31,103,30,220,156,142,122,130,48,0,51,78,206,
+170,247,67,147,214,242,235,60,30,216,219,198,58,122,244,207,106,102,27,39,18,220,16,56,230,246,240,241,158,160,23,29,255,0,218,24,234,58,140,233,25,110,112,120,114,112,113,187,86,148,156,14,64,199,217,
+198,113,199,81,211,131,197,71,230,220,147,140,68,15,82,95,82,184,62,217,226,21,246,224,99,167,189,0,103,180,76,15,73,207,184,190,186,0,253,65,184,31,143,29,233,74,12,228,71,54,78,115,254,151,59,12,140,
+250,220,241,208,158,70,79,92,102,174,150,184,110,162,219,39,4,255,0,167,206,70,122,231,27,127,92,116,239,138,137,161,185,35,135,178,245,193,187,185,62,188,143,148,126,89,232,71,39,4,208,5,85,9,220,31,
+251,253,41,7,25,224,238,156,245,239,74,21,121,251,128,14,6,73,57,192,3,254,123,231,61,253,58,28,243,204,166,43,145,130,211,90,142,188,45,195,251,145,247,165,83,232,79,66,120,207,60,8,216,220,161,225,237,
+72,201,60,92,185,231,211,253,105,3,63,95,83,216,80,2,108,78,254,73,201,60,16,15,167,92,204,112,120,234,115,236,77,49,212,2,64,142,6,235,140,44,93,253,7,157,143,169,237,237,128,3,132,215,28,229,97,96,78,
+78,39,110,158,197,139,12,15,79,229,81,111,124,228,236,95,163,198,217,199,29,75,12,15,234,7,99,64,17,50,183,33,98,140,123,41,65,238,56,19,96,99,142,64,253,56,168,118,204,51,148,126,188,109,144,126,92,54,
+59,14,78,125,51,205,89,46,72,192,17,55,78,162,50,51,200,31,242,219,191,3,0,114,73,226,152,24,140,110,134,63,170,172,31,134,51,112,57,233,64,21,218,89,0,195,69,39,28,242,233,211,220,16,195,56,56,206,122,
+154,174,93,115,145,25,92,255,0,122,69,0,240,65,199,238,31,169,244,250,231,181,105,249,131,251,138,188,113,143,178,123,12,115,117,145,193,246,36,228,115,138,12,241,129,134,3,144,7,252,185,99,56,200,198,
+110,49,235,215,168,235,140,80,6,49,228,157,161,121,234,124,231,3,57,206,70,44,136,200,247,198,62,149,19,249,192,16,8,3,32,231,237,170,160,30,195,155,64,51,233,156,158,56,29,206,217,184,133,115,148,82,
+1,207,43,166,14,153,232,90,235,56,244,192,39,167,28,28,179,237,150,217,255,0,84,140,123,110,109,59,223,28,164,164,250,112,59,244,29,232,3,156,127,57,184,57,63,247,18,93,188,246,63,184,245,237,234,120,
+237,81,52,103,57,32,238,198,57,212,193,227,177,226,17,156,127,245,242,49,93,35,93,192,224,143,33,14,122,21,54,157,1,60,156,205,207,61,61,63,49,81,121,145,16,127,115,249,125,135,63,248,244,227,31,174,49,
+199,165,0,115,133,1,206,246,124,117,193,213,95,244,81,3,115,223,144,0,245,198,41,134,20,61,9,32,28,96,234,109,159,214,216,2,62,132,243,222,186,50,209,242,4,57,206,64,27,173,3,100,2,6,10,79,140,122,116,
+30,156,213,118,93,223,242,193,148,14,62,252,107,244,228,77,140,103,60,251,30,148,1,135,246,120,241,206,62,166,253,91,28,130,65,221,0,250,158,163,169,232,56,133,173,226,57,2,64,156,231,141,66,12,240,56,
+255,0,151,114,61,123,251,10,223,101,36,112,141,192,207,55,10,49,219,180,141,223,25,206,51,212,250,26,239,20,238,72,49,7,193,227,247,178,30,7,95,186,227,223,145,143,76,250,128,97,155,117,29,46,8,30,135,
+80,133,152,156,142,159,185,25,244,192,29,248,231,154,67,10,140,102,121,143,111,248,250,129,201,25,255,0,104,168,35,175,56,193,24,231,215,89,161,155,28,91,147,238,173,115,249,15,156,131,207,161,235,145,
+205,68,209,79,156,8,230,31,141,214,71,28,118,61,7,161,24,3,173,0,101,24,97,63,122,234,117,199,80,22,209,177,159,92,203,232,115,208,114,49,142,153,97,183,183,227,23,114,242,121,27,45,71,60,129,156,179,
+14,125,1,28,15,82,77,106,27,121,79,38,43,174,115,147,229,221,116,30,249,3,161,246,233,199,177,246,38,35,59,46,242,49,247,146,224,12,144,123,2,120,245,24,62,152,200,160,12,182,142,32,63,227,230,98,87,3,
+253,93,151,25,244,249,143,95,195,240,168,218,33,206,38,148,147,216,195,100,115,237,247,243,237,250,19,91,77,102,84,99,51,115,211,49,93,31,203,9,199,79,235,142,245,25,181,80,115,190,94,49,145,228,95,116,
+63,240,0,6,113,147,249,208,6,41,132,117,243,157,123,156,219,89,244,246,249,186,119,200,207,61,58,83,12,101,57,251,67,125,90,218,212,96,115,199,1,187,145,208,17,248,243,91,101,16,15,245,175,199,76,197,
+117,249,116,231,57,35,129,199,167,74,137,150,37,255,0,150,143,245,251,45,215,95,94,84,112,115,193,207,122,0,196,49,179,30,103,56,61,190,199,3,2,65,29,63,114,6,63,63,106,107,91,49,207,206,164,247,198,157,
+17,35,131,236,7,211,129,216,86,184,88,9,255,0,89,33,39,214,214,232,126,95,43,100,246,232,79,166,49,79,43,8,7,18,184,236,63,113,40,7,223,12,128,227,208,117,239,244,0,192,104,89,72,204,137,211,143,248,150,
+65,156,125,124,182,235,199,97,215,167,171,2,56,39,247,177,16,123,27,24,151,35,175,56,139,143,79,199,32,28,214,219,5,28,137,92,131,243,17,228,74,0,207,60,96,2,9,244,199,39,24,207,74,105,42,122,74,70,122,
+241,114,1,31,65,25,0,14,64,253,113,64,24,190,84,131,35,204,128,100,28,31,179,198,195,190,50,62,206,15,94,56,36,12,3,140,224,84,102,25,142,64,146,220,247,255,0,143,105,1,235,254,205,163,2,112,114,63,241,
+211,211,27,76,72,25,75,132,199,186,92,185,192,200,25,31,103,35,60,30,64,31,142,106,185,45,222,226,12,145,242,254,230,124,15,114,124,128,48,123,14,157,121,205,0,101,155,105,7,38,72,126,96,62,237,187,167,
+31,248,11,193,231,216,250,210,11,89,84,96,77,24,238,1,132,48,25,3,251,208,41,29,184,30,231,131,90,36,159,249,237,14,121,232,28,113,212,112,209,0,72,237,159,195,25,226,187,7,201,253,252,100,19,192,220,
+70,56,192,192,17,245,28,140,19,234,63,134,128,32,54,179,246,185,65,245,129,0,29,48,70,16,159,174,0,224,250,12,212,66,206,97,187,55,10,216,198,63,116,189,253,8,136,103,223,142,42,209,47,255,0,61,227,57,
+235,181,216,117,32,255,0,117,121,227,175,92,18,58,83,72,148,31,245,203,219,164,141,147,239,203,32,245,224,158,164,242,58,128,10,198,214,92,252,211,71,128,58,21,233,142,252,131,131,142,120,35,249,154,97,
+128,19,131,44,103,147,156,43,28,114,51,192,35,142,120,39,131,207,38,173,59,74,56,13,187,143,226,149,193,63,80,39,99,215,219,223,129,138,96,18,12,19,12,103,63,222,149,135,215,27,165,3,142,188,245,244,245,
+0,172,214,167,144,37,132,142,126,238,208,71,174,126,97,129,158,188,145,236,123,64,109,28,231,247,177,156,247,223,208,115,192,62,112,199,235,143,126,42,243,111,232,32,136,228,96,0,234,6,15,214,97,215,28,
+147,159,211,134,49,151,31,241,232,172,7,77,140,58,30,188,139,161,250,14,160,158,128,208,5,31,177,158,70,238,70,114,67,169,24,231,25,221,49,207,94,216,193,224,242,64,33,182,147,128,28,0,125,100,183,30,
+156,96,202,115,245,39,60,12,213,204,56,233,99,38,122,141,140,231,147,234,69,216,31,94,79,20,1,47,107,75,160,120,227,124,172,189,7,25,23,223,231,156,240,104,3,57,173,46,50,6,248,200,56,28,201,109,156,255,
+0,223,236,143,174,51,219,234,195,101,57,231,124,39,235,52,0,129,233,146,113,129,239,248,86,168,142,99,156,218,79,235,146,215,25,61,113,255,0,47,158,157,123,113,216,116,83,19,16,63,209,111,79,169,67,39,
+95,79,154,235,167,190,51,237,64,25,2,205,177,134,48,131,215,34,123,115,159,169,18,15,195,143,108,116,162,181,246,48,60,219,234,29,57,1,176,51,130,48,119,78,78,49,129,223,34,138,0,253,6,103,127,249,249,
+144,15,92,5,231,233,158,192,114,51,223,191,57,140,187,143,249,120,156,228,116,4,127,241,99,3,28,131,219,233,205,68,201,114,14,89,102,60,12,128,173,220,243,201,66,122,156,117,56,235,207,90,77,142,71,48,
+73,159,86,89,9,3,212,237,143,27,122,243,140,119,160,1,157,200,200,154,98,87,190,73,201,231,144,3,182,115,159,113,237,76,220,231,59,218,237,187,229,87,111,35,29,183,12,15,234,125,179,79,91,121,206,127,
+209,164,113,212,109,141,199,254,132,152,35,241,224,251,99,12,54,215,13,157,182,78,58,127,203,37,99,249,152,249,255,0,35,232,0,133,152,140,31,183,112,49,140,48,62,164,228,110,30,135,190,51,223,154,139,
+61,128,189,36,115,209,177,198,120,225,15,76,103,242,3,165,73,246,27,214,63,45,164,128,117,39,200,86,62,189,4,56,199,61,242,49,143,94,79,236,219,236,243,109,48,32,30,69,166,65,62,224,4,234,56,207,99,200,
+160,8,195,144,8,242,175,152,158,229,164,0,123,159,229,146,58,246,228,3,11,186,247,134,239,142,230,234,85,31,166,15,175,60,85,195,97,123,128,76,19,2,127,233,211,140,115,232,231,212,122,16,125,169,134,198,
+243,161,75,140,142,129,109,14,51,158,219,136,227,143,81,158,115,64,20,1,143,144,214,215,44,50,127,229,250,224,28,1,220,6,29,78,71,95,173,52,189,168,57,54,119,39,217,175,159,242,25,152,159,232,63,30,110,
+181,140,224,252,194,232,103,63,242,232,70,122,241,158,157,57,3,112,247,0,84,77,106,221,210,255,0,142,79,250,50,128,59,113,243,175,183,94,221,49,210,128,43,238,179,110,182,46,15,60,27,217,143,78,156,44,
+131,241,39,233,131,77,63,98,198,62,198,120,36,237,23,51,183,39,215,45,140,246,25,201,25,169,76,36,240,35,212,64,28,228,64,131,31,95,244,165,224,144,114,56,35,158,148,134,53,231,113,212,70,1,0,148,10,7,
+92,100,44,238,0,231,215,212,119,20,1,7,250,0,228,219,34,240,126,252,243,113,215,160,243,71,28,242,125,207,190,90,77,153,228,69,7,167,18,77,200,198,49,147,112,163,219,43,239,198,49,82,121,105,201,251,69,
+255,0,7,238,148,35,182,122,153,87,131,215,57,61,121,207,56,112,9,252,55,23,190,224,166,115,140,114,8,185,36,30,122,140,127,49,64,17,239,181,63,242,202,17,232,68,243,129,245,226,231,191,176,25,239,223,
+38,251,82,8,196,73,129,255,0,61,101,110,59,140,121,231,167,126,220,241,83,100,28,126,254,243,212,229,152,117,239,131,112,220,243,233,239,138,110,194,57,243,174,207,24,199,152,224,117,232,0,56,231,161,
+231,24,199,78,192,12,95,179,99,42,208,238,246,142,83,199,92,113,47,63,79,81,218,151,204,128,100,22,137,120,254,236,128,247,201,255,0,88,163,215,147,146,51,199,92,210,30,15,50,222,158,249,243,163,237,158,
+6,231,4,17,245,207,167,106,70,86,60,163,222,147,142,51,115,110,7,78,131,51,2,7,78,248,238,121,160,6,151,67,146,46,80,119,249,75,251,227,254,91,3,223,35,230,201,60,140,244,168,90,66,51,254,152,219,122,
+144,75,143,95,250,122,31,253,113,215,29,156,209,220,146,113,37,210,231,144,26,230,18,64,231,251,179,168,7,142,58,231,249,130,59,145,214,89,253,243,115,30,126,164,121,205,129,232,71,7,145,201,28,0,68,102,
+39,145,118,119,118,249,241,129,198,114,5,230,0,30,255,0,95,122,120,145,128,36,221,140,30,198,98,8,235,193,255,0,78,0,19,219,167,29,15,66,71,138,118,255,0,150,146,100,1,210,117,110,6,7,247,215,7,174,122,
+142,49,156,244,128,197,115,209,140,159,140,195,30,220,43,147,192,28,144,14,121,200,160,7,150,98,7,250,83,0,121,255,0,143,144,51,215,254,159,178,61,64,4,28,244,237,81,182,9,255,0,143,194,14,120,31,104,
+4,99,182,1,190,28,100,115,198,127,149,49,161,152,142,93,143,25,42,101,124,113,211,24,136,156,243,207,127,194,170,152,228,13,202,161,227,156,187,159,212,196,127,158,61,7,168,5,179,24,63,242,242,15,126,
+102,136,12,243,147,131,168,103,60,241,159,64,112,122,210,20,35,149,157,129,3,143,223,198,7,185,199,219,49,192,245,60,251,226,169,21,148,116,142,51,142,58,149,28,123,249,109,158,221,113,129,236,105,55,
+72,65,6,27,114,70,71,50,231,3,211,2,30,51,143,83,207,79,96,11,44,133,184,251,72,63,246,218,22,228,116,56,251,104,199,127,94,114,49,131,138,2,176,3,19,185,232,56,40,195,191,247,47,114,64,201,246,235,223,
+154,164,89,193,230,11,95,197,217,177,215,142,45,243,201,199,83,199,176,166,239,143,56,251,61,179,31,164,141,158,59,126,224,253,120,239,249,80,6,129,82,126,243,150,60,114,24,130,120,61,127,211,121,245,
+28,113,234,65,197,33,71,24,40,72,24,238,220,231,175,79,181,28,100,15,226,60,145,131,131,140,213,222,188,143,178,218,1,208,144,36,24,234,7,252,177,4,96,231,211,183,108,102,51,212,5,182,128,145,200,30,83,
+227,177,199,49,117,0,246,239,206,49,64,22,155,143,188,91,161,25,3,39,211,147,246,162,0,255,0,245,99,174,33,41,207,241,242,122,148,32,245,25,206,103,80,15,78,61,243,192,235,30,230,227,253,14,223,35,31,
+242,235,43,116,246,8,6,78,64,39,252,78,80,187,227,254,61,109,129,244,54,77,131,238,50,163,255,0,172,125,56,160,9,54,176,231,105,56,234,10,3,211,57,225,101,207,79,175,122,70,42,56,42,61,254,89,143,175,
+101,115,248,231,147,216,112,5,71,186,66,14,33,180,94,160,98,213,7,254,133,22,65,199,81,146,61,177,81,179,145,213,45,71,191,144,128,241,201,200,242,148,123,103,159,200,242,0,242,234,8,32,31,94,99,185,250,
+227,239,175,61,186,3,143,200,55,122,231,136,217,186,125,211,114,1,61,78,6,242,58,250,250,254,81,22,45,158,45,120,227,63,102,66,63,19,180,17,211,168,232,71,97,213,54,146,6,5,167,183,238,151,28,12,159,225,
+24,29,50,123,243,223,154,0,156,149,61,96,115,207,127,63,0,113,215,114,183,169,31,78,122,243,81,237,82,70,32,199,161,25,231,176,255,0,150,35,241,231,215,235,73,137,71,32,216,142,189,96,31,65,206,193,142,
+9,238,14,113,142,69,5,165,3,151,179,224,140,159,39,24,61,120,204,103,158,188,122,243,147,138,0,82,27,119,24,81,144,112,20,145,216,99,13,15,24,227,25,207,99,207,20,252,122,48,36,246,61,115,223,164,7,142,
+227,215,223,147,81,9,164,78,214,100,117,36,195,238,115,255,0,46,252,156,125,77,40,185,96,121,123,5,245,38,29,160,246,201,38,220,126,92,115,244,20,0,255,0,159,142,97,0,231,239,7,235,140,28,255,0,162,115,
+142,131,175,63,78,3,129,255,0,45,45,127,239,153,49,249,45,158,49,216,100,103,147,211,138,4,224,224,238,177,61,49,181,2,140,123,133,143,36,103,24,61,251,96,211,196,232,7,63,103,94,159,117,101,59,185,232,
+48,128,30,189,186,116,29,40,1,152,101,60,61,179,103,28,2,83,156,127,183,104,158,191,65,248,228,184,249,164,125,219,110,163,248,208,245,231,181,171,12,159,200,250,212,139,43,182,10,249,96,100,96,173,180,
+228,242,58,28,115,156,16,1,199,29,242,106,96,210,247,104,250,96,31,177,92,146,51,158,167,202,228,247,24,35,56,199,3,2,128,43,168,152,28,236,182,0,241,247,119,116,232,120,182,3,57,246,167,1,41,206,126,
+203,158,224,2,185,207,108,249,106,48,127,92,0,42,112,211,129,195,199,199,253,56,93,145,238,115,229,28,99,185,237,208,145,128,41,124,217,113,131,34,100,255,0,118,198,233,112,50,59,249,35,35,131,223,7,29,
+51,208,2,191,150,113,151,22,231,215,146,115,245,228,30,189,123,83,124,184,71,38,43,67,158,185,220,112,73,237,243,175,126,157,122,253,220,244,178,207,35,96,48,183,35,169,38,206,114,112,50,8,249,162,206,
+14,114,126,159,66,91,128,27,7,236,131,191,205,101,56,24,231,177,140,227,168,237,130,72,234,79,0,16,152,237,123,219,89,19,158,127,214,158,112,112,70,38,31,135,28,15,81,213,68,54,185,201,182,178,25,192,
+198,233,65,57,198,50,77,196,127,153,7,142,199,180,162,53,236,44,206,113,140,90,206,1,228,30,63,117,193,239,158,152,250,240,133,36,92,31,42,14,115,131,228,202,57,233,192,54,196,125,122,227,175,76,80,2,
+24,45,75,17,246,43,86,25,231,247,205,131,199,4,110,187,3,30,167,60,227,143,74,112,134,212,103,253,6,16,1,56,219,112,184,207,209,111,178,71,39,182,49,211,28,138,105,51,145,129,12,44,8,234,200,248,250,243,
+109,142,121,28,96,224,17,210,164,30,106,40,221,107,110,6,122,136,164,39,215,28,90,227,249,231,215,25,200,3,60,171,33,214,214,33,140,113,189,70,65,250,222,241,142,132,243,207,39,217,225,52,223,186,208,
+70,188,116,243,160,31,158,235,210,122,12,113,200,62,189,3,26,65,222,218,0,114,15,203,20,161,185,255,0,183,113,158,79,78,79,76,12,241,71,158,58,125,146,28,142,152,130,80,9,207,82,68,59,143,191,56,63,80,
+5,0,41,143,77,35,136,98,3,25,32,205,106,192,244,199,38,236,100,119,239,159,94,184,80,154,120,24,88,160,239,198,235,113,129,129,140,108,184,60,2,59,103,36,247,238,130,115,207,238,87,60,244,134,80,57,233,
+143,220,142,71,110,122,224,142,148,161,203,99,16,77,145,215,100,47,223,143,249,224,78,63,62,184,235,64,18,133,179,56,2,8,14,127,187,36,56,207,208,187,96,143,175,191,67,79,242,160,199,203,110,7,82,74,180,
+39,35,220,153,20,12,122,96,159,110,73,161,30,108,225,109,238,151,216,33,224,123,19,108,8,200,30,160,129,145,237,83,3,49,28,165,242,243,208,41,199,174,48,109,207,127,195,240,205,0,86,242,225,57,38,57,6,
+14,48,190,67,28,227,146,6,242,49,219,248,177,144,73,231,52,42,68,73,202,72,167,140,147,28,76,121,207,60,30,14,61,185,235,205,92,69,147,57,38,240,19,199,220,114,120,199,247,32,3,7,57,28,243,158,123,102,
+192,76,96,151,184,24,206,115,19,147,159,198,60,159,111,229,154,0,160,168,132,227,230,192,199,6,16,217,30,234,170,227,220,14,255,0,65,79,88,212,244,12,189,14,5,145,3,168,206,64,81,199,113,158,131,142,166,
+175,149,200,31,188,185,99,129,140,196,115,215,147,150,140,227,57,238,56,169,214,3,216,77,212,103,45,10,243,219,239,194,71,83,232,70,15,122,0,204,242,193,42,15,152,71,3,254,61,25,114,6,14,51,176,245,32,
+255,0,245,192,21,32,137,14,27,203,153,200,227,136,229,92,159,80,66,224,15,175,175,0,142,107,85,45,201,193,34,65,255,0,109,237,83,57,245,6,204,158,59,254,158,181,47,144,131,37,145,153,136,200,6,123,82,
+56,227,181,144,207,167,166,127,58,0,203,72,144,127,203,41,151,240,148,28,100,14,234,188,245,7,169,235,199,21,48,133,14,6,47,50,61,28,1,140,116,251,152,198,121,231,147,245,230,174,136,23,140,69,18,131,
+215,116,182,249,224,113,210,204,103,160,244,28,100,247,20,255,0,41,9,36,11,92,140,12,121,168,73,252,5,183,111,76,122,119,52,1,76,71,24,1,74,94,103,145,159,53,65,60,245,4,196,125,186,126,7,174,94,177,71,
+203,20,191,193,199,6,120,114,125,193,242,128,245,201,206,121,197,90,242,143,36,71,104,216,206,64,39,60,99,145,182,203,159,76,142,122,131,232,28,20,99,230,138,3,212,112,164,145,131,234,109,49,142,220,255,
+0,137,160,8,150,20,236,47,70,114,120,185,131,145,147,140,175,217,220,224,17,234,64,200,228,211,188,152,176,55,61,224,246,251,69,179,30,49,215,54,184,233,156,231,25,231,210,157,228,163,224,249,80,227,208,
+40,39,57,228,129,246,28,245,247,206,6,105,223,101,131,28,219,70,7,174,208,61,122,255,0,162,47,29,126,184,160,1,98,132,129,135,188,207,97,231,90,244,250,125,144,255,0,158,198,151,201,82,78,30,235,142,229,
+237,152,28,245,0,11,53,39,252,131,158,231,217,237,48,1,72,84,99,144,85,186,156,99,32,91,240,115,140,118,207,39,29,208,91,90,159,225,132,158,122,44,184,63,247,202,39,168,236,7,80,61,104,1,124,156,96,7,
+187,29,51,136,173,200,61,50,121,180,57,250,156,15,126,148,166,28,99,50,222,19,237,4,24,246,31,45,160,252,121,57,29,49,131,77,91,43,82,70,33,136,228,17,254,174,112,63,94,51,207,167,108,117,205,72,52,235,
+108,134,54,192,247,194,172,195,144,114,120,10,65,252,15,212,142,128,2,50,155,115,131,114,79,171,64,135,161,207,31,232,88,233,234,9,198,113,200,38,144,7,232,38,153,78,59,218,250,244,233,101,142,220,246,
+169,141,148,35,254,93,101,218,59,108,148,12,117,32,252,153,57,63,167,127,67,236,182,223,195,106,195,159,250,105,200,227,174,72,233,158,57,233,192,246,0,102,38,92,254,252,18,7,70,179,44,78,71,112,214,106,
+61,186,227,142,167,20,133,166,28,153,92,245,251,182,64,140,245,3,2,220,113,216,145,223,35,35,184,108,237,193,207,217,91,175,4,22,7,57,227,185,39,29,49,233,210,147,236,86,224,143,244,89,114,79,163,18,14,
+58,250,140,244,237,142,57,160,0,125,165,184,83,35,119,4,217,178,146,49,232,35,192,61,58,253,113,205,33,142,243,3,11,47,60,0,109,152,115,206,112,60,191,76,243,129,239,65,180,181,28,249,18,38,56,229,156,
+19,211,182,15,94,120,231,29,123,10,67,107,7,24,134,98,57,229,92,156,251,115,31,94,58,100,242,122,224,240,0,223,46,240,228,24,255,0,56,194,253,51,251,163,159,82,72,227,249,202,32,188,60,108,132,12,156,
+151,120,148,117,4,112,209,46,62,159,90,106,197,104,188,27,123,175,96,27,31,65,196,36,28,246,235,220,102,151,22,67,31,187,184,95,111,147,129,207,31,53,184,206,50,61,7,78,122,80,2,24,46,186,1,0,61,241,37,
+184,7,233,184,168,199,167,110,156,211,126,207,118,199,3,201,62,205,45,155,28,103,7,171,175,62,163,39,165,56,139,46,223,104,95,92,172,71,223,188,67,142,221,177,143,83,77,11,96,57,119,124,18,58,195,9,224,
+227,158,131,220,228,142,49,235,64,9,246,75,161,215,202,228,241,243,193,198,58,131,251,253,185,200,56,239,140,96,113,195,62,203,118,8,27,35,231,210,72,148,147,255,0,1,115,192,252,7,235,153,4,122,95,12,
+210,201,212,156,136,34,7,56,232,14,223,95,113,211,167,122,144,13,39,156,188,190,197,150,33,206,72,232,163,145,233,206,72,244,38,128,43,253,146,231,180,75,159,123,146,120,31,238,228,251,96,28,158,112,113,
+212,251,37,192,25,104,97,199,175,159,40,32,250,99,32,117,207,215,190,59,90,221,164,130,7,156,165,179,208,178,163,103,241,61,56,244,227,57,20,241,54,152,14,209,36,68,156,244,116,99,128,120,192,50,3,159,
+94,119,114,56,35,168,5,15,42,81,156,36,42,1,35,151,124,231,140,18,124,240,112,15,92,245,246,201,164,242,229,236,208,46,15,24,150,115,219,157,219,110,212,122,113,220,113,140,26,213,19,105,253,60,229,64,
+57,249,163,233,143,82,178,147,158,79,24,199,108,211,222,93,56,143,248,251,141,151,166,60,176,61,58,135,151,140,241,198,125,49,64,25,6,57,112,126,120,186,117,95,181,115,156,231,145,123,159,203,24,232,55,
+119,85,89,129,56,25,237,184,197,168,158,49,140,228,92,18,114,49,207,60,251,243,90,91,172,142,127,210,70,59,21,129,78,8,228,244,155,39,240,233,159,201,11,217,129,145,114,199,63,197,246,114,167,208,116,
+184,235,215,249,100,244,160,10,98,41,142,115,129,142,167,202,212,179,147,131,193,243,136,7,7,142,8,200,244,164,16,147,193,115,255,0,2,91,238,113,233,230,74,56,239,248,253,49,124,75,106,7,55,146,168,60,
+124,177,177,24,227,63,242,242,127,31,233,65,146,211,7,253,50,224,18,56,253,207,28,127,189,114,49,234,112,48,71,124,241,64,20,188,168,199,14,199,219,106,221,17,140,17,159,248,250,95,200,117,207,56,164,
+16,219,142,3,122,129,152,238,65,35,142,230,235,243,36,145,215,167,21,108,203,108,63,229,242,108,119,62,68,44,79,231,119,143,94,78,125,123,138,77,246,191,243,253,113,147,142,144,90,99,174,123,221,147,220,
+116,29,56,239,154,0,166,99,183,31,122,69,235,211,247,163,174,61,103,63,159,63,94,13,6,11,102,193,12,122,255,0,12,147,140,140,128,126,236,132,99,158,157,249,226,173,180,214,96,16,111,166,200,198,79,217,
+172,135,94,57,255,0,74,63,153,244,192,201,205,69,230,89,158,77,243,48,25,24,48,217,231,219,254,91,17,215,56,207,95,174,40,2,31,178,91,128,123,140,119,55,12,62,188,185,28,96,118,31,80,56,168,154,194,221,
+179,251,179,192,231,27,148,125,64,47,140,143,67,212,247,169,207,217,78,8,156,54,73,193,104,172,198,127,239,137,186,96,116,233,199,76,156,211,183,66,49,251,213,198,1,24,91,113,200,207,253,53,227,167,31,
+206,128,42,29,58,12,124,177,115,140,242,228,28,19,142,133,135,24,56,57,244,252,162,58,114,46,49,17,207,168,101,56,233,216,130,15,226,63,250,215,140,144,1,159,56,40,56,249,143,217,249,201,227,248,207,61,
+115,156,247,168,203,193,192,51,196,73,63,221,131,7,175,25,4,244,233,198,49,223,156,80,5,81,100,160,241,11,140,116,202,194,72,206,120,201,7,32,103,211,215,6,162,107,80,78,68,110,57,238,144,159,78,159,184,
+35,167,166,58,116,60,85,236,166,126,87,143,211,25,128,103,211,146,220,119,0,129,201,57,227,154,24,142,23,112,30,202,200,65,57,245,82,70,58,99,60,208,6,113,181,3,179,228,147,255,0,44,98,56,201,3,254,125,
+151,61,185,203,115,156,112,77,68,214,195,145,137,178,57,255,0,143,120,113,199,39,254,89,227,36,128,6,57,199,108,241,90,249,234,21,203,114,113,146,0,30,131,229,56,25,250,83,78,227,192,46,61,195,156,103,
+3,238,142,62,167,191,66,112,57,160,12,95,178,145,206,110,57,231,254,60,224,235,147,198,74,140,158,72,56,237,207,99,80,188,88,60,173,209,61,246,218,64,14,71,108,129,252,250,227,158,130,183,137,101,81,243,
+76,15,170,177,29,179,218,80,61,137,36,112,70,122,114,198,105,78,63,121,63,211,122,140,96,112,57,184,3,63,151,248,128,97,108,3,162,106,7,142,67,91,68,71,98,122,48,3,158,156,115,156,14,105,167,182,5,242,
+241,255,0,62,189,189,182,56,254,127,149,110,25,36,7,105,158,228,243,140,151,136,143,99,197,199,3,169,228,28,113,235,70,217,63,231,226,99,207,25,145,48,49,140,143,245,253,122,243,130,71,98,13,0,115,143,
+180,30,94,243,39,31,122,209,248,207,57,198,242,120,206,62,153,239,77,216,59,25,242,57,203,218,220,14,59,244,124,117,235,143,126,156,87,71,135,4,16,243,147,140,127,173,140,140,245,61,102,201,35,145,140,
+158,158,180,192,228,146,11,74,59,13,206,78,57,239,182,67,255,0,214,252,104,3,155,104,219,61,51,158,9,104,110,199,185,224,63,4,30,188,147,211,154,104,141,155,59,65,44,71,4,65,121,199,174,15,152,15,29,61,
+122,142,58,215,72,80,49,192,149,177,232,75,251,247,105,135,25,28,140,103,158,57,232,195,108,167,150,149,134,48,114,25,137,30,184,205,208,28,122,241,159,228,1,207,181,187,147,202,49,247,48,222,129,220,
+227,184,61,7,126,199,175,2,147,236,242,113,132,11,193,251,241,222,142,63,151,248,123,10,220,54,106,217,204,229,177,198,92,49,61,199,7,237,96,99,215,184,236,77,70,246,77,192,18,168,237,214,98,63,16,47,
+8,228,14,231,25,245,28,80,6,41,178,157,185,41,24,247,100,186,199,65,156,252,153,244,198,14,71,67,233,77,58,116,221,252,158,249,32,93,224,116,207,38,51,128,56,201,199,190,115,192,213,125,58,86,199,239,
+98,0,116,202,207,158,195,140,92,28,147,193,207,174,115,216,150,255,0,101,220,55,11,34,28,2,70,5,207,110,78,15,154,196,30,156,243,235,154,0,201,254,206,151,254,122,69,248,181,217,3,233,136,113,147,220,
+12,100,143,90,114,216,176,228,60,4,103,60,173,211,30,163,168,242,70,115,252,179,219,138,212,109,42,224,117,144,113,234,110,120,207,175,204,123,15,243,158,90,52,155,131,159,222,198,120,231,254,62,56,39,
+28,146,95,56,60,14,7,245,200,6,105,181,92,253,228,83,215,114,173,217,201,198,112,63,118,125,48,71,78,185,239,132,251,58,127,207,66,15,125,169,112,113,248,22,78,127,168,57,233,90,39,71,152,15,245,209,143,
+169,184,7,191,102,147,31,152,35,249,136,78,151,112,188,249,241,142,128,19,36,195,145,232,65,227,62,199,154,0,171,229,32,4,249,146,156,119,253,242,241,233,247,193,235,223,7,244,168,182,196,167,30,107,2,
+65,206,239,61,186,122,147,112,15,174,56,31,159,75,45,97,56,192,51,160,237,196,183,12,48,127,187,242,242,0,207,99,223,182,77,70,109,38,199,250,248,242,123,153,110,178,15,252,10,2,1,192,245,35,29,79,112,
+1,9,142,34,121,156,245,24,249,103,207,254,148,15,92,227,232,71,53,25,134,14,191,104,57,29,177,116,122,122,1,57,25,239,216,251,243,204,166,214,92,229,174,211,130,78,208,211,55,83,220,155,99,129,223,175,
+124,122,83,77,190,24,19,50,159,125,204,57,30,198,212,19,250,147,239,220,1,134,59,94,134,224,227,143,188,147,241,223,146,210,103,28,28,103,35,177,192,38,162,49,88,129,131,62,14,8,36,153,127,17,134,144,
+140,115,233,158,58,113,196,198,1,222,72,242,72,39,57,39,215,189,191,183,160,198,126,149,3,218,70,70,68,177,131,193,63,187,114,61,121,196,99,182,127,49,158,56,160,6,181,181,134,8,251,66,126,12,65,252,140,
+131,35,30,184,254,85,11,90,88,255,0,207,202,247,224,72,7,28,99,146,228,103,190,20,254,121,57,127,217,7,79,62,47,92,249,120,60,129,193,204,125,136,61,187,231,189,52,217,115,255,0,31,17,156,250,32,0,119,
+239,142,222,157,248,199,122,0,129,172,236,223,56,153,64,246,32,244,245,35,118,58,103,175,126,56,168,27,77,182,234,183,17,130,70,114,206,71,7,166,7,150,14,51,156,224,246,237,87,77,137,7,137,211,158,197,
+51,199,24,193,206,114,125,71,20,27,7,227,247,241,15,111,33,15,167,247,131,28,254,189,125,240,1,152,108,35,25,11,119,111,158,51,202,131,212,247,48,147,245,228,119,252,98,54,42,56,251,100,4,156,244,49,158,
+188,119,131,156,28,140,122,244,173,70,211,110,9,255,0,89,1,25,199,252,123,196,9,250,147,23,175,76,113,238,42,47,236,217,123,136,91,130,57,183,141,79,167,56,133,136,245,239,237,233,64,25,141,105,26,245,
+157,24,227,251,201,207,231,111,233,140,242,61,51,199,17,53,172,61,229,67,220,2,209,228,123,28,40,35,156,245,228,140,26,217,26,100,163,254,89,219,16,112,121,143,60,251,126,227,129,211,175,28,96,251,177,
+180,249,70,127,117,6,57,39,16,243,248,31,39,119,56,231,144,70,104,3,19,236,177,245,51,70,49,212,140,55,0,14,184,140,146,51,192,29,7,32,247,53,25,183,65,210,111,94,138,255,0,209,71,78,188,12,142,226,181,
+218,202,81,243,8,173,201,7,60,70,115,220,227,149,247,61,62,128,118,166,27,41,241,145,12,56,30,129,123,30,164,5,200,199,182,15,96,122,80,6,43,91,38,127,215,243,211,27,38,11,156,129,207,200,14,122,224,3,
+239,131,222,39,129,56,45,113,0,199,175,156,167,140,250,167,124,227,146,115,156,231,165,107,61,181,192,63,234,34,56,239,130,185,24,228,156,199,140,245,239,219,35,142,106,33,5,206,8,242,99,255,0,128,236,
+63,136,62,87,29,207,39,142,212,1,149,177,6,65,184,131,144,113,130,199,56,62,190,95,61,186,115,211,154,66,33,39,253,108,100,96,30,25,148,145,237,140,15,160,207,56,173,3,111,34,242,98,62,251,68,100,96,158,
+159,234,193,255,0,235,119,24,205,55,203,126,115,11,12,116,59,83,30,217,56,24,199,76,126,60,116,160,10,13,28,25,251,234,71,95,245,128,227,234,56,63,145,63,143,74,66,32,193,25,92,159,247,79,29,250,190,56,
+254,181,124,69,46,78,22,68,246,219,30,125,120,30,96,227,142,71,108,241,237,27,195,38,126,244,160,123,36,92,251,228,203,207,62,188,241,239,154,0,162,82,15,239,40,110,217,88,75,12,103,145,156,147,143,124,
+128,120,200,6,131,229,245,220,79,92,100,91,224,103,232,71,25,228,15,126,115,86,76,19,96,143,50,235,25,234,60,181,35,190,0,19,15,192,119,207,229,31,145,39,102,189,231,140,130,61,58,31,223,48,25,3,167,175,
+214,128,43,176,131,56,127,47,62,167,236,132,253,126,101,108,112,49,140,31,95,106,96,251,48,206,36,65,208,140,29,55,0,231,142,177,3,207,168,61,177,205,89,48,54,6,239,181,147,206,114,139,146,121,29,124,
+194,122,245,32,3,159,199,49,155,92,156,255,0,167,96,247,85,30,189,7,39,232,121,228,228,138,0,135,22,228,242,225,134,115,144,116,209,207,94,191,41,227,175,60,99,176,164,43,109,212,237,246,38,77,48,103,
+56,237,235,200,227,222,167,251,50,1,130,47,8,57,200,100,110,184,0,227,110,58,115,249,131,219,52,198,182,64,9,11,115,211,63,51,74,58,113,252,41,211,145,223,29,184,160,10,228,91,177,25,68,192,199,62,102,
+150,9,28,241,141,141,156,117,206,121,193,207,80,41,133,109,186,21,135,0,1,140,233,153,0,244,231,202,254,158,198,167,54,202,70,124,185,115,216,51,204,6,61,201,141,136,0,123,100,16,61,42,38,182,94,246,242,
+28,246,19,92,31,166,0,129,184,206,48,79,95,76,208,4,12,144,140,237,72,0,36,255,0,22,156,63,14,32,192,231,242,198,121,237,3,164,125,188,146,121,63,43,89,28,145,147,217,49,250,17,199,79,75,98,222,28,159,
+244,99,248,77,116,167,142,57,255,0,71,3,142,131,61,122,231,61,84,217,192,65,38,217,201,198,57,185,186,61,56,225,124,190,71,39,4,15,76,102,128,50,155,4,228,44,67,168,92,173,161,231,131,211,202,199,65,198,
+65,250,158,106,22,12,15,202,169,158,188,71,105,253,17,122,129,219,241,244,173,134,178,183,35,136,10,142,58,220,75,239,253,251,114,71,39,175,95,110,106,22,181,183,81,254,175,7,36,255,0,199,195,131,200,
+228,96,68,14,58,253,73,200,32,80,6,65,206,72,48,163,147,199,205,12,4,103,140,228,169,7,232,120,231,158,69,52,160,83,147,107,14,79,113,111,8,63,143,83,233,219,183,173,107,136,96,36,230,1,245,107,201,6,
+58,14,78,7,83,206,123,158,188,14,30,45,98,111,187,28,99,32,100,11,217,187,251,12,159,175,30,131,154,0,197,25,228,27,78,7,113,107,17,234,61,163,108,227,7,160,35,61,243,209,12,104,195,155,66,15,94,108,208,
+231,240,17,143,92,246,56,62,167,3,93,172,202,242,170,57,61,5,205,211,17,158,189,151,35,212,228,31,174,113,76,54,100,0,223,57,29,241,52,248,245,224,146,56,198,56,228,156,117,25,224,3,35,236,219,193,197,
+177,28,224,98,192,14,120,235,251,179,159,110,59,117,164,54,172,57,54,228,12,144,115,102,188,30,121,57,133,178,126,188,159,204,141,111,176,62,79,18,103,177,55,18,28,115,156,129,230,254,135,128,58,14,212,
+191,99,157,65,218,102,255,0,128,204,237,145,156,224,131,184,0,64,231,212,240,58,208,6,72,183,85,235,9,27,135,79,177,69,142,120,35,63,99,36,103,168,61,51,207,92,210,53,172,71,57,93,157,193,54,145,1,234,
+58,89,17,250,14,63,58,210,107,107,129,147,153,135,212,72,112,79,253,178,57,63,78,120,29,122,213,118,138,92,157,207,33,237,202,55,176,237,2,156,231,142,248,236,5,0,81,91,104,137,56,104,207,99,155,120,134,
+59,100,226,204,31,232,49,223,177,246,52,198,21,161,206,120,111,38,34,78,126,182,94,254,152,235,147,90,31,103,102,3,228,145,179,220,69,63,29,15,24,136,245,31,228,84,109,106,224,19,182,85,199,7,16,220,30,
+199,39,34,6,32,117,60,143,169,29,192,41,11,54,228,45,194,41,199,104,35,63,162,216,99,185,233,129,248,224,212,45,167,59,19,155,200,79,126,109,163,28,240,15,222,179,95,196,252,199,212,227,165,199,183,10,
+114,222,99,122,230,27,129,159,252,150,60,99,24,32,116,25,235,205,69,228,160,56,41,47,175,16,185,253,90,5,56,57,207,67,211,166,65,4,2,131,105,239,208,93,219,231,208,196,163,36,244,60,91,54,15,174,20,158,
+64,62,204,109,58,64,50,215,145,245,24,218,89,64,234,122,11,49,212,245,231,216,138,209,49,67,195,8,100,56,198,63,114,9,4,115,255,0,60,63,17,234,115,223,171,63,209,212,243,3,183,210,217,201,3,211,34,220,
+241,193,199,28,253,114,40,3,47,236,13,147,254,151,25,3,3,150,152,96,156,255,0,118,216,103,183,94,58,251,212,111,167,227,173,218,48,32,15,245,247,0,254,3,202,29,129,255,0,2,51,90,165,172,112,67,65,33,250,
+219,191,205,156,246,251,48,199,215,159,206,153,254,134,51,136,89,115,142,177,200,14,71,110,97,3,29,176,13,0,99,253,132,199,210,118,193,207,75,139,175,78,159,234,73,7,167,80,63,76,151,139,105,0,192,123,
+131,129,252,51,94,99,212,99,108,7,142,185,0,228,246,35,156,236,43,91,227,229,135,7,212,196,221,56,233,152,72,250,28,243,215,7,52,172,80,99,5,87,35,31,234,226,24,7,24,63,53,161,61,49,235,143,200,208,6,
+47,146,227,239,73,116,7,160,146,244,103,143,95,47,184,62,132,123,12,230,138,217,13,183,248,144,145,254,205,190,125,186,217,156,123,243,158,135,156,240,80,7,219,6,107,82,62,236,185,198,65,11,41,28,119,
+31,47,31,136,56,28,250,212,102,75,115,214,25,216,113,147,251,197,227,175,112,15,32,253,57,252,171,135,191,232,133,78,56,255,0,143,219,117,207,166,54,194,189,71,79,215,145,196,138,117,19,146,88,3,143,186,
+110,247,14,189,182,175,61,125,142,7,4,245,160,9,11,192,196,98,222,66,58,124,198,126,163,142,153,245,239,199,79,78,42,18,98,39,136,27,140,243,153,70,122,244,249,248,24,3,57,29,189,249,152,11,243,140,188,
+99,28,124,210,169,232,1,28,19,147,215,208,122,212,152,191,94,147,219,140,246,243,98,39,25,61,137,39,32,126,39,243,192,5,108,69,222,35,212,112,76,135,211,61,50,73,237,249,251,16,237,208,0,7,144,199,211,
+30,112,246,32,99,158,189,58,99,211,156,213,144,247,224,124,215,11,193,39,137,98,227,29,56,219,219,175,215,28,118,11,186,228,140,181,206,112,59,220,219,113,156,242,1,32,103,35,220,242,57,236,64,42,2,135,
+3,201,96,57,193,13,112,73,207,64,0,199,61,48,79,24,232,56,160,70,164,228,43,15,111,222,142,51,199,45,156,118,24,250,119,233,104,139,150,192,23,50,12,122,61,169,201,227,166,27,144,123,158,61,125,8,141,
+162,186,29,103,144,116,192,63,102,60,241,254,201,39,166,7,57,61,199,74,0,140,199,144,73,70,35,182,223,55,35,183,28,12,253,126,167,4,113,81,24,193,56,218,254,156,163,115,211,168,10,114,120,199,175,3,160,
+53,35,69,113,212,93,77,248,37,185,30,184,206,210,61,185,30,190,216,140,180,195,63,233,119,67,25,228,36,29,135,97,177,134,49,142,221,123,245,160,6,27,120,207,222,216,164,255,0,122,39,99,248,149,140,119,
+207,166,58,212,2,205,67,228,72,152,32,241,228,75,235,255,0,92,143,0,228,244,233,193,201,226,167,55,5,126,83,117,118,223,84,140,99,142,159,36,4,115,233,147,239,138,132,207,41,198,217,238,253,190,85,60,
+244,199,203,108,79,62,248,224,14,69,0,13,110,163,36,203,146,15,252,241,147,215,190,219,83,206,112,6,122,156,100,118,49,152,98,238,232,122,100,155,105,7,0,243,214,221,70,1,29,72,29,50,8,238,166,89,201,
+31,189,212,79,92,97,51,219,215,236,132,247,232,49,143,65,193,168,89,174,58,137,47,0,237,185,27,56,250,125,143,245,252,9,238,0,30,96,135,0,239,78,188,127,162,174,236,241,158,176,245,30,253,189,49,81,152,
+109,73,193,148,131,255,0,94,240,174,7,95,226,69,227,182,49,250,83,9,188,235,246,137,57,231,230,142,114,79,229,102,7,111,212,83,89,174,193,25,185,24,231,239,69,116,6,51,198,71,217,66,244,233,129,156,140,
+14,180,1,32,182,183,57,249,217,151,177,242,45,177,219,140,129,147,142,185,239,208,250,149,251,52,3,144,36,228,12,237,182,136,245,29,113,176,175,191,243,198,69,68,37,184,31,122,120,248,200,230,59,190,195,
+174,62,204,15,64,58,103,167,65,197,60,60,131,31,60,103,254,216,221,231,143,111,36,14,123,112,7,174,57,160,5,54,176,113,254,179,158,121,130,204,123,243,200,63,158,51,73,228,91,168,198,209,158,71,220,178,
+200,7,212,121,156,112,112,6,63,42,107,51,146,127,213,131,216,155,121,192,231,146,121,12,50,113,233,143,97,156,83,62,114,120,54,188,240,127,209,230,39,211,39,42,64,61,71,57,239,218,128,39,83,109,24,57,
+183,66,61,74,216,116,238,112,88,246,231,219,158,105,67,90,28,254,230,28,231,169,142,199,168,236,118,206,160,118,207,30,191,74,173,208,97,188,146,115,140,125,140,54,123,247,143,175,225,142,120,35,187,60,
+200,65,249,161,129,185,31,242,234,131,211,166,212,7,56,224,146,1,4,103,56,20,1,116,121,44,14,32,133,136,206,8,134,209,143,78,195,237,63,159,7,241,236,210,145,144,49,103,1,62,166,222,0,127,17,246,160,59,
+246,254,149,72,205,0,201,242,33,235,255,0,62,192,227,169,227,114,140,251,118,30,217,229,226,91,44,13,214,195,56,35,2,214,34,56,235,195,16,121,61,58,245,237,156,80,5,159,42,69,57,91,27,51,159,239,65,9,
+39,160,237,114,196,227,250,15,165,55,18,128,223,232,58,104,0,156,239,134,53,231,60,115,246,144,0,227,167,92,246,237,85,204,182,0,12,89,150,7,210,218,31,168,200,243,6,63,0,127,14,166,29,218,105,255,0,151,
+39,207,92,139,72,216,245,200,199,239,72,193,35,175,25,198,7,90,0,176,235,43,12,27,61,53,78,73,0,67,9,231,219,253,51,28,228,251,243,142,73,52,197,134,93,196,11,125,56,123,24,20,123,242,18,236,227,144,57,
+35,0,85,99,38,158,184,31,100,148,99,0,226,198,21,236,65,3,7,63,67,193,227,7,56,165,87,211,193,226,210,76,122,155,96,51,248,40,199,126,199,159,126,104,2,119,71,3,149,211,186,240,4,111,233,219,108,205,128,
+50,51,206,79,226,51,11,69,49,192,11,100,160,255,0,113,37,231,62,163,206,62,221,199,29,206,115,75,191,79,60,53,147,128,189,127,209,137,36,244,201,249,177,129,223,36,231,165,55,26,110,63,227,217,206,113,
+141,214,202,51,248,134,254,99,191,35,128,104,1,166,218,109,191,234,237,14,115,200,73,201,29,73,233,59,1,159,112,15,176,53,9,130,76,103,203,136,99,251,145,92,250,250,153,143,99,206,7,61,134,106,195,46,
+156,127,229,132,106,123,150,130,38,198,0,31,55,205,131,158,184,199,65,143,96,195,22,158,71,41,0,3,31,242,233,14,120,198,9,60,243,237,146,61,168,2,191,151,34,129,130,185,199,101,185,28,231,156,225,206,
+115,129,142,50,59,122,209,243,15,189,128,122,100,11,208,127,48,167,232,49,219,242,18,60,22,127,194,45,136,231,143,179,38,236,253,22,35,201,198,56,38,145,98,128,116,49,128,59,172,9,140,99,60,254,228,250,
+242,59,98,128,33,38,64,48,2,159,163,221,143,199,30,75,142,56,235,215,245,160,59,169,232,122,119,55,152,234,114,63,227,212,130,71,126,58,253,106,208,91,112,185,18,133,62,214,209,245,246,38,208,175,7,161,
+207,56,3,61,40,38,62,210,161,56,254,43,107,126,191,248,14,63,152,253,113,64,17,9,220,12,24,163,110,191,242,210,239,191,7,129,100,79,25,61,207,231,205,2,226,76,96,219,33,29,136,107,163,211,211,253,11,4,
+250,156,143,195,39,50,238,43,144,36,135,7,254,157,44,219,182,78,7,217,88,103,30,248,252,249,97,119,207,15,25,199,65,246,43,32,188,30,133,254,197,145,223,190,125,125,104,1,77,203,128,63,209,193,227,39,
+9,114,79,211,11,109,215,233,140,1,199,186,27,217,7,72,7,25,224,45,206,64,233,208,219,156,30,163,35,142,224,250,70,211,204,160,156,33,231,0,173,173,184,63,152,179,32,15,124,0,79,94,49,76,251,85,193,42,
+50,120,232,22,222,1,193,29,9,91,60,31,124,129,206,15,184,0,176,47,238,7,63,100,86,31,237,25,84,247,60,238,179,110,50,121,238,121,252,23,237,179,176,230,206,63,169,24,199,79,239,88,114,115,158,189,115,
+249,64,46,110,9,24,118,7,254,189,225,29,49,255,0,78,156,30,231,39,35,211,209,223,106,156,99,18,49,245,62,69,191,56,245,34,5,29,243,235,239,138,0,155,237,82,116,251,36,99,31,222,142,34,24,224,14,51,101,
+158,157,48,163,29,189,67,133,210,241,190,214,22,61,120,138,47,111,250,135,158,153,28,158,189,51,210,171,11,185,199,222,46,115,192,196,86,195,144,125,163,7,145,158,56,234,123,83,77,196,164,241,188,125,
+124,149,207,166,64,69,31,161,201,199,67,64,23,77,202,112,62,201,8,207,76,197,0,231,182,65,178,25,246,192,25,253,106,63,180,28,224,217,193,234,49,20,71,159,248,13,168,244,245,237,211,138,129,101,145,191,
+191,198,115,181,163,83,215,177,25,200,237,158,15,108,119,167,111,147,145,153,65,57,57,243,225,80,57,245,217,253,123,96,158,51,64,22,13,207,115,101,9,199,164,112,119,199,36,27,126,157,125,243,207,166,84,
+78,72,3,251,62,51,193,57,219,110,125,56,249,173,72,30,220,231,62,253,41,41,102,3,116,183,24,25,25,251,93,175,3,158,155,128,227,3,212,99,158,249,169,213,14,15,207,33,200,24,63,105,211,120,227,143,188,51,
+193,235,223,168,207,74,0,177,230,231,254,92,23,182,63,119,98,48,63,27,99,207,56,61,113,142,157,41,198,87,255,0,159,32,167,4,131,182,205,73,234,59,90,158,9,250,99,24,250,71,228,22,199,46,79,111,244,173,
+44,0,123,156,108,56,207,4,31,196,158,41,69,179,103,152,216,227,147,139,189,51,245,218,152,7,29,186,12,244,244,0,144,72,224,18,109,65,61,190,107,96,6,61,214,220,30,254,196,251,240,65,246,167,36,102,203,
+118,15,56,146,223,230,245,56,242,71,183,167,97,239,81,249,4,96,139,121,27,146,14,110,172,71,94,196,132,0,14,59,143,200,212,159,102,24,230,222,101,36,224,1,117,100,123,142,113,229,177,57,237,235,199,182,
+0,5,154,67,247,116,249,65,61,214,91,83,143,195,203,227,143,167,97,199,20,239,50,124,103,236,83,99,24,199,250,49,224,145,159,187,25,30,152,206,56,234,198,163,16,160,235,28,157,58,25,236,78,125,134,96,110,
+79,174,51,248,209,229,14,88,67,47,80,9,18,89,15,229,104,51,147,192,3,24,227,0,113,144,9,60,201,48,3,89,221,231,129,149,104,9,199,24,24,42,15,226,0,200,252,50,110,155,160,182,189,3,25,192,104,192,63,151,
+29,121,247,235,144,56,44,66,58,27,123,147,147,218,75,110,59,227,229,183,4,247,227,30,167,212,25,149,23,254,120,92,15,118,242,136,233,234,45,193,29,240,71,65,232,56,160,6,98,98,73,107,123,190,156,22,120,
+255,0,92,156,227,39,211,232,6,106,69,89,14,64,183,184,32,1,144,94,49,147,245,35,176,39,7,240,197,74,20,144,1,142,114,184,56,218,84,247,61,182,140,100,250,243,145,233,209,68,96,147,242,92,47,35,147,231,
+31,228,113,142,48,78,57,29,198,104,1,130,34,199,155,121,121,235,251,248,129,4,116,32,96,18,127,15,241,167,152,24,143,146,9,186,125,223,54,33,143,167,39,191,36,147,159,108,212,130,60,115,186,126,63,216,
+185,24,199,99,247,186,247,231,191,74,122,161,255,0,158,151,93,113,144,146,118,199,208,227,161,28,31,169,236,1,92,90,202,223,242,201,151,4,143,156,163,2,115,140,31,151,223,28,247,56,39,184,176,182,109,
+131,150,81,158,71,221,32,123,0,169,249,243,156,254,53,33,64,49,153,47,122,31,249,101,46,57,24,227,9,131,215,175,97,249,84,235,30,224,0,23,68,227,57,217,113,159,169,28,123,140,103,57,232,58,80,4,34,201,
+88,100,21,56,238,3,231,143,96,187,125,186,244,169,62,200,164,3,191,24,233,144,72,0,242,0,221,27,15,200,14,127,28,88,88,246,245,251,64,56,193,204,82,1,142,188,146,223,207,223,174,105,254,64,35,57,144,99,
+129,185,54,142,190,255,0,231,159,126,64,32,251,12,108,57,120,242,113,201,10,113,245,63,102,57,60,227,158,132,254,82,46,157,22,57,48,158,122,0,153,231,35,31,241,236,120,228,96,158,252,103,165,74,34,68,
+238,216,235,144,157,135,126,79,65,207,110,71,108,100,210,254,231,24,253,225,247,5,65,254,108,1,245,31,160,160,8,255,0,179,226,35,63,186,3,215,124,96,12,224,241,136,7,229,145,234,69,39,246,106,28,29,240,
+30,221,23,140,246,226,220,244,207,83,248,147,82,133,129,121,38,113,233,200,63,142,54,245,31,136,165,89,173,208,144,90,224,12,146,8,40,49,211,57,200,60,156,145,207,185,197,0,48,105,80,103,5,237,207,62,
+164,30,156,103,22,188,103,175,94,199,32,116,19,38,151,108,63,229,165,183,94,70,236,242,78,49,255,0,30,199,158,156,1,154,86,185,180,3,153,102,237,247,222,44,115,145,142,64,30,131,191,95,165,51,237,22,164,
+143,223,156,250,110,132,245,31,238,227,167,7,166,120,244,197,0,76,186,100,32,125,244,198,15,33,164,244,239,139,60,126,191,128,20,255,0,236,168,219,164,139,219,159,52,119,246,107,81,159,207,161,207,29,
+106,3,61,175,25,155,4,140,125,248,179,248,228,224,231,62,255,0,137,20,209,113,104,120,19,185,227,129,189,7,60,14,137,207,230,64,233,158,7,32,22,70,149,1,231,204,67,142,121,152,250,99,162,91,147,147,158,
+203,250,117,113,210,160,3,229,116,92,255,0,181,112,123,14,70,32,25,237,211,249,158,43,137,109,184,249,164,61,135,239,20,103,168,200,38,85,231,175,232,59,129,79,18,197,129,133,153,179,254,218,140,156,228,
+240,38,57,224,14,123,119,227,168,4,159,217,144,243,251,204,156,96,144,215,56,199,115,196,36,122,117,235,212,14,162,134,176,140,103,23,17,224,100,96,139,166,63,65,136,251,224,158,126,156,241,78,71,136,
+19,251,185,176,113,147,158,7,208,137,49,206,78,15,29,186,211,247,160,251,162,76,19,192,222,195,211,169,50,1,156,245,227,147,215,147,64,13,22,41,144,198,69,35,212,67,124,7,94,8,196,120,207,175,62,223,73,
+30,217,84,112,91,142,8,88,174,254,189,200,30,252,242,127,10,110,245,97,141,132,231,214,115,131,249,55,30,156,55,63,141,27,80,227,253,28,55,7,164,249,237,255,0,93,61,135,29,121,245,205,0,32,137,79,4,190,
+125,173,238,88,131,248,186,140,28,251,158,220,81,228,197,200,45,39,25,225,173,101,201,62,132,52,160,156,247,25,61,253,205,59,202,92,103,236,114,242,49,159,61,66,147,219,25,124,115,129,158,71,76,210,237,
+81,140,91,58,158,223,233,49,158,78,120,57,151,25,25,207,108,241,208,100,144,8,196,74,114,85,152,14,185,22,146,119,227,180,173,147,219,183,92,98,159,178,64,112,25,192,239,155,89,206,71,168,6,82,59,123,
+99,175,115,73,177,127,231,138,130,51,247,174,80,54,72,227,143,49,198,61,250,99,185,164,4,131,210,49,211,254,94,81,191,45,161,186,113,239,143,195,32,15,34,65,252,82,18,8,227,236,196,103,158,72,205,207,
+190,113,212,244,238,72,82,206,0,230,80,125,237,215,32,156,243,205,193,239,211,131,140,116,233,147,228,3,12,208,169,234,9,150,92,169,206,113,254,160,231,131,142,191,152,53,17,217,252,50,90,30,196,181,195,
+142,192,244,242,14,14,63,31,196,240,0,240,210,19,141,211,16,63,233,146,174,15,25,224,206,64,62,188,142,217,231,154,113,70,39,62,108,224,146,48,74,194,6,122,146,115,56,57,245,207,39,156,116,170,204,0,28,
+189,166,56,32,11,151,199,94,127,229,212,255,0,49,131,159,90,81,130,51,139,76,96,158,37,145,137,236,58,90,129,207,3,57,226,128,39,100,118,35,55,19,12,240,57,182,231,61,200,51,147,159,254,182,125,41,13,
+177,35,137,165,224,231,153,45,84,156,118,255,0,93,211,29,127,3,201,205,66,84,30,119,91,175,167,19,176,61,184,197,168,254,125,193,29,169,192,30,1,123,62,164,146,82,231,242,230,219,191,126,134,128,37,16,
+184,200,13,39,225,60,71,39,254,3,54,6,120,244,25,205,48,219,190,1,59,240,70,57,185,137,71,174,127,214,227,7,156,244,29,122,18,13,57,179,145,205,169,231,0,8,238,15,57,200,31,53,167,57,244,36,142,49,79,
+12,195,24,75,83,211,143,179,202,115,211,159,248,244,0,253,59,118,60,154,0,172,208,103,168,3,3,161,186,183,201,31,140,189,187,231,158,160,243,210,63,33,248,218,35,10,15,83,115,108,125,70,57,147,7,235,159,
+110,71,21,167,251,198,25,48,90,140,146,63,227,210,82,59,117,13,111,208,129,236,113,218,154,192,145,180,69,102,51,233,108,217,198,113,198,232,73,224,142,7,28,241,235,64,25,254,68,237,206,98,193,60,102,
+230,219,212,100,99,205,7,3,175,225,214,148,91,79,235,15,29,71,157,102,112,125,121,152,242,115,253,48,1,205,91,84,152,31,245,16,14,199,22,96,231,243,135,25,244,199,29,134,41,251,28,115,228,167,61,15,216,
+21,185,199,31,242,203,62,184,254,99,52,1,68,195,112,15,250,184,88,31,86,180,57,237,158,37,198,70,0,237,199,79,74,105,23,61,224,183,62,163,54,167,62,223,44,164,128,59,240,71,31,74,212,8,192,115,31,7,168,
+58,102,7,211,229,140,147,237,193,245,61,41,194,54,60,249,81,247,192,251,9,207,30,198,1,147,211,252,77,0,100,111,144,125,235,107,49,223,253,76,4,145,146,7,1,199,111,81,239,205,53,156,156,31,38,213,65,227,
+136,97,31,167,154,163,243,250,242,5,108,52,50,224,254,229,113,254,206,156,112,125,78,86,12,113,248,15,76,85,127,40,147,147,26,103,147,206,159,41,56,57,237,228,117,245,57,193,247,192,192,6,127,155,200,
+226,3,234,60,152,219,158,217,6,125,163,129,233,142,216,235,82,45,196,75,247,163,133,177,199,252,122,66,71,94,185,251,88,39,142,157,185,237,87,126,201,25,251,225,6,71,69,211,165,3,61,248,242,186,99,175,
+97,201,239,154,105,178,132,12,238,101,57,198,5,131,143,66,188,121,96,227,143,94,227,130,104,2,177,184,183,108,239,138,1,158,223,98,183,3,175,32,98,236,31,169,235,223,29,170,38,123,54,229,173,99,199,108,
+90,68,73,193,247,184,110,157,70,24,30,163,56,235,119,236,81,128,57,207,253,184,203,211,174,56,57,60,246,37,71,126,212,191,101,183,228,23,80,120,7,58,116,135,175,63,197,50,159,231,223,142,134,128,51,91,
+236,7,239,89,39,81,214,210,19,248,255,0,173,199,208,122,113,212,84,88,211,50,115,96,188,244,197,140,71,146,122,224,76,61,71,124,113,206,6,113,163,36,22,224,252,179,47,92,13,186,124,160,118,56,63,233,88,
+231,233,131,214,154,96,140,231,51,38,73,39,38,194,94,57,227,254,94,192,232,113,144,71,60,158,15,0,20,196,26,71,5,172,137,224,241,246,44,122,127,118,232,99,63,136,252,169,124,141,40,253,219,54,80,123,11,
+69,207,78,14,26,240,114,125,126,184,238,68,205,111,24,24,243,206,51,143,150,198,76,122,227,139,253,223,76,231,240,231,12,49,91,241,155,146,49,255,0,76,110,16,99,160,207,250,97,24,60,116,244,60,119,160,
+8,254,201,166,129,184,90,182,51,144,68,16,14,56,39,239,94,16,125,206,211,223,167,90,133,224,177,12,54,218,6,255,0,182,54,99,129,220,3,56,193,232,59,158,156,213,213,138,46,171,122,227,29,112,146,224,14,
+78,63,227,228,242,59,156,253,15,4,84,109,149,63,45,219,147,193,206,251,128,79,60,16,22,114,1,247,30,135,208,80,5,19,111,102,65,197,168,31,88,237,1,198,1,0,17,43,14,157,70,64,245,239,81,172,54,224,124,
+182,174,79,65,133,179,32,116,255,0,166,128,12,123,142,160,230,174,50,201,158,46,152,245,63,235,239,7,63,95,59,29,253,14,123,99,4,81,182,82,56,157,201,235,242,220,93,15,65,206,101,28,144,61,253,122,230,
+128,41,148,136,14,109,92,156,30,63,208,198,126,135,204,3,61,189,185,252,90,18,223,57,251,36,128,227,3,13,103,252,204,220,31,212,128,61,115,87,246,79,131,251,233,79,176,185,187,199,28,243,130,221,61,113,
+197,52,197,57,231,207,148,125,110,238,200,60,113,144,214,228,12,146,123,231,166,48,40,2,160,72,7,31,102,152,100,118,54,71,183,169,159,3,61,199,165,55,100,73,202,195,63,161,37,172,15,28,147,192,118,233,
+244,61,57,201,169,222,41,129,39,206,36,147,212,93,93,253,63,134,17,143,92,116,24,24,199,20,195,29,193,227,237,17,117,201,243,39,188,62,189,51,22,79,235,211,167,90,0,174,84,17,131,21,200,25,255,0,168,126,
+57,233,209,78,122,14,199,219,36,83,113,142,118,93,117,207,220,179,35,140,116,194,100,145,158,152,230,173,121,119,0,224,79,104,73,24,229,238,136,227,175,37,87,61,50,79,62,222,148,142,151,39,171,89,176,
+60,228,155,197,201,32,227,27,101,24,244,61,14,78,104,2,175,150,31,25,134,233,186,231,109,180,7,131,206,126,85,231,242,227,3,131,75,228,42,146,126,205,123,211,156,67,26,242,61,188,146,163,25,233,198,125,
+206,48,237,146,255,0,10,90,18,115,140,27,243,235,255,0,79,67,143,169,28,100,1,81,249,115,2,79,149,106,59,110,9,127,158,122,18,126,212,120,231,147,249,241,193,0,70,136,21,35,101,226,1,143,249,102,160,227,
+156,100,172,64,227,57,36,28,245,201,25,206,33,41,8,32,109,188,4,123,15,174,120,132,244,237,143,203,181,72,209,177,0,148,135,61,255,0,117,169,128,57,200,229,39,98,114,125,191,145,168,218,60,224,149,139,
+63,238,107,56,228,244,255,0,88,48,57,244,200,236,115,64,8,74,46,2,181,206,113,146,89,120,28,231,156,192,196,227,3,162,227,7,175,67,81,52,142,50,4,142,61,140,50,130,7,108,149,181,7,36,116,234,123,227,28,
+208,214,236,15,69,61,128,3,88,60,125,76,223,175,111,106,65,3,142,136,227,35,31,41,214,71,60,116,6,81,142,220,127,142,0,3,13,195,168,3,204,35,232,147,169,228,243,156,218,96,115,158,114,113,219,25,32,87,
+105,228,193,1,240,51,212,130,122,241,252,86,108,78,125,58,103,175,188,237,110,195,164,76,196,28,143,222,106,96,250,240,12,185,234,58,12,140,126,65,166,30,131,200,148,245,3,19,106,131,167,113,182,94,59,
+245,236,71,182,64,42,180,179,30,9,83,140,158,145,14,63,27,19,215,160,224,115,207,80,13,68,211,76,78,65,80,115,156,111,182,65,235,130,90,200,126,36,31,166,42,219,192,216,207,145,56,32,158,62,211,170,115,
+233,195,9,7,67,198,79,78,167,56,203,62,206,237,128,201,112,160,19,146,110,47,148,143,78,126,207,192,31,212,122,80,5,51,113,48,227,116,61,248,50,217,176,236,72,230,37,193,63,78,121,200,2,163,243,229,39,
+56,183,35,61,158,197,186,227,61,70,0,29,178,59,129,218,175,155,69,25,0,78,15,56,197,230,160,185,198,65,206,45,189,125,240,50,70,123,152,222,208,237,200,18,28,96,29,215,154,135,81,201,25,54,164,122,245,
+60,80,5,127,58,66,6,22,213,122,246,211,216,159,67,128,132,14,228,113,223,145,218,162,102,145,142,118,219,3,206,79,151,167,110,61,120,7,202,201,29,200,206,120,7,60,138,176,109,216,17,132,36,158,198,242,
+244,250,99,27,173,138,147,237,212,99,165,70,99,149,15,17,142,184,230,242,228,31,66,50,214,227,7,147,159,65,207,208,2,13,185,39,121,132,1,212,21,211,241,142,61,84,113,215,61,56,62,184,166,24,163,60,9,33,
+25,231,3,251,52,3,248,12,55,232,114,50,112,106,214,37,228,108,67,201,4,11,249,73,250,255,0,170,28,118,35,0,31,99,72,209,158,187,118,251,173,245,193,199,191,16,28,99,62,158,253,168,2,153,182,206,65,104,
+138,242,115,139,94,227,182,204,15,110,189,185,168,154,218,2,49,149,7,25,249,86,18,125,58,249,131,161,244,246,228,243,87,202,146,120,145,129,245,55,247,57,61,49,247,173,72,252,191,62,42,23,71,235,246,156,
+103,168,55,179,156,31,252,4,198,120,236,125,125,120,0,160,246,144,17,187,33,184,231,48,68,73,0,99,170,177,39,39,142,1,61,178,49,77,251,21,177,228,39,126,49,10,159,97,214,55,32,100,100,103,36,100,12,242,
+51,161,180,176,0,220,1,211,63,233,183,36,254,4,91,143,126,196,254,24,164,199,80,110,216,30,57,23,83,224,118,231,247,35,57,247,233,208,116,224,2,137,179,139,146,17,199,31,243,193,15,94,56,255,0,69,235,
+235,211,142,188,212,77,101,24,25,8,91,156,12,196,128,156,142,115,254,141,183,219,60,103,183,76,85,230,100,76,19,168,1,244,184,35,29,49,203,38,115,245,32,30,123,84,79,33,35,141,65,148,116,255,0,143,148,
+57,199,95,189,30,14,125,55,114,56,239,64,21,69,140,125,4,81,251,225,98,7,215,156,64,8,199,115,211,183,74,99,105,195,56,242,99,200,4,228,160,236,121,201,16,99,159,175,124,228,115,86,25,159,39,26,131,158,
+223,235,99,61,122,140,40,92,116,39,24,231,0,113,205,68,99,144,143,248,253,144,14,199,123,99,240,196,131,158,249,254,180,1,9,210,228,3,136,20,169,29,122,245,231,145,246,98,70,123,0,127,250,200,116,233,
+64,59,98,136,119,251,169,199,78,239,10,143,192,143,229,79,242,159,63,242,16,147,167,240,239,111,110,9,156,144,79,167,126,49,210,163,120,110,58,139,201,182,228,115,184,140,250,224,11,158,135,211,142,231,
+28,1,64,17,255,0,101,221,49,225,34,81,201,203,121,74,56,231,146,96,39,191,185,30,190,136,116,219,177,156,45,190,7,173,196,104,51,208,245,136,19,237,129,207,95,76,30,85,193,39,23,83,183,175,204,217,30,
+135,105,186,25,35,39,128,115,129,248,80,214,183,44,8,23,55,67,142,235,156,117,231,230,187,239,249,156,125,40,2,51,166,94,127,211,170,131,219,237,17,145,146,122,156,46,113,140,19,199,30,131,188,109,166,
+221,103,62,101,152,199,247,103,80,123,224,228,145,219,61,0,231,191,60,184,218,223,103,229,185,156,143,239,52,40,217,247,63,233,7,159,215,174,125,154,45,174,250,121,210,185,207,56,130,44,31,76,157,231,
+142,153,7,143,126,244,1,3,105,87,120,207,157,109,142,122,92,175,242,4,245,207,126,121,252,42,22,210,110,249,62,124,32,28,144,69,204,138,191,129,200,29,7,4,140,85,195,111,113,156,72,210,46,72,231,236,136,
+73,36,228,242,8,4,250,101,179,154,141,173,28,224,238,124,224,115,246,116,81,142,153,198,27,143,230,115,222,128,51,219,78,185,82,49,121,110,63,222,188,108,245,231,33,164,0,245,3,25,231,190,121,168,218,
+210,231,167,219,109,8,245,55,101,114,112,113,146,36,227,168,7,39,215,25,173,47,179,48,24,46,223,141,188,125,134,63,231,151,110,7,115,193,231,165,49,173,185,36,153,15,24,192,134,48,61,193,255,0,70,99,143,
+199,31,168,160,12,179,101,49,201,251,77,155,40,36,127,199,240,7,25,234,65,118,61,248,227,208,247,200,139,236,165,7,204,116,243,198,126,123,192,204,127,49,146,58,12,158,189,179,90,77,107,27,12,22,192,61,
+71,145,19,117,232,112,109,129,4,123,224,117,207,165,48,216,194,63,229,164,128,17,159,248,245,129,191,19,182,219,60,103,182,120,29,121,160,12,209,16,28,99,77,29,142,38,13,159,174,208,73,234,126,153,39,
+7,165,39,147,156,252,150,39,158,129,198,51,199,57,104,200,57,227,131,192,239,138,186,214,182,163,146,242,156,117,34,214,44,143,81,129,105,245,233,147,239,140,84,38,27,76,31,158,224,231,28,173,160,0,227,
+166,113,109,140,159,195,191,61,112,1,80,192,132,255,0,171,178,207,253,117,135,129,215,180,124,16,120,60,14,221,58,84,38,0,79,2,203,4,247,120,255,0,14,76,39,167,78,222,185,237,87,76,54,217,249,90,232,1,
+211,54,225,125,7,4,68,24,30,123,117,199,177,53,25,181,181,110,76,183,35,223,99,12,158,128,125,206,115,211,235,218,128,41,24,8,232,182,39,158,130,72,65,245,239,16,252,71,230,78,105,62,201,49,60,65,102,
+122,247,132,159,196,148,28,118,198,58,246,233,87,141,173,176,201,50,220,140,100,100,166,115,142,79,6,60,159,231,143,76,84,38,11,67,156,77,40,0,158,118,194,167,215,171,39,76,99,7,24,60,244,235,64,21,154,
+218,233,122,89,217,158,196,129,15,115,215,3,0,140,118,235,253,26,97,186,3,31,102,178,95,127,42,60,250,114,20,250,14,72,234,122,241,193,180,22,205,115,137,228,36,99,37,150,220,227,175,67,229,130,71,94,
+115,138,112,22,157,174,92,253,35,181,35,24,62,138,123,116,198,122,128,57,192,160,10,95,103,186,63,242,206,221,125,64,36,30,253,195,129,220,119,0,116,227,176,109,110,6,65,88,216,224,231,247,196,1,211,63,
+198,122,2,56,244,239,199,55,11,218,118,157,241,232,98,182,231,174,58,197,252,243,245,168,241,110,67,108,153,198,14,115,228,218,145,237,213,71,160,234,65,233,158,152,0,16,125,154,96,56,91,117,199,7,51,
+14,199,191,239,122,254,61,241,211,138,104,130,229,84,156,219,145,254,244,156,255,0,192,132,216,200,244,44,62,152,53,96,136,192,4,92,31,248,18,89,128,79,226,195,3,142,135,7,185,61,170,54,49,158,4,228,142,
+248,54,159,135,10,195,129,232,121,207,94,132,80,4,63,190,29,86,3,146,120,204,170,113,144,15,30,113,201,193,207,60,146,14,122,228,39,239,178,71,151,7,174,79,154,120,246,63,104,246,192,192,245,192,231,53,
+54,87,168,153,216,123,165,187,30,185,198,55,131,245,201,206,56,60,83,90,80,58,221,72,0,235,182,40,115,248,237,148,126,25,199,185,56,205,0,66,101,117,56,43,24,239,133,89,6,49,192,228,74,73,245,192,28,251,
+26,111,155,198,91,0,159,238,9,179,207,224,126,185,39,175,110,6,102,251,66,28,147,125,56,246,54,227,142,115,206,36,110,51,207,224,122,212,77,37,161,36,29,66,76,159,91,87,200,62,195,105,4,103,243,61,70,
+6,40,1,11,33,232,95,62,129,38,29,126,171,128,59,14,115,212,228,28,83,27,98,231,33,191,24,92,156,142,195,35,128,71,78,191,83,214,134,54,195,56,212,102,57,235,182,207,60,245,39,152,191,51,76,243,109,201,
+57,212,39,56,56,230,200,231,30,188,40,227,147,198,121,31,136,160,4,201,60,171,30,115,255,0,46,237,159,209,113,158,115,142,59,244,207,17,178,228,140,239,60,118,128,254,103,229,207,92,231,146,78,122,102,
+166,19,91,224,238,191,159,161,228,217,156,250,129,207,126,158,153,193,200,61,159,230,91,17,198,160,228,247,205,187,131,245,32,91,201,211,145,212,16,122,122,80,5,67,26,175,80,253,8,59,145,215,240,206,87,
+183,25,237,232,105,76,104,113,202,142,221,14,127,34,195,63,159,99,211,173,90,197,179,117,212,8,39,24,205,180,231,31,136,177,35,223,169,28,211,127,209,79,93,72,241,211,54,211,113,244,255,0,137,121,199,
+229,248,26,0,173,178,53,28,177,36,140,240,8,224,117,228,72,121,24,200,0,126,125,138,180,18,212,12,141,68,184,207,35,201,144,99,166,122,105,120,30,231,168,193,227,147,69,0,125,140,111,84,158,116,249,23,
+36,103,62,104,29,58,159,248,151,40,3,3,174,62,180,11,188,228,11,17,142,48,197,238,7,232,52,227,147,129,207,191,57,231,3,17,174,98,83,180,219,48,227,141,175,6,125,243,133,36,241,216,140,245,245,160,92,
+162,224,172,119,43,158,160,48,60,228,227,33,98,3,28,14,164,112,56,247,0,218,243,195,12,253,147,25,29,86,75,144,222,188,3,167,47,29,177,211,56,245,21,11,62,121,251,60,167,60,159,223,220,12,126,31,217,196,
+114,121,239,216,241,200,25,102,248,124,199,202,185,35,147,192,231,39,167,27,64,36,115,142,125,120,244,120,191,36,96,45,224,25,238,88,242,7,79,149,112,6,7,183,81,207,39,0,22,139,142,84,193,41,25,254,245,
+211,240,127,218,251,0,245,237,140,224,246,205,66,230,35,198,201,84,244,28,93,2,61,57,22,35,175,56,235,253,106,47,181,28,240,183,152,245,222,202,123,246,56,32,28,30,127,3,140,138,79,181,205,147,181,46,
+134,8,193,51,17,159,169,33,115,131,159,92,231,62,185,0,71,85,39,42,215,94,131,31,107,192,231,215,236,7,62,252,251,123,80,161,200,3,205,184,92,244,226,108,103,32,227,15,98,57,207,208,14,132,241,74,215,
+179,140,127,175,94,15,45,114,136,125,192,39,112,252,61,65,197,51,237,87,45,200,123,146,113,200,23,86,248,0,251,236,39,191,175,78,122,80,2,150,184,94,60,201,191,224,68,3,223,156,27,33,245,62,128,142,113,
+138,97,23,12,114,38,144,113,140,43,169,56,30,223,99,219,239,193,200,197,40,158,114,78,69,219,19,193,205,202,16,62,152,76,19,248,119,30,185,40,94,98,56,146,112,112,70,214,153,72,28,99,147,228,159,199,160,
+253,69,0,70,99,155,248,166,156,30,121,221,110,3,125,9,180,0,255,0,250,248,239,76,2,224,125,214,152,142,122,189,143,96,125,109,243,234,114,61,71,28,226,149,154,78,3,57,233,213,231,136,118,60,252,208,156,
+227,190,61,254,180,132,115,205,192,94,153,205,196,24,227,31,244,195,29,61,125,198,121,160,4,243,46,1,234,120,25,57,54,36,231,232,45,8,246,193,228,158,221,5,63,204,186,60,134,60,246,31,96,29,241,212,219,
+46,51,192,224,28,15,108,138,174,234,135,12,215,160,115,218,124,156,244,31,118,53,3,208,227,60,19,219,57,136,182,51,254,152,15,80,15,218,27,39,29,115,132,220,7,29,122,96,119,20,1,124,125,184,244,87,32,
+115,195,88,30,57,56,255,0,84,59,119,3,233,206,105,27,237,189,2,176,232,14,69,139,15,167,8,59,242,49,156,15,173,80,14,164,228,221,41,227,56,251,91,130,64,62,131,147,192,224,17,244,7,20,214,146,54,206,46,
+212,123,249,238,79,169,206,20,146,59,224,231,140,244,160,11,140,111,64,27,137,231,32,252,182,224,18,121,232,189,56,235,131,199,29,185,17,31,180,182,119,153,48,56,249,68,68,243,142,193,137,233,156,118,
+245,235,84,204,144,144,127,210,184,82,58,60,135,145,129,198,24,96,117,234,64,245,235,202,121,177,15,185,124,87,215,24,227,215,172,199,191,98,7,56,250,0,11,44,37,201,36,206,202,1,229,146,51,208,14,57,206,
+57,252,127,12,138,65,44,185,0,44,216,7,24,9,207,78,135,4,14,190,196,254,181,80,202,156,129,168,76,122,224,40,81,255,0,160,201,211,158,216,245,226,151,13,128,69,252,195,140,145,216,147,244,114,125,189,
+120,56,247,0,186,37,155,4,254,245,7,32,255,0,163,182,114,79,174,229,236,71,126,227,131,217,165,164,207,47,56,198,70,22,39,63,78,60,225,131,235,156,117,234,64,170,140,142,216,198,161,49,198,51,185,38,36,
+156,255,0,178,216,198,56,201,31,92,14,104,10,193,177,246,153,75,2,62,240,96,9,232,0,220,61,184,3,169,234,40,2,203,3,193,47,116,115,235,9,233,199,64,101,61,206,120,29,79,224,98,33,122,153,110,65,4,245,
+182,108,1,215,174,91,145,198,78,7,28,99,189,27,100,199,19,144,71,25,198,8,207,208,110,56,199,39,168,233,158,69,0,204,184,255,0,72,124,118,11,147,142,216,249,71,78,189,71,57,20,0,223,50,53,56,243,166,199,
+247,124,130,63,45,209,145,207,57,228,246,29,122,187,205,182,232,210,59,103,63,122,52,231,3,29,192,192,193,201,231,242,234,79,54,112,64,251,76,195,223,99,244,255,0,128,183,225,212,240,113,140,82,137,238,
+49,129,113,47,67,201,18,131,232,56,243,15,176,207,226,120,160,4,243,109,148,231,121,235,199,238,162,35,142,157,121,237,73,246,152,186,249,139,129,255,0,76,163,7,242,2,154,102,187,198,62,210,199,57,235,
+246,142,217,238,175,156,246,247,198,56,198,41,76,147,176,230,227,0,99,35,55,192,147,147,217,102,39,168,199,24,29,56,160,6,27,139,96,14,251,164,92,231,131,18,128,167,183,63,55,25,255,0,100,122,119,168,
+77,213,160,255,0,151,200,142,50,6,20,40,231,223,203,7,240,199,231,222,81,36,170,114,110,23,61,129,123,209,145,233,143,181,47,230,125,58,83,140,242,240,126,208,171,208,147,155,146,70,6,58,181,217,231,147,
+207,92,247,233,128,8,62,211,106,72,197,200,233,156,5,97,158,188,255,0,171,199,32,245,227,20,211,115,6,56,156,17,156,100,110,29,189,64,246,199,127,76,224,96,90,251,76,205,144,183,155,72,29,65,156,145,200,
+231,113,186,94,249,207,191,94,244,11,155,156,115,126,252,122,75,48,232,113,208,92,158,163,143,124,158,185,160,10,191,107,132,2,4,224,99,174,233,74,228,117,28,49,227,233,220,245,165,91,178,6,212,157,177,
+211,10,238,65,207,3,4,58,131,143,76,117,57,198,48,106,216,158,102,231,251,73,198,125,94,86,207,95,75,179,244,36,0,50,123,227,20,221,215,76,79,252,77,6,211,144,1,105,192,234,51,146,46,143,82,15,110,190,
+160,2,64,34,251,84,195,254,90,202,71,251,18,177,3,215,172,153,207,183,229,156,208,47,37,7,253,101,231,61,7,152,216,56,36,231,133,39,156,118,246,199,106,148,69,54,121,212,128,206,9,217,37,195,117,201,237,
+113,249,127,44,211,197,188,235,143,248,152,182,73,199,47,112,184,7,29,71,152,71,161,228,254,57,28,0,48,205,43,14,102,187,35,208,201,40,35,190,14,83,158,222,158,227,209,84,207,158,26,236,147,208,139,134,
+82,63,242,17,30,190,153,245,244,119,145,113,128,70,160,196,142,127,214,200,79,110,153,124,251,183,234,56,169,86,59,176,184,251,108,108,112,49,150,99,219,184,12,71,215,223,156,142,77,0,70,22,240,12,135,
+190,28,129,204,231,211,128,79,151,130,71,176,199,126,51,75,186,233,115,153,110,113,206,1,187,199,61,191,229,153,61,61,71,56,235,145,195,188,171,178,73,251,84,39,146,62,102,113,198,71,28,41,252,58,142,
+1,165,242,175,59,220,64,125,203,74,58,246,200,24,199,83,198,120,62,188,16,6,9,39,231,116,178,227,142,126,214,1,28,243,147,228,156,227,219,57,252,6,37,89,46,8,192,121,219,142,162,240,231,176,227,22,185,
+62,221,79,208,212,38,41,242,63,210,108,193,32,100,180,115,176,199,224,121,250,158,112,63,2,223,34,94,79,218,172,185,207,72,36,207,212,229,73,192,207,124,31,74,0,186,26,98,0,43,63,24,57,107,198,3,3,3,141,
+214,221,184,227,143,124,158,140,46,225,185,87,56,199,91,198,35,177,233,246,64,120,254,167,131,129,80,44,19,103,137,109,155,35,160,129,137,200,206,120,48,144,58,30,135,29,58,84,158,77,208,31,44,214,202,
+125,77,163,96,119,235,229,1,201,56,255,0,245,80,4,155,228,231,168,245,205,204,164,245,57,24,54,97,189,59,231,61,42,54,154,69,234,161,184,25,45,51,30,153,254,245,186,145,143,248,9,7,167,99,71,151,114,163,
+31,106,178,4,30,65,178,92,247,200,201,192,29,57,244,238,59,210,4,156,12,253,170,204,250,109,178,143,110,7,82,8,151,61,58,96,112,127,28,0,11,121,179,130,19,32,245,222,231,30,248,40,15,96,112,6,127,163,
+190,222,191,197,28,109,234,55,62,123,100,28,128,63,47,112,73,52,111,148,112,110,45,185,207,63,100,136,116,7,156,52,195,144,7,113,212,145,147,221,222,108,184,255,0,143,216,87,32,99,253,30,219,244,204,224,
+142,59,103,142,252,245,0,70,190,135,161,132,145,192,198,36,32,15,78,19,24,28,96,156,96,250,113,72,183,113,28,98,216,228,19,201,142,126,185,29,113,183,57,231,158,61,120,57,160,201,33,7,55,214,231,253,232,
+45,128,29,59,27,130,62,152,63,135,28,166,93,191,229,250,215,129,208,69,108,15,111,73,152,116,239,219,234,0,0,18,53,192,32,17,20,105,233,186,25,185,235,144,50,248,227,61,251,231,174,51,76,107,149,206,15,
+148,188,242,68,82,115,223,168,148,31,175,35,215,158,200,3,140,145,113,110,121,234,69,175,60,250,43,99,39,175,36,224,103,156,226,165,1,128,249,174,173,7,191,151,11,99,29,70,124,207,167,111,124,224,208,
+3,86,120,201,192,145,115,234,81,176,64,192,3,155,161,199,80,123,96,253,13,27,227,57,253,244,92,227,130,172,56,232,51,254,150,190,131,28,144,9,199,96,105,217,43,207,218,44,219,146,57,91,96,71,78,129,166,
+76,103,28,242,121,228,115,74,28,140,124,246,140,72,228,110,180,95,200,137,241,158,195,145,130,15,92,240,0,128,32,63,235,97,247,224,240,123,112,110,201,201,57,244,233,237,82,175,76,9,16,15,117,7,142,63,
+233,179,122,14,58,115,193,244,80,222,214,231,158,190,116,0,100,231,57,196,167,60,14,160,247,231,34,158,17,28,18,68,68,156,242,183,17,159,253,172,24,31,76,174,125,207,20,0,171,8,110,119,171,28,245,1,8,
+231,61,140,249,24,237,140,99,25,2,158,109,155,56,14,128,246,201,10,123,231,143,180,224,18,125,123,147,193,230,162,242,98,61,81,14,51,201,157,51,239,210,124,241,199,4,12,125,77,56,121,81,241,229,70,253,
+249,148,55,243,156,1,248,96,254,148,1,100,90,56,27,141,196,99,175,25,139,243,32,204,113,142,184,239,200,246,167,249,36,125,233,20,159,111,178,128,79,108,124,192,224,243,193,39,167,92,212,42,201,242,176,
+180,136,227,145,135,30,252,2,46,134,79,57,199,225,236,103,4,145,197,162,3,198,62,99,158,190,191,110,201,200,244,250,103,208,2,65,30,238,55,177,29,113,182,44,114,61,152,255,0,34,49,201,29,140,162,12,156,
+0,126,172,169,143,113,192,98,15,191,106,128,23,255,0,159,60,156,140,109,124,125,14,126,218,199,166,14,49,201,231,62,174,30,97,7,54,133,125,127,210,100,7,3,142,139,114,216,61,121,199,127,122,0,178,176,
+145,209,119,114,112,55,42,243,142,156,194,73,207,3,166,59,246,169,86,30,0,242,192,245,38,69,7,31,95,178,227,30,156,228,125,42,154,249,171,200,181,39,60,127,199,244,231,220,15,188,121,56,198,59,122,242,
+49,32,50,19,205,169,206,59,222,76,78,61,129,76,117,247,250,19,154,0,178,32,206,73,10,113,216,92,109,207,97,156,68,184,237,253,105,12,65,64,59,120,30,151,68,123,103,43,25,61,115,198,120,199,76,98,160,37,
+129,63,232,172,61,254,214,15,227,204,103,29,123,2,51,244,167,43,185,207,250,59,99,175,23,100,227,219,229,136,99,232,64,244,197,0,59,49,228,253,252,131,200,251,99,145,199,108,52,99,158,195,7,161,236,57,
+167,22,139,209,187,3,251,252,251,244,250,247,31,151,28,51,229,111,249,99,46,125,22,233,121,224,119,104,125,114,122,146,125,170,79,44,99,38,11,159,108,222,34,129,216,224,249,4,123,113,219,183,160,3,67,
+38,14,55,143,164,175,128,7,176,96,56,24,231,244,21,32,104,78,51,188,224,117,243,246,254,24,243,179,211,219,31,78,148,208,176,174,73,138,227,219,253,50,54,250,244,131,174,7,65,212,231,222,157,230,219,14,
+12,87,25,237,254,151,22,127,16,109,254,167,169,227,29,59,128,74,100,128,129,137,10,241,211,237,71,249,249,252,127,158,49,213,68,200,56,18,72,6,70,15,218,11,99,220,126,255,0,245,231,175,83,138,65,45,175,
+104,167,36,1,159,244,152,27,243,6,60,103,167,32,125,112,77,74,46,109,70,223,221,73,145,208,23,183,108,114,58,226,46,252,122,115,64,10,46,84,3,254,147,56,231,7,108,142,120,62,132,76,64,235,208,14,61,241,
+79,23,49,16,115,61,225,56,28,137,29,191,155,28,119,252,49,223,56,104,158,212,113,181,193,201,224,188,62,216,227,106,231,62,135,29,123,244,15,23,48,131,208,99,176,118,143,56,239,141,167,174,56,207,56,247,
+238,0,225,50,127,207,205,216,201,254,35,149,245,199,14,59,129,233,199,7,61,229,19,40,233,115,41,231,57,33,72,231,212,52,135,31,128,31,76,244,106,221,38,56,41,131,140,140,0,1,224,117,4,142,195,255,0,173,
+78,23,125,0,84,249,122,156,245,244,3,14,8,31,67,140,128,115,215,0,18,9,87,57,23,77,238,10,39,56,25,24,37,27,168,60,115,245,167,249,232,58,221,33,247,45,8,56,62,219,65,253,57,193,244,225,5,192,25,98,21,
+123,28,172,167,30,234,68,202,56,207,35,140,244,197,56,74,237,202,144,192,14,48,39,82,51,193,228,221,1,159,192,244,206,123,16,8,94,101,232,183,104,0,206,14,99,127,168,192,129,207,110,228,126,32,102,162,
+243,88,158,110,226,62,129,160,136,143,124,110,183,239,238,123,113,218,174,102,94,15,204,127,221,55,7,190,58,27,177,250,100,82,179,204,189,1,57,29,146,115,223,57,1,175,115,208,119,0,245,24,234,104,2,183,
+156,216,195,93,64,0,31,243,233,22,114,58,116,133,114,49,223,57,201,28,2,70,24,100,234,86,237,65,25,200,91,72,199,168,234,66,140,158,185,60,126,88,169,140,147,147,247,36,36,119,217,49,199,212,125,183,7,
+245,30,134,154,210,78,63,231,177,232,78,34,144,145,128,123,253,180,159,208,243,129,158,244,1,22,246,251,162,238,53,244,205,149,187,103,39,221,191,166,115,211,189,56,72,200,51,246,152,9,206,114,44,98,24,
+198,8,227,37,127,50,57,25,226,158,39,148,140,21,149,137,236,82,80,195,159,67,117,158,123,99,168,7,223,1,150,94,115,20,141,198,62,111,180,2,62,161,110,48,115,199,25,56,201,227,131,64,12,50,179,16,26,231,
+211,254,92,97,35,29,128,200,98,163,0,15,215,166,48,162,82,160,149,185,24,231,165,172,67,215,61,16,15,108,117,237,205,56,74,224,125,199,4,127,179,115,199,30,191,106,4,1,199,113,158,14,7,100,55,18,114,26,
+55,42,79,67,231,168,246,199,250,73,233,195,96,231,245,2,128,32,50,190,114,179,54,113,213,96,140,112,123,96,35,1,211,212,126,20,138,100,39,150,145,187,140,193,14,73,228,113,251,176,123,243,200,237,207,
+106,153,110,19,28,194,192,231,57,95,59,118,59,228,180,196,103,28,126,28,117,20,227,36,77,146,99,126,163,25,50,0,7,124,230,124,241,158,196,99,61,186,16,6,144,248,255,0,86,199,161,199,147,10,250,103,160,
+199,168,253,115,218,163,44,221,224,152,117,201,9,7,182,74,130,140,15,62,188,244,25,61,76,251,173,127,138,35,248,75,38,71,175,30,118,127,151,111,65,82,160,180,63,194,87,39,161,184,145,73,231,29,12,195,
+30,156,100,103,52,1,68,182,58,219,74,65,60,110,22,170,120,24,201,253,217,207,215,219,29,113,73,247,176,69,174,121,201,6,75,65,156,244,235,7,61,135,28,127,49,165,229,217,28,16,153,207,82,110,228,29,176,
+122,77,142,62,167,235,154,113,134,207,130,177,144,72,234,183,57,245,28,150,185,36,251,142,58,14,58,208,6,96,4,228,11,49,158,128,125,162,208,144,112,58,143,179,145,159,166,125,58,114,91,229,50,156,253,
+137,9,61,9,154,204,247,228,255,0,199,191,183,61,127,199,65,162,131,36,40,113,206,65,251,68,32,255,0,227,243,159,243,248,210,8,97,245,151,140,224,249,246,103,161,244,251,71,110,122,142,220,231,154,0,162,
+82,110,246,145,140,131,199,153,103,147,207,39,152,71,108,228,117,56,24,233,74,169,40,7,108,17,129,212,96,217,144,15,253,248,94,254,227,160,227,154,187,228,65,158,26,81,144,114,76,246,103,167,79,249,104,
+125,125,15,210,157,229,198,50,3,190,58,115,61,128,199,62,234,65,236,79,3,36,116,38,128,42,170,220,168,33,81,23,211,30,74,159,192,172,92,127,35,244,198,16,173,235,117,41,193,207,252,178,60,241,215,48,245,
+192,227,233,233,210,201,142,48,15,205,216,117,155,79,239,212,103,203,250,244,0,28,98,161,112,113,129,32,3,208,79,166,113,238,51,25,239,198,61,59,245,160,10,237,29,209,227,204,140,28,15,151,202,140,147,
+215,28,44,4,100,156,117,35,250,80,35,184,31,122,104,7,166,33,66,113,238,60,144,1,252,122,244,167,148,108,103,204,28,18,51,231,233,167,62,159,242,196,227,243,199,175,20,204,72,188,150,92,127,179,62,156,
+56,239,147,229,30,123,241,211,191,108,128,63,51,47,31,105,183,36,28,12,90,198,78,127,239,158,195,159,108,123,28,5,231,25,63,105,140,245,4,11,53,233,193,231,35,142,131,177,235,208,212,44,242,245,19,108,
+246,23,154,122,238,252,82,223,35,232,91,140,99,189,52,51,146,7,154,184,245,55,150,135,243,219,1,201,201,252,115,239,154,0,176,101,159,24,75,200,199,183,217,74,243,215,61,15,63,151,108,103,154,141,154,
+232,243,246,203,118,198,15,250,134,4,253,126,65,147,245,235,142,56,160,23,193,249,227,35,57,230,238,221,115,142,63,231,129,207,94,50,70,51,219,60,160,36,156,230,44,116,230,246,12,142,252,124,139,193,239,
+144,49,142,189,40,1,133,238,14,65,185,139,0,118,86,7,212,142,72,207,35,24,28,1,138,141,154,64,49,246,132,207,95,245,96,231,216,14,73,244,201,199,182,77,74,193,155,163,219,129,187,254,130,48,3,142,220,
+110,81,216,127,158,145,152,228,60,121,240,143,111,237,8,113,216,103,31,105,92,30,73,224,127,245,192,33,50,50,242,102,143,212,145,30,9,250,224,0,49,158,167,169,60,228,1,77,50,231,254,91,71,255,0,125,99,
+219,156,50,224,244,227,31,83,154,178,176,63,121,35,39,142,63,180,33,207,32,231,173,198,113,201,239,215,60,82,152,88,115,189,51,200,44,215,240,131,219,161,251,74,159,110,130,128,42,153,216,96,9,162,4,100,
+253,242,8,193,234,71,153,145,245,3,3,39,210,161,123,153,143,73,16,128,120,196,142,185,207,127,150,79,229,145,211,175,36,92,251,57,36,102,88,199,127,249,8,196,7,254,59,119,159,243,248,83,126,198,14,51,
+52,39,35,190,160,59,145,215,109,208,29,125,126,156,138,0,207,55,50,147,204,144,131,220,249,204,199,158,48,51,32,35,242,244,233,154,172,247,110,58,205,22,220,246,120,243,142,49,146,243,142,120,63,94,9,
+239,157,134,177,4,114,214,248,255,0,175,240,14,126,130,255,0,159,193,126,128,85,118,211,99,39,150,140,14,191,241,250,113,158,191,195,125,211,35,161,254,93,0,51,126,220,164,99,207,199,29,85,237,114,113,
+142,135,237,57,108,3,129,211,235,192,166,27,194,72,34,232,40,234,1,91,102,252,241,116,73,61,135,62,156,14,49,120,233,200,57,18,91,175,25,195,106,12,8,63,65,123,159,204,145,200,24,237,81,29,50,62,88,203,
+25,25,193,85,212,79,35,156,252,166,241,135,32,244,30,222,134,128,41,155,166,31,242,222,22,231,140,193,25,227,215,137,243,248,240,61,64,226,163,55,57,255,0,151,136,212,251,67,9,29,71,111,63,35,175,57,3,
+28,158,217,171,205,167,219,12,101,135,28,243,126,113,211,158,5,193,201,253,127,153,128,216,91,131,129,33,7,145,255,0,31,236,57,199,60,7,224,114,51,207,28,243,64,21,77,207,173,212,106,70,115,251,152,207,
+25,233,145,33,24,61,176,115,248,212,127,104,206,7,219,35,227,166,96,140,126,4,137,51,248,159,199,35,138,180,108,162,92,144,235,223,57,191,144,28,117,227,247,157,51,201,200,61,136,231,25,132,218,39,110,
+70,56,11,122,204,73,235,220,147,211,142,120,247,233,64,16,22,47,130,111,45,152,246,221,12,68,253,48,100,30,189,251,250,115,77,242,115,130,46,161,35,147,133,180,143,28,118,200,118,228,30,64,247,239,205,
+56,192,249,27,98,118,82,217,63,233,68,146,63,224,46,59,103,168,60,211,124,147,156,53,181,200,238,63,210,91,25,30,228,183,56,198,112,113,156,224,224,226,128,29,228,72,249,2,120,78,112,6,109,192,207,168,
+202,28,142,220,228,30,192,99,147,19,217,76,64,219,37,184,30,173,5,206,63,151,25,207,92,253,57,233,46,199,28,8,110,113,212,1,120,84,231,156,127,16,233,220,2,59,116,235,76,43,38,79,238,175,1,35,63,45,193,
+115,232,9,199,57,227,191,231,210,128,32,251,20,153,249,158,208,103,183,145,114,9,252,131,14,121,57,227,24,52,191,98,110,10,201,111,147,156,126,230,94,160,246,6,32,115,207,35,142,157,187,203,182,69,228,
+197,126,79,174,75,100,30,58,109,97,142,217,63,202,144,253,168,231,106,222,227,176,33,198,122,113,140,1,212,243,142,190,156,242,0,193,99,55,80,45,95,28,224,193,39,7,159,88,191,207,165,40,178,184,207,41,
+100,62,168,71,243,65,219,39,212,123,99,133,6,243,161,138,243,169,201,49,179,103,167,125,189,115,200,192,227,158,153,225,142,215,4,242,183,132,241,144,33,32,245,7,0,236,198,7,28,100,244,31,64,1,47,216,
+238,200,202,199,167,124,189,50,164,114,120,192,196,71,57,235,206,115,145,245,164,54,247,67,36,195,101,145,217,68,156,119,234,45,200,233,206,227,129,239,215,17,40,155,140,199,123,131,211,247,39,60,99,57,
+249,57,206,123,122,30,180,224,173,159,155,251,65,71,25,217,15,56,207,76,24,192,250,103,184,252,64,3,28,92,161,230,43,46,113,193,18,156,126,6,219,31,168,254,85,3,187,231,253,77,137,239,146,238,163,240,
+31,103,199,61,128,29,115,158,149,103,202,28,145,38,166,61,51,111,22,49,245,224,245,232,48,58,146,113,216,242,65,56,50,234,127,132,49,129,212,250,176,255,0,3,205,0,84,243,73,227,236,250,120,3,60,43,146,
+8,39,185,49,3,147,199,57,192,207,76,103,44,50,133,206,45,237,58,159,186,196,245,199,111,36,115,239,219,28,123,104,136,49,200,125,64,145,146,127,115,2,231,223,146,72,199,25,200,247,29,170,35,25,254,22,
+191,207,171,73,108,15,190,84,99,31,152,250,80,6,121,184,97,194,218,90,18,120,201,146,79,174,48,177,156,245,29,187,126,2,22,154,67,159,244,107,69,56,201,62,100,223,200,70,8,244,200,4,142,131,34,181,60,
+150,111,188,215,231,142,72,150,34,9,62,191,63,115,158,253,248,30,160,180,82,1,15,127,234,114,232,15,94,58,79,140,123,0,14,63,2,0,48,204,131,57,104,173,9,232,113,45,208,32,147,142,71,151,130,61,57,231,
+145,214,162,103,79,227,130,212,46,70,14,249,201,28,142,126,101,231,57,247,234,126,181,191,246,20,32,252,218,137,235,146,100,207,229,251,225,143,194,154,218,122,0,15,252,76,0,245,44,122,244,198,76,160,
+122,99,215,168,160,14,112,188,36,238,17,195,128,57,3,205,57,4,99,141,197,122,99,208,129,223,111,57,20,39,4,68,153,29,247,73,248,28,130,112,121,231,28,143,124,86,239,246,105,201,10,111,57,231,230,121,58,
+113,207,203,48,246,228,113,218,134,210,110,48,63,214,144,122,102,105,206,73,245,196,237,219,233,236,5,0,115,239,26,179,15,145,58,117,45,118,121,235,215,33,112,14,0,60,129,215,142,112,211,10,116,100,143,
+215,45,113,58,15,168,82,114,61,63,200,173,179,166,92,143,249,103,51,103,161,18,92,145,215,31,243,215,119,233,193,238,114,42,38,176,188,24,196,115,14,112,121,187,39,176,224,137,70,63,175,243,0,197,48,169,
+224,45,167,76,252,211,200,49,255,0,125,16,58,103,158,131,191,67,72,109,65,234,182,89,35,32,155,135,7,182,57,193,232,58,115,212,113,233,91,98,198,236,2,124,171,174,228,237,91,230,39,241,19,144,71,83,208,
+99,191,67,81,27,43,188,100,173,224,199,32,176,189,81,216,3,247,206,59,156,244,201,244,4,80,6,55,217,85,127,138,219,175,107,178,15,29,70,50,15,185,3,29,71,78,40,16,38,48,166,220,16,57,43,121,25,29,123,
+135,114,112,61,70,115,158,49,90,77,5,218,224,133,185,201,207,32,220,227,25,227,239,35,3,199,182,9,250,138,140,197,120,9,33,47,115,223,13,63,184,207,205,24,30,252,113,158,156,10,0,160,109,206,51,190,6,
+29,126,91,164,4,231,216,115,128,125,243,206,51,205,70,96,108,252,200,140,63,218,186,78,112,61,73,61,129,231,29,249,24,6,175,56,212,23,128,47,64,39,24,253,225,60,255,0,192,7,215,161,236,6,115,196,37,181,
+19,193,75,146,0,224,21,148,113,159,120,206,113,142,217,228,208,5,38,128,119,75,124,22,39,6,245,7,7,35,28,198,121,24,235,237,192,206,112,159,103,143,35,104,182,231,146,77,252,62,184,233,228,146,71,57,39,
+143,199,53,97,158,96,126,107,107,178,115,215,99,183,78,159,55,216,216,144,64,239,198,115,239,76,222,228,29,208,94,14,123,161,218,14,49,147,190,211,211,174,1,252,57,36,2,179,64,1,56,54,188,117,63,105,73,
+6,71,35,133,128,253,114,0,25,231,142,13,11,7,57,2,15,114,36,192,60,231,144,33,238,63,193,106,87,112,71,250,171,128,70,127,231,154,158,59,128,108,137,239,215,25,29,106,7,216,127,229,156,222,164,177,136,
+254,159,96,3,143,76,231,175,35,176,3,154,22,232,162,28,159,71,56,207,64,79,238,57,207,212,31,90,104,181,159,31,242,201,135,126,89,189,199,38,2,1,198,113,142,184,61,121,21,14,35,228,121,60,129,206,225,
+30,79,231,106,58,103,161,245,63,131,118,103,4,68,7,96,3,42,253,15,201,106,120,227,218,128,37,54,142,121,99,24,255,0,190,177,249,11,86,198,125,122,125,58,84,77,108,125,34,24,239,134,63,150,109,57,29,249,
+252,185,52,223,45,6,114,137,145,253,230,36,30,253,26,16,56,199,110,15,94,57,168,241,25,60,193,17,231,168,81,207,177,196,99,25,245,35,175,214,128,36,54,135,166,251,85,206,87,230,141,1,3,39,131,254,133,
+131,142,185,247,233,212,210,253,141,186,153,173,61,7,200,141,159,160,251,15,115,238,62,152,3,13,217,30,51,246,104,248,57,27,67,245,56,234,2,1,142,125,184,252,203,138,198,49,136,17,73,254,242,73,211,175,
+240,227,219,131,193,160,6,155,89,1,202,188,24,247,134,30,71,61,63,209,84,142,126,160,99,30,229,162,218,94,128,91,144,49,200,142,62,248,60,145,111,253,51,252,170,96,0,28,44,121,199,42,98,147,211,219,39,
+235,143,108,100,80,76,217,4,8,241,201,226,222,102,235,220,2,7,66,0,231,167,126,162,128,42,27,105,65,231,201,7,57,57,42,7,78,192,219,99,35,29,73,192,35,158,194,163,251,51,115,185,226,231,0,237,117,0,1,
+244,182,25,199,92,147,236,58,86,145,123,156,112,84,113,255,0,60,37,254,164,0,62,189,58,98,143,50,239,158,1,63,221,17,62,113,236,62,247,115,192,224,251,118,0,200,107,88,65,63,53,185,245,37,148,145,237,
+205,177,31,82,123,142,157,233,162,221,113,242,139,126,61,199,110,128,31,177,100,103,175,31,67,214,181,204,151,3,36,64,73,24,199,238,38,61,72,207,4,128,122,114,48,191,128,168,119,93,130,72,183,35,63,244,
+236,217,231,62,231,131,223,4,224,241,64,25,198,221,142,73,48,14,58,121,204,61,250,139,69,30,156,158,249,231,20,159,102,99,198,228,246,196,242,96,158,115,146,32,31,142,115,252,235,75,117,241,228,64,192,
+142,254,84,192,126,37,20,224,119,233,192,235,212,84,103,237,223,197,3,243,143,227,153,115,159,103,199,175,7,7,131,199,165,0,103,53,182,8,249,128,192,234,38,185,57,61,184,242,71,175,61,56,193,197,87,146,
+9,49,254,185,113,208,141,247,108,199,4,14,130,44,122,146,8,244,29,50,78,179,155,210,70,45,223,234,37,147,35,158,188,169,3,175,76,241,211,60,102,171,176,186,239,109,43,103,158,36,113,199,76,253,211,156,
+15,225,29,113,198,13,0,100,249,108,9,204,174,71,39,253,85,201,237,140,252,214,231,56,253,71,30,244,224,174,62,237,195,14,248,22,178,49,237,147,204,30,254,231,131,211,165,105,121,50,159,191,105,55,169,
+34,105,187,228,227,5,0,231,57,239,199,30,193,134,12,117,179,184,108,228,228,201,49,3,56,245,43,207,168,239,219,7,130,1,156,82,112,14,46,39,250,181,148,128,14,157,205,184,25,231,140,19,199,82,71,88,74,
+92,158,13,212,216,234,74,218,184,60,117,25,251,54,58,250,145,211,156,86,153,133,78,127,208,230,82,70,239,189,49,232,122,156,57,247,234,125,48,58,82,11,104,200,207,149,42,242,73,31,63,177,231,115,251,241,
+223,25,205,0,103,237,148,125,235,155,158,231,152,91,60,14,199,202,0,247,236,59,211,4,110,58,61,209,234,78,45,89,179,212,100,144,23,182,70,72,238,120,199,21,172,45,224,83,196,76,125,132,106,91,191,172,
+160,158,157,191,253,72,98,182,231,54,175,143,250,228,59,227,161,23,88,29,255,0,199,181,0,101,21,159,158,110,179,140,12,195,42,146,6,121,36,70,223,200,140,147,239,76,38,111,226,107,222,59,108,184,28,228,
+117,2,15,126,115,140,113,90,166,59,80,9,251,54,222,184,204,10,248,25,24,233,117,147,159,76,3,222,162,48,217,159,191,26,169,233,134,181,113,249,127,165,12,231,167,57,235,239,146,1,156,50,58,199,116,196,
+247,217,62,57,32,100,255,0,163,159,127,94,113,200,233,69,95,16,89,240,4,49,18,70,6,235,89,14,15,127,189,115,140,247,206,122,242,125,1,64,31,69,125,162,60,225,165,188,60,146,114,24,30,131,169,37,27,35,
+61,55,16,120,164,18,68,199,1,238,121,254,243,56,206,59,255,0,175,233,215,215,3,57,239,82,60,231,25,51,42,140,227,44,170,1,228,116,219,35,12,100,15,94,132,156,84,102,102,28,139,136,88,247,220,139,158,61,
+213,11,100,250,131,147,215,38,128,16,199,19,54,127,121,147,158,76,132,251,30,178,19,130,120,232,127,83,148,48,195,140,153,49,140,240,89,1,35,3,3,145,158,115,235,223,185,166,51,179,15,245,246,103,184,12,
+167,112,207,24,198,7,175,28,126,57,198,64,242,14,147,89,99,3,254,122,142,248,198,21,122,241,201,227,245,228,1,124,168,178,165,101,82,113,207,239,149,125,250,109,110,70,125,248,236,15,37,26,4,207,202,32,
+110,188,9,211,61,8,199,205,11,14,14,115,250,241,209,67,190,57,158,200,115,247,115,50,243,199,35,42,7,28,116,207,110,120,52,198,126,6,103,180,221,236,211,227,140,142,118,129,220,147,207,215,156,154,0,12,
+24,192,48,131,233,254,147,14,61,56,255,0,70,61,206,123,28,126,116,8,177,128,45,17,129,231,63,104,132,131,215,140,155,110,227,250,84,100,41,60,92,89,2,71,117,148,227,156,119,35,233,147,200,233,218,161,
+8,9,255,0,143,219,62,189,60,169,137,227,176,196,128,244,231,36,251,227,38,128,39,49,174,73,251,36,92,113,143,180,219,146,15,35,248,160,250,244,3,191,109,160,55,203,13,247,108,99,250,125,162,219,112,250,
+21,132,3,211,129,208,123,83,12,96,253,235,171,97,130,113,136,102,102,207,208,205,144,122,116,235,239,138,54,237,255,0,150,214,207,131,222,214,115,193,24,32,19,48,83,235,199,211,189,0,35,91,228,1,246,72,
+251,142,110,109,70,238,71,92,218,146,72,235,146,199,57,29,122,208,150,172,51,139,72,84,247,2,75,102,233,156,103,22,103,4,126,185,36,226,164,37,112,9,146,217,114,58,139,25,122,15,117,184,4,143,192,31,161,
+197,52,50,47,75,152,62,163,79,118,60,100,255,0,20,164,227,142,73,62,135,158,192,13,54,224,116,180,66,65,254,244,7,131,215,165,176,0,28,228,100,99,175,190,16,219,49,198,109,35,28,12,128,34,232,71,35,2,
+30,152,60,1,250,228,211,154,113,140,139,187,98,50,63,230,30,231,30,156,110,193,207,126,115,146,106,22,144,243,254,153,1,235,192,211,95,142,185,254,38,246,237,219,60,208,4,203,0,7,155,108,14,56,1,64,35,
+159,72,198,15,29,70,59,81,229,71,131,251,136,70,79,70,13,145,145,193,60,113,239,142,78,61,56,170,222,97,199,23,208,41,57,200,254,206,117,244,63,220,198,8,237,207,3,61,248,60,233,65,192,191,136,12,30,69,
+131,12,0,51,255,0,60,241,143,92,144,62,184,160,9,188,164,28,121,86,131,174,119,52,191,150,86,69,94,221,59,246,29,41,164,34,228,4,180,199,251,38,224,99,128,78,118,206,64,235,198,49,140,84,34,105,15,63,
+108,71,224,15,248,246,117,61,7,172,36,30,0,199,97,219,0,230,147,237,47,158,46,97,3,253,171,101,39,142,159,48,132,145,232,49,207,78,135,38,128,39,3,28,134,178,80,59,19,125,235,140,127,173,32,159,94,14,
+56,25,56,165,15,199,6,207,220,143,237,3,207,61,132,139,219,176,232,127,0,107,53,196,164,28,92,67,147,220,68,23,167,214,28,253,59,251,99,53,3,203,54,6,110,242,59,100,0,57,56,60,249,39,3,147,235,158,104,
+3,80,206,196,5,205,177,29,112,19,81,62,253,77,193,199,62,217,231,181,64,101,126,161,109,113,158,164,223,3,199,92,102,224,118,231,28,16,57,247,172,255,0,61,134,65,184,76,3,140,124,157,122,231,253,72,235,
+130,122,83,76,171,207,204,173,142,184,42,70,121,228,102,221,127,207,79,74,0,209,243,192,35,229,182,207,25,62,102,160,71,94,160,27,146,189,249,254,116,214,184,92,146,82,220,224,12,230,91,222,120,231,254,
+94,134,61,123,126,184,172,255,0,53,7,252,179,86,231,254,122,32,30,216,6,221,176,7,28,254,99,138,85,184,143,31,234,179,158,187,103,81,207,111,249,96,56,227,174,48,113,211,52,1,120,92,174,113,178,30,224,
+98,91,226,6,58,255,0,203,223,110,220,240,106,88,238,23,254,153,130,71,37,26,243,24,231,251,215,44,15,127,211,165,103,125,169,9,255,0,143,124,175,80,77,202,142,51,211,31,103,4,245,250,17,207,189,59,237,
+144,30,26,204,224,119,251,64,108,142,51,140,66,115,235,142,57,29,142,40,3,87,205,67,247,153,72,233,141,247,96,254,146,149,193,57,207,126,190,213,32,48,185,59,131,55,29,165,188,24,39,61,114,88,250,123,
+118,244,172,102,187,133,135,22,123,64,200,229,200,252,126,88,88,118,231,24,231,161,29,207,180,197,156,125,156,128,51,193,102,199,57,207,63,103,233,199,174,7,29,168,3,111,203,181,25,202,178,241,145,153,
+231,39,145,199,4,240,14,7,59,9,166,109,182,199,221,145,64,244,185,157,65,25,3,39,49,183,78,231,63,153,172,161,61,187,28,121,73,128,56,220,88,246,29,8,141,121,199,167,124,227,173,60,60,7,164,17,158,115,
+144,36,29,58,146,78,51,131,146,70,223,166,71,20,1,164,5,169,56,47,40,7,31,118,226,102,30,195,136,215,156,115,200,235,223,0,237,121,75,98,64,73,31,183,89,166,28,231,29,211,57,31,203,245,203,243,162,94,
+60,148,81,212,157,239,199,184,27,248,0,118,193,228,12,119,195,188,235,118,7,40,128,250,151,144,145,212,159,225,192,250,227,61,15,166,64,52,252,164,207,23,18,125,76,179,183,124,246,140,227,24,61,241,145,
+218,147,236,170,249,63,106,101,25,57,221,44,184,207,215,202,228,244,238,70,58,142,107,59,48,17,242,133,30,184,145,142,127,60,122,244,7,166,120,60,83,247,91,129,243,96,143,247,152,244,239,200,31,79,195,
+243,0,190,45,81,115,139,213,83,206,127,126,248,224,231,159,151,56,39,219,244,166,125,157,1,230,228,17,211,34,86,35,63,66,163,29,206,71,30,216,170,130,72,139,13,132,99,175,221,7,29,63,188,157,125,121,32,
+122,26,112,43,207,39,219,230,136,113,159,78,6,127,30,6,113,212,80,5,143,179,160,60,221,142,127,186,55,96,140,96,147,184,126,29,58,227,62,177,176,140,3,254,144,91,4,145,136,145,179,207,253,116,7,191,57,
+30,180,205,241,240,50,237,236,178,192,156,246,245,207,191,229,78,93,128,130,97,148,129,211,18,194,127,148,108,71,233,211,184,52,0,192,34,63,122,98,65,60,230,4,39,175,169,159,57,250,245,254,79,81,111,158,
+160,250,230,217,72,56,231,60,92,96,125,61,251,98,158,29,15,72,238,7,98,5,196,107,201,206,1,31,103,35,3,167,56,237,198,69,42,130,217,2,59,214,32,116,23,73,183,158,152,2,220,142,0,35,128,58,17,142,244,0,
+187,173,177,202,70,112,123,90,70,192,159,66,26,114,123,251,28,227,7,154,136,189,160,57,40,172,127,218,177,64,23,156,244,251,64,3,212,159,204,154,178,33,144,129,242,95,47,25,192,154,34,121,224,253,228,
+76,240,6,15,79,233,32,243,144,17,155,242,135,0,97,237,155,25,235,140,54,121,60,28,14,167,174,6,40,2,152,158,197,65,249,83,174,79,250,10,54,122,99,111,250,65,253,9,231,235,192,39,182,96,0,133,28,127,216,
+57,7,161,192,253,227,112,49,223,39,177,60,28,217,109,205,193,254,209,198,50,67,27,97,192,206,113,251,229,193,62,135,220,247,57,140,195,147,146,53,22,233,140,77,108,7,124,255,0,203,192,57,35,234,0,39,20,
+1,84,203,7,36,90,198,163,3,25,211,227,63,160,36,142,56,206,14,56,62,180,171,44,67,159,179,66,115,145,205,156,75,245,192,3,61,186,18,49,215,21,41,88,148,243,30,164,113,253,233,160,235,142,196,72,195,4,
+131,207,78,49,159,71,134,139,128,35,212,187,242,215,80,16,57,206,64,18,168,245,254,132,113,128,8,68,170,72,197,180,24,207,123,82,49,233,140,62,50,122,1,140,227,158,189,44,70,87,188,86,249,61,246,109,24,
+39,146,126,108,145,215,212,15,196,97,119,196,160,134,23,131,60,227,237,150,195,243,38,235,168,239,156,115,158,185,165,6,46,191,233,99,159,249,255,0,181,232,71,24,2,239,131,158,160,145,199,127,64,5,44,
+112,118,165,143,232,115,244,221,34,227,140,247,244,168,247,72,57,95,178,41,28,100,57,94,231,166,46,49,142,189,143,25,206,50,64,176,146,91,227,230,55,25,4,18,90,234,205,142,61,57,188,32,250,250,244,231,
+168,50,121,208,142,158,105,199,80,110,173,151,161,233,129,123,207,244,246,230,128,32,82,228,96,181,153,39,185,152,156,129,212,128,101,127,212,14,157,177,78,17,57,234,182,140,9,192,253,238,62,128,29,227,
+147,142,223,78,252,216,243,237,200,195,66,252,255,0,122,234,223,140,122,226,247,39,175,28,156,113,244,165,251,69,176,251,145,39,76,97,238,147,159,195,237,140,7,31,151,167,168,4,95,103,113,206,219,101,
+232,87,247,236,64,255,0,200,216,7,241,56,237,208,26,112,138,76,114,246,160,2,114,11,220,30,227,156,139,145,223,174,115,158,245,101,110,227,7,34,11,127,111,222,196,252,227,175,250,242,48,79,187,103,143,
+94,36,23,74,196,97,45,87,211,115,91,177,231,208,121,205,201,224,241,142,157,135,0,2,168,87,234,36,183,0,113,133,55,68,251,244,188,35,61,120,227,240,207,46,11,46,70,37,136,14,112,72,191,56,207,210,103,
+30,135,174,62,152,171,158,97,60,230,215,110,115,196,22,237,198,72,207,203,39,60,156,251,131,235,75,231,32,198,249,109,215,29,15,217,226,233,223,248,199,79,76,147,233,64,21,182,205,147,135,136,250,254,
+234,253,142,1,61,129,231,174,125,59,14,40,72,231,238,233,131,128,118,219,106,103,158,122,0,199,185,39,129,192,63,133,92,23,81,12,127,164,219,103,39,173,165,175,65,198,126,121,125,186,156,228,12,113,158,
+29,231,161,4,253,178,219,145,218,214,205,112,9,224,2,174,127,28,156,30,195,7,20,1,2,198,113,243,75,130,14,127,227,211,82,35,7,174,1,137,207,175,184,207,3,142,1,9,7,229,145,178,122,159,177,106,32,114,0,
+227,253,23,147,219,160,35,181,75,231,66,120,107,235,85,233,255,0,46,246,199,211,174,95,169,244,231,57,245,232,240,209,144,64,212,109,84,231,169,181,183,251,184,234,127,120,65,252,7,29,199,90,0,96,89,113,
+247,221,123,15,244,93,73,123,30,194,14,72,227,28,115,72,166,112,216,105,37,39,140,98,223,82,29,79,0,238,136,118,239,156,115,200,169,194,168,224,234,86,143,140,103,253,18,211,39,57,193,25,236,122,115,156,
+227,160,205,76,176,219,156,3,168,91,2,114,72,251,45,168,7,60,240,64,24,231,167,167,57,238,104,2,4,73,91,163,92,147,207,11,5,232,237,142,166,48,78,61,9,199,29,9,21,40,138,115,255,0,63,71,35,188,87,0,227,
+211,37,27,245,198,58,115,210,166,22,182,172,14,53,27,54,62,240,70,190,157,213,72,24,239,211,39,219,25,119,217,45,176,113,125,107,207,56,38,37,63,136,222,164,116,228,17,232,122,230,128,35,17,74,63,229,
+141,211,103,131,128,224,14,123,228,174,71,235,143,67,154,95,40,131,243,65,112,58,228,18,196,145,207,56,243,240,63,33,192,233,142,178,125,146,223,248,174,172,143,161,243,227,29,253,21,254,163,35,181,59,
+236,105,156,165,197,145,246,51,145,199,56,192,25,206,8,207,169,7,211,168,4,94,79,76,91,77,207,251,126,195,167,239,14,120,7,140,243,219,190,87,236,242,158,22,210,111,251,252,71,28,100,224,49,239,211,145,
+158,188,245,47,251,50,175,37,236,220,143,89,100,39,142,227,7,45,215,142,254,196,145,74,45,201,24,63,100,192,244,89,59,15,247,28,117,239,223,190,50,77,0,62,59,121,250,27,39,235,222,227,177,199,99,50,228,
+250,130,7,167,168,167,27,86,35,155,23,200,235,153,128,60,123,253,171,235,198,7,94,216,197,66,97,62,150,196,142,51,231,149,7,215,27,163,252,7,32,96,100,12,98,144,41,7,104,16,14,57,197,209,3,191,76,66,127,
+201,206,104,2,210,217,3,140,217,199,207,247,238,48,125,191,229,224,145,235,131,159,241,156,90,0,50,44,226,255,0,192,181,25,233,156,126,244,255,0,94,217,172,240,183,3,133,104,128,56,198,47,228,95,167,68,
+30,253,125,250,116,169,20,220,140,114,164,14,1,26,163,146,15,167,9,236,49,207,122,0,184,33,135,144,109,98,227,174,47,151,35,158,78,64,60,100,227,147,215,28,247,43,246,120,8,33,109,144,99,158,110,131,96,
+99,1,134,67,14,59,96,118,252,106,37,158,227,0,23,24,245,254,211,151,61,177,184,40,60,14,227,60,241,128,14,104,55,19,12,143,57,7,78,127,180,110,79,110,73,196,96,114,126,157,253,133,0,74,45,225,198,221,
+153,227,31,37,202,156,122,241,246,115,142,112,48,125,79,61,40,16,66,0,204,83,96,142,0,185,64,72,233,218,223,57,199,126,56,60,128,9,168,188,251,131,140,73,184,240,79,250,124,153,233,216,52,89,231,56,3,
+36,142,135,208,200,175,114,126,111,52,41,255,0,106,254,64,127,244,73,192,239,193,253,115,64,18,44,86,153,249,163,157,122,112,215,64,254,28,68,152,36,240,123,158,189,79,46,49,88,96,156,92,113,159,187,113,
+147,223,160,233,158,167,167,242,168,252,233,84,0,210,169,35,177,212,164,7,156,30,155,20,99,142,188,117,232,121,164,251,101,192,232,98,29,57,107,231,126,59,117,115,201,36,31,195,56,20,1,50,37,161,251,143,
+122,184,245,185,193,3,35,182,59,103,176,197,74,30,37,24,86,187,115,237,57,108,129,206,73,4,96,227,160,231,57,24,25,205,84,23,243,140,130,208,31,92,221,183,225,214,85,57,29,178,8,198,58,246,79,237,73,87,
+35,108,103,160,24,155,112,57,198,115,251,210,49,245,60,99,218,128,44,121,170,73,203,95,123,29,242,118,231,248,92,15,167,25,61,15,76,83,119,163,28,238,188,35,161,249,165,30,199,165,194,227,28,241,193,198,
+63,24,127,181,152,0,12,104,113,212,7,24,4,242,51,135,35,167,60,28,156,251,80,218,160,39,34,56,248,29,11,18,71,191,18,14,254,167,215,138,0,156,178,40,4,203,112,51,216,188,217,247,198,102,61,51,211,60,250,
+250,155,227,96,14,38,96,120,230,73,206,61,65,253,248,30,228,129,140,14,181,18,106,188,12,68,135,191,202,216,250,158,100,237,215,36,244,198,106,65,170,113,150,132,19,220,151,83,223,175,223,35,158,120,224,
+147,159,122,0,82,70,14,217,138,103,143,191,49,36,113,201,197,226,129,159,200,253,5,27,100,0,1,118,199,174,57,152,253,57,251,89,56,199,3,60,227,223,154,107,106,144,145,145,30,79,112,21,78,115,216,31,48,
+142,79,182,114,122,118,168,151,81,141,191,229,136,206,114,6,192,121,28,255,0,112,142,49,140,147,199,167,20,0,240,178,2,73,154,85,30,165,152,15,127,249,106,221,125,206,63,30,41,193,36,63,118,237,136,244,
+220,199,183,64,60,204,227,240,24,29,136,232,171,169,196,64,37,85,113,145,141,139,211,143,250,96,199,143,167,97,207,34,166,251,109,179,112,85,139,28,125,216,206,114,113,233,105,198,126,131,140,1,223,0,
+21,10,130,112,110,92,144,115,192,144,15,124,183,152,0,0,244,4,99,154,148,71,25,3,55,50,144,49,159,222,1,207,60,114,216,199,211,145,216,156,230,172,125,170,219,145,229,203,233,146,140,56,3,140,147,103,
+140,227,211,216,129,198,105,69,205,176,28,9,84,103,146,73,192,228,112,9,177,219,156,251,241,131,222,128,33,242,227,35,34,226,112,7,25,50,28,99,254,250,198,59,250,245,245,20,134,48,113,137,238,50,127,136,
+72,158,167,158,100,250,115,206,63,149,131,118,139,202,249,196,100,224,134,92,119,227,230,178,39,25,25,62,135,61,184,167,125,176,128,78,251,128,56,28,148,96,122,103,57,176,0,143,108,17,239,214,128,42,253,
+153,178,9,187,189,95,76,74,8,231,177,253,230,7,94,113,201,207,110,239,16,48,227,237,247,185,199,4,75,158,14,122,126,240,255,0,81,252,170,113,118,15,33,228,231,158,35,143,4,123,145,97,215,241,238,71,57,
+20,162,102,24,32,203,147,206,49,0,231,220,181,131,99,142,132,129,233,140,80,4,2,48,131,105,189,188,7,61,221,241,147,232,124,197,239,232,58,130,71,57,166,178,198,51,255,0,19,11,128,125,222,66,121,250,206,
+188,228,241,249,253,46,249,237,145,135,184,3,185,243,32,7,223,24,178,0,147,233,248,210,25,37,110,146,222,231,160,217,36,71,235,143,244,81,215,158,6,61,64,239,64,20,25,70,56,189,185,35,183,205,46,88,240,
+48,187,110,9,36,30,158,135,243,164,242,178,14,46,174,207,95,249,105,42,244,228,245,153,191,30,57,199,175,75,224,220,117,13,168,14,79,83,1,206,123,252,182,217,199,215,25,199,30,129,71,218,27,172,183,163,
+142,141,229,28,116,231,63,101,234,122,241,199,212,117,0,204,104,91,25,55,23,39,147,143,154,92,224,123,121,184,244,232,61,243,211,49,24,2,242,247,23,103,190,4,146,143,78,199,112,239,211,140,231,2,182,12,
+119,68,127,173,185,192,235,251,132,98,125,57,107,92,156,250,118,199,20,195,109,114,113,153,174,151,35,31,241,231,25,231,234,45,91,4,158,58,99,212,244,192,6,64,17,127,207,107,195,215,254,90,125,59,16,123,
+247,227,130,120,227,133,253,222,113,230,93,31,66,93,56,29,79,87,92,122,100,119,193,173,70,176,184,99,254,178,118,207,65,246,40,137,31,157,137,60,245,35,191,227,147,27,105,115,30,175,54,120,224,216,33,
+239,158,71,217,23,61,58,99,191,124,145,64,25,68,195,217,174,115,206,65,40,87,0,244,200,152,99,158,199,39,62,167,154,105,120,207,1,101,98,49,156,149,245,247,148,156,243,158,157,7,25,230,180,127,179,103,
+4,159,50,76,115,193,210,211,32,99,212,89,243,239,131,156,103,156,83,77,132,153,198,230,231,160,58,72,97,223,56,34,219,211,30,157,248,235,64,20,65,0,225,97,148,146,120,0,169,7,158,7,14,15,175,60,122,244,
+52,110,32,140,194,223,66,205,215,7,183,218,122,123,241,244,237,86,205,132,199,36,38,121,28,157,38,48,58,244,203,91,55,110,157,253,70,41,134,198,101,31,114,44,255,0,216,50,60,228,158,120,251,16,60,245,
+237,219,20,1,0,145,9,230,21,7,60,228,182,115,233,205,214,15,78,61,127,42,60,200,249,37,85,121,3,3,60,115,129,143,244,229,246,232,51,83,11,27,130,120,133,78,56,192,211,96,234,112,7,38,211,35,62,231,39,
+168,237,144,216,220,255,0,113,212,140,224,255,0,102,91,40,227,220,70,61,58,112,56,6,128,33,51,70,167,133,228,30,165,93,177,143,166,160,152,250,117,31,76,83,124,204,243,242,158,120,27,92,250,245,7,84,99,
+211,216,116,169,26,206,232,114,35,144,142,128,125,138,16,57,207,65,143,81,206,48,8,199,182,99,107,123,181,234,142,59,96,90,91,18,123,242,126,81,159,243,212,28,128,70,100,199,36,160,231,131,178,65,130,
+113,207,58,136,0,131,144,0,244,230,144,77,33,201,30,89,231,130,235,48,30,185,4,94,183,110,78,51,245,160,193,114,167,59,38,62,161,97,181,94,128,117,201,35,128,122,247,238,57,52,210,183,60,230,27,145,140,
+228,132,182,232,61,121,81,237,193,31,142,121,0,107,76,228,242,35,24,235,180,78,62,167,139,193,144,125,251,117,247,137,166,193,57,147,111,176,50,5,237,198,214,189,231,215,168,31,202,164,104,174,155,254,
+89,206,115,158,177,219,131,248,126,243,147,142,189,57,252,234,45,151,11,247,132,202,58,16,82,215,175,35,167,157,187,60,246,57,63,76,96,1,134,99,193,89,219,142,114,164,242,49,233,246,182,227,212,247,207,
+231,27,74,199,59,110,101,4,103,161,95,200,102,124,125,15,63,161,167,144,253,203,30,71,222,138,1,200,28,127,203,198,115,239,143,199,174,88,209,177,25,42,152,3,56,34,0,123,115,242,221,143,212,243,233,210,
+128,35,243,37,4,226,226,227,167,124,127,241,210,61,57,231,214,154,94,228,231,109,195,245,231,33,9,61,121,4,176,199,108,240,115,207,214,134,83,255,0,60,99,246,201,65,234,6,115,57,250,241,159,175,90,111,
+150,199,63,184,139,29,129,216,71,98,15,250,194,50,63,16,61,73,232,0,194,110,136,39,237,46,79,65,242,192,192,113,211,229,36,227,159,239,103,63,170,109,185,201,63,108,108,159,88,128,233,211,161,32,15,167,
+191,28,83,140,4,144,12,22,216,207,252,242,140,228,99,218,80,6,56,234,58,228,158,212,141,8,92,129,4,3,208,249,49,17,140,14,131,205,63,146,156,241,239,200,0,99,144,12,201,114,217,60,147,177,0,56,255,0,121,
+9,244,252,185,61,170,35,19,49,200,185,97,159,69,136,231,240,54,238,57,247,231,219,154,83,2,131,207,217,65,193,255,0,151,88,122,12,241,254,180,156,140,245,231,143,209,68,104,167,33,96,193,254,236,49,47,
+28,250,134,252,57,235,222,128,26,109,228,108,226,229,201,35,24,48,219,243,140,127,211,175,94,15,113,239,220,6,155,105,65,3,207,111,251,226,17,244,4,11,82,7,232,61,125,172,24,195,14,177,144,73,4,8,211,
+245,4,31,95,166,113,211,165,69,246,113,217,91,216,162,64,15,174,78,99,7,61,51,140,114,122,1,64,16,181,180,223,195,41,57,3,32,136,7,183,63,232,217,228,14,120,255,0,235,71,229,76,0,204,170,62,83,192,242,
+51,147,236,109,200,239,207,95,174,65,171,45,104,1,36,153,7,31,243,206,217,187,123,196,65,7,140,117,35,220,211,77,184,237,36,131,60,96,67,100,50,56,200,230,15,94,49,201,207,211,20,1,158,240,76,75,98,81,
+144,9,1,90,223,39,130,1,32,64,7,92,117,28,227,60,241,150,152,36,192,57,222,216,198,67,70,7,35,7,27,109,15,35,185,39,29,77,93,54,228,19,243,191,209,146,192,12,246,28,219,140,126,60,119,206,121,165,251,
+58,145,131,51,40,244,205,142,7,95,72,8,24,231,158,158,157,104,2,134,203,172,96,100,0,15,2,88,15,30,131,125,137,60,156,245,60,243,206,51,154,178,71,62,112,67,238,233,141,246,237,201,199,97,96,79,166,15,
+235,220,106,189,159,204,118,204,196,117,198,251,54,246,28,27,95,151,167,80,70,73,56,231,172,102,198,66,48,178,30,48,79,205,107,145,219,147,246,76,227,243,231,147,214,128,50,140,87,25,229,100,231,25,255,
+0,83,219,39,60,218,169,60,100,100,122,128,71,97,27,68,227,172,46,122,129,196,88,56,32,28,98,30,64,239,200,231,7,142,13,105,53,147,146,219,164,39,183,91,115,211,161,194,219,47,126,163,35,63,169,133,172,
+99,94,11,100,241,147,178,18,6,122,253,235,83,142,220,103,241,60,0,1,79,202,99,140,68,192,224,228,226,3,147,219,59,160,63,161,206,61,106,51,108,236,112,35,207,61,60,171,99,142,252,145,1,32,99,147,142,7,
+225,87,133,156,67,39,205,81,233,251,168,241,192,29,64,128,14,216,251,191,143,90,133,173,147,39,19,127,223,49,162,227,62,254,64,199,28,227,146,56,236,104,2,161,177,234,76,27,134,72,201,134,216,14,58,14,
+45,143,126,249,246,62,161,62,193,223,236,153,29,135,217,226,39,147,215,38,220,126,159,83,193,230,215,217,35,224,249,237,200,238,132,244,232,0,242,49,143,82,48,51,158,13,55,236,182,216,193,184,57,255,0,
+174,12,112,15,161,17,14,122,156,122,227,166,120,0,166,214,138,58,90,227,158,73,180,67,207,160,2,22,28,125,70,127,58,136,216,68,126,244,3,185,230,197,27,223,140,70,189,59,28,159,83,146,42,228,150,150,227,
+145,60,143,255,0,110,174,113,143,125,128,99,167,57,232,56,21,1,183,140,31,190,196,118,255,0,69,63,207,31,208,250,118,160,8,134,159,24,225,96,94,61,44,135,28,243,147,198,125,240,126,81,198,122,138,83,96,
+163,56,183,207,83,197,152,35,143,112,220,115,147,130,120,207,230,243,20,56,25,144,142,184,30,67,117,39,143,249,102,73,35,241,235,143,122,144,91,196,220,137,70,70,58,192,64,231,217,163,80,58,100,158,72,
+31,78,64,32,22,27,137,11,110,192,156,112,45,87,219,160,223,156,228,103,142,194,144,216,57,207,250,59,158,57,197,176,24,231,190,199,237,245,6,167,107,116,207,18,194,59,114,129,71,183,32,3,158,56,201,224,
+96,240,49,76,251,48,228,137,98,3,142,70,9,228,243,141,192,142,185,61,199,214,128,43,125,141,131,115,3,128,9,233,12,170,122,224,114,179,47,174,51,207,81,158,244,215,183,76,224,197,34,158,163,17,206,49,
+238,0,185,92,227,240,231,142,217,51,253,141,9,221,231,161,198,120,219,17,227,60,140,152,207,62,128,1,233,156,227,44,107,116,32,128,240,142,78,79,151,1,110,217,198,244,28,147,223,175,7,173,0,66,32,81,201,
+243,130,129,208,172,252,30,1,63,241,247,146,49,212,241,233,156,245,60,180,110,166,110,184,0,155,132,199,166,1,185,94,156,30,160,30,51,79,251,24,254,25,84,253,35,181,39,32,251,69,199,28,255,0,250,185,105,
+128,41,249,164,3,175,38,27,82,115,158,185,49,231,140,143,78,199,156,242,0,213,130,46,225,152,117,193,150,224,17,215,166,53,0,7,166,15,167,90,26,24,112,71,217,220,142,188,220,78,79,230,186,150,115,236,
+63,253,107,246,120,201,200,151,56,31,243,202,219,161,199,28,195,212,1,235,193,193,236,41,166,218,46,79,44,79,109,150,152,245,207,220,81,159,199,159,175,80,6,152,97,193,62,91,47,25,207,157,116,8,57,39,
+5,142,160,220,115,250,231,61,139,12,113,14,78,225,156,255,0,29,235,115,236,62,223,212,241,223,158,224,154,26,4,192,62,83,231,183,252,120,175,79,109,192,244,200,232,73,245,206,51,7,150,132,243,12,231,29,
+182,217,17,142,49,141,217,227,29,135,255,0,92,128,43,45,185,207,14,0,4,114,47,187,118,230,244,142,157,70,71,60,243,197,51,22,206,121,121,61,14,5,215,245,190,237,142,224,244,29,122,84,155,19,31,241,237,
+114,57,3,38,43,3,212,99,248,79,25,238,78,58,122,83,114,170,121,183,148,129,221,161,180,3,211,39,4,140,14,254,249,201,227,144,8,60,155,83,144,25,242,120,229,110,186,159,127,182,28,14,122,99,166,79,28,2,
+134,218,17,200,50,17,142,0,134,126,159,87,185,56,233,158,14,49,219,173,76,100,78,241,58,231,39,30,77,161,56,231,130,49,254,125,42,22,185,81,192,129,136,39,146,214,214,167,249,1,206,121,56,56,199,52,0,
+209,107,22,57,51,3,142,9,183,115,143,81,196,237,212,146,114,0,61,79,181,52,218,33,63,235,103,29,72,63,103,148,116,227,131,130,188,118,198,120,246,52,227,48,57,196,113,131,198,71,217,173,248,207,108,242,
+13,70,101,97,199,148,152,235,197,156,45,142,115,147,149,252,123,244,62,148,1,27,219,176,227,207,152,174,113,150,130,64,121,56,237,9,3,28,156,2,122,17,156,14,99,104,72,200,18,202,192,250,43,14,216,234,
+45,243,193,231,158,125,186,84,226,82,114,70,23,215,253,2,2,115,244,48,158,167,249,154,113,148,140,54,246,62,203,166,90,159,203,16,247,236,122,125,56,20,1,68,218,191,7,124,252,142,132,1,145,211,63,52,36,
+254,35,159,99,205,70,109,31,156,249,131,175,81,22,113,212,14,109,186,254,63,253,125,31,49,177,144,39,250,157,46,220,119,199,81,0,207,167,242,224,115,19,207,41,192,50,74,190,128,233,144,28,228,12,127,203,
+179,119,228,117,237,219,25,0,207,107,105,135,35,121,81,206,127,119,156,19,254,205,183,60,142,132,127,58,104,138,227,182,240,7,166,1,207,95,249,246,246,236,57,247,171,234,243,30,178,76,122,224,157,58,32,
+15,183,22,103,175,190,58,250,209,155,162,78,12,196,103,31,241,227,26,231,30,132,91,12,224,113,192,250,158,212,1,158,203,117,253,210,195,63,198,238,56,28,156,109,181,200,237,147,158,56,28,100,102,7,75,
+174,190,88,63,246,241,46,59,117,204,11,158,167,39,143,97,218,182,60,153,216,252,201,54,9,25,205,179,131,212,244,11,107,140,250,246,239,238,81,173,165,61,35,184,252,32,151,161,233,159,244,38,235,245,255,
+0,235,128,99,42,92,15,249,98,57,201,226,230,78,14,120,225,130,227,223,252,154,102,201,142,115,106,167,156,146,103,144,253,73,193,24,192,30,132,99,63,90,218,251,51,158,12,87,152,245,88,216,231,254,250,
+180,7,175,166,58,12,99,35,14,54,160,12,24,47,153,176,57,249,199,61,123,91,126,157,51,244,205,0,96,178,55,79,179,168,92,231,42,238,71,110,57,148,116,238,8,233,249,24,139,1,144,214,160,143,121,84,30,216,
+227,206,39,242,233,207,92,138,218,54,121,231,236,183,61,8,249,141,192,233,236,176,142,71,76,96,112,123,241,81,27,21,231,16,158,167,37,164,185,7,245,136,250,123,254,148,1,148,178,160,255,0,150,56,246,14,
+195,235,130,102,28,156,126,93,112,50,41,193,209,143,49,176,29,57,118,36,240,113,202,220,22,247,62,217,28,214,129,176,82,7,238,179,220,97,238,8,244,207,16,15,235,212,122,81,246,4,198,12,9,233,204,151,64,
+228,142,163,40,172,56,227,0,158,58,145,147,64,25,228,193,208,91,150,207,24,23,12,58,251,25,240,61,177,207,173,68,86,220,240,108,206,79,67,231,140,243,232,126,208,79,35,156,241,159,76,227,58,103,78,140,
+156,180,10,71,94,36,186,57,207,61,50,71,63,152,247,206,41,126,197,16,60,69,179,63,236,204,126,153,59,212,253,73,231,235,220,3,52,165,160,35,117,155,100,129,201,156,18,167,212,226,114,79,92,146,7,7,183,
+52,4,181,207,201,106,220,224,103,120,97,208,99,172,135,215,3,143,204,114,111,27,88,186,225,186,125,209,230,227,176,224,25,48,15,167,35,169,197,52,218,161,206,16,2,58,110,89,121,234,58,249,173,206,62,132,
+231,222,128,42,136,225,237,19,167,81,195,40,199,61,254,98,58,1,129,144,125,122,224,21,51,90,130,127,213,194,49,212,183,154,15,65,211,50,122,227,24,62,249,237,69,0,123,55,156,199,36,59,14,113,197,192,3,
+24,255,0,174,109,147,219,35,241,207,4,176,203,41,206,37,42,58,243,112,121,0,243,210,37,207,234,7,76,131,205,82,11,128,114,227,29,14,92,55,212,18,110,63,173,27,1,207,204,157,253,1,237,149,4,78,121,198,
+78,120,233,210,128,44,153,95,39,51,18,51,128,76,146,182,56,234,48,187,121,253,59,211,76,172,57,251,72,82,121,7,116,228,99,142,156,224,244,63,159,78,5,64,84,103,59,1,113,220,249,191,142,10,200,122,251,
+26,67,128,112,240,231,61,8,123,129,208,122,111,207,243,193,20,1,100,92,205,211,237,177,243,253,239,180,115,145,211,163,115,199,169,192,24,163,237,146,114,191,111,66,57,7,229,185,99,216,30,145,16,112,126,
+128,227,177,168,131,194,23,30,75,12,117,196,151,32,158,191,244,215,158,152,36,210,9,99,56,30,75,28,127,122,75,140,245,246,145,184,3,216,31,232,1,33,186,108,224,222,175,225,29,202,231,61,179,228,245,246,
+24,245,4,210,253,163,0,159,181,39,35,145,229,220,18,123,99,6,46,223,79,94,181,93,138,19,145,110,216,4,129,131,118,255,0,153,222,59,112,48,61,7,57,164,50,31,225,181,99,254,241,191,207,126,155,100,218,123,
+14,113,248,245,160,7,189,211,177,199,218,198,1,199,54,243,240,7,97,136,129,252,199,166,56,197,55,237,59,114,77,219,28,117,2,222,99,208,122,50,140,147,234,15,60,140,131,67,73,54,209,182,213,71,127,187,
+122,221,191,235,169,57,25,192,200,35,142,65,232,99,221,55,79,177,68,220,247,23,99,156,129,146,114,127,38,235,249,208,4,130,245,14,115,115,41,207,99,105,41,234,78,64,38,80,125,128,193,35,60,12,115,64,184,
+135,146,101,149,143,253,122,227,158,59,179,147,244,200,233,233,158,35,50,220,1,255,0,32,229,35,60,20,107,188,125,57,83,215,140,96,140,251,138,174,101,144,18,127,179,8,32,255,0,207,75,161,233,223,3,167,
+67,142,158,217,20,1,119,206,136,142,12,236,65,239,2,15,166,54,176,60,242,61,57,224,241,72,100,139,161,89,127,240,25,73,227,166,65,153,113,158,184,4,118,226,169,25,14,121,211,152,116,201,223,59,14,254,
+175,187,191,92,125,220,116,228,7,22,99,255,0,46,77,215,29,46,24,253,8,46,125,79,108,96,116,235,128,11,101,225,35,129,42,128,7,38,221,6,15,208,94,142,122,246,168,195,197,130,62,102,31,245,238,7,32,242,
+63,227,248,143,204,117,29,64,230,171,22,149,71,26,115,147,158,254,112,56,227,144,9,199,226,8,231,131,140,112,130,105,179,198,157,47,92,112,197,113,208,113,155,128,7,31,236,250,243,158,40,2,201,117,234,
+170,253,120,197,188,103,35,241,188,237,201,193,207,78,248,169,21,142,50,17,198,121,31,232,202,8,28,246,251,97,3,208,14,0,227,21,83,116,172,73,251,4,160,247,62,108,125,186,241,246,158,58,244,56,228,123,
+242,132,203,255,0,62,146,244,193,221,228,30,254,191,106,252,127,253,120,160,13,15,50,64,9,242,135,114,119,91,169,28,244,200,91,208,121,250,30,126,148,155,165,199,49,194,6,7,91,119,207,92,255,0,207,243,
+112,121,207,78,156,0,73,170,30,124,156,43,90,204,160,19,141,162,19,159,82,63,211,87,159,175,7,140,242,105,76,204,72,221,20,254,156,136,134,58,245,63,218,72,61,187,80,5,237,211,116,95,40,30,135,247,111,
+128,62,130,228,241,131,215,3,156,14,180,210,215,35,63,189,135,35,28,4,153,15,211,153,200,62,188,231,25,252,42,168,152,140,128,38,80,122,228,194,71,60,17,147,170,254,39,7,156,117,57,205,63,237,13,192,83,
+41,39,174,69,176,199,110,3,106,172,79,191,76,96,228,122,0,74,94,231,63,52,160,158,121,25,83,140,243,255,0,45,143,35,56,234,14,121,231,160,141,164,155,119,37,142,59,172,140,121,192,207,86,98,7,231,140,
+244,230,148,220,56,234,101,193,231,33,108,152,254,27,181,18,121,39,35,4,158,49,207,90,79,63,32,146,247,92,231,162,88,145,248,15,237,79,211,161,199,28,208,0,30,126,160,77,223,147,48,25,199,57,199,151,158,
+190,188,116,207,178,249,183,24,201,222,48,56,221,117,140,250,112,35,200,247,24,39,156,247,164,19,167,81,37,192,198,63,229,141,145,57,56,255,0,168,155,14,189,241,146,120,0,140,144,227,114,139,201,154,232,
+245,233,111,100,57,207,61,117,66,15,67,232,73,60,243,197,0,33,150,224,142,23,119,78,151,146,142,70,72,28,197,140,114,125,58,228,227,186,121,146,158,204,9,7,165,219,156,119,244,63,94,125,233,223,111,129,
+126,241,186,201,234,76,22,72,56,25,254,29,71,190,14,121,207,83,192,53,40,188,133,177,151,186,28,100,29,150,199,167,57,39,251,68,227,241,235,233,64,16,238,148,103,253,96,206,115,254,150,231,143,166,222,
+0,207,67,143,241,79,54,85,24,249,200,0,15,248,248,86,28,119,24,139,57,29,250,158,113,210,167,55,168,164,133,158,224,3,156,176,75,126,73,3,174,47,72,224,99,128,58,15,165,70,111,87,144,46,38,61,191,227,
+222,19,237,129,254,149,206,79,175,78,58,242,8,3,69,211,242,161,78,78,7,250,255,0,175,251,0,143,196,28,244,230,143,180,56,61,20,18,120,13,113,207,28,30,54,227,158,115,207,29,189,105,77,211,124,184,146,
+96,14,6,126,201,6,113,215,28,92,140,251,114,65,60,156,83,77,209,28,253,162,96,65,4,3,100,135,62,199,23,32,142,199,32,146,51,233,140,128,60,78,255,0,244,199,220,249,248,206,122,116,80,71,60,100,158,79,
+76,211,150,98,120,47,108,57,31,122,226,95,111,86,94,252,251,122,212,6,245,177,204,146,156,244,38,210,65,142,59,126,248,147,158,189,192,231,241,79,180,147,247,164,147,168,255,0,151,89,64,201,56,233,230,
+149,28,156,125,241,143,94,212,1,99,204,94,127,125,108,61,48,243,49,231,216,57,233,142,56,252,243,201,230,168,193,251,76,75,235,254,183,30,248,13,39,28,123,3,223,142,208,7,201,4,9,73,56,228,67,112,164,
+15,124,100,250,244,62,188,212,129,156,227,31,104,24,235,242,93,143,160,193,199,166,1,198,15,92,245,160,9,4,168,70,69,237,185,4,112,60,185,216,245,207,85,103,207,65,156,19,192,237,220,243,148,116,189,182,
+80,78,65,242,231,233,223,130,140,125,125,198,14,115,222,34,207,208,137,254,172,147,17,237,201,80,120,233,219,174,78,113,200,9,111,189,28,196,119,194,185,60,123,182,61,115,142,156,103,61,40,2,95,59,147,
+183,82,182,94,127,231,149,222,58,244,4,71,129,211,7,250,84,170,243,159,187,170,219,123,15,38,232,244,227,25,218,14,15,211,128,49,158,57,141,84,246,130,236,116,229,96,67,143,111,152,31,115,206,1,4,246,
+7,19,0,231,167,218,134,115,144,86,40,248,227,142,84,140,103,175,7,147,208,131,192,2,22,156,140,29,82,14,163,254,93,239,14,15,184,193,207,94,8,239,208,154,93,179,54,2,234,86,228,140,115,246,75,214,207,
+94,222,89,193,239,223,158,231,179,136,112,8,45,113,235,131,36,32,113,207,204,60,156,14,56,192,60,117,4,142,41,21,55,30,60,208,79,79,223,218,241,143,77,208,140,123,122,15,81,64,10,34,159,3,55,182,242,99,
+166,219,59,176,217,62,167,203,207,36,244,24,247,167,237,184,92,126,254,50,15,173,165,248,244,233,152,128,252,0,233,215,173,40,71,28,6,108,245,230,123,50,115,206,50,13,191,3,167,1,142,59,131,129,151,5,
+112,6,88,245,239,53,147,31,253,36,57,61,120,239,192,197,0,32,75,178,112,30,22,250,218,222,158,184,244,65,233,158,0,20,236,95,3,192,128,142,217,183,189,7,215,35,49,131,199,60,14,157,115,205,0,63,5,103,
+81,142,112,205,98,79,169,233,103,199,3,175,76,244,61,106,69,142,83,201,185,133,65,227,4,90,231,3,25,206,219,54,30,227,233,235,64,2,157,71,129,251,179,147,129,251,171,188,142,217,200,76,140,125,123,14,
+58,84,200,117,35,144,33,137,135,97,139,181,224,119,231,105,31,78,15,214,144,33,29,38,128,244,60,181,178,158,190,191,96,192,247,199,39,243,196,155,93,191,229,189,182,61,12,235,156,113,253,221,60,253,57,
+28,126,56,160,4,49,106,39,37,172,226,99,156,228,77,114,156,131,223,247,132,146,58,114,59,244,230,133,138,251,63,241,230,128,246,255,0,74,185,24,199,76,141,253,192,28,116,199,230,37,85,151,35,108,176,17,
+232,46,31,28,245,227,251,44,245,239,130,63,90,81,184,16,75,91,169,193,225,229,145,71,110,191,241,45,82,58,116,25,207,62,188,128,70,97,212,51,145,104,171,212,231,237,151,60,159,96,100,200,245,206,71,94,
+180,160,94,244,104,84,123,253,186,231,57,224,114,4,167,3,175,76,122,227,138,184,172,234,6,13,177,233,210,121,88,117,236,126,196,62,185,61,241,154,122,203,55,111,179,159,81,231,202,8,250,255,0,161,142,
+222,185,199,96,115,200,5,19,21,227,112,200,152,246,189,148,17,159,118,144,238,198,70,112,14,113,215,189,60,91,92,99,230,68,57,60,31,182,75,211,167,167,232,56,28,96,102,174,125,162,117,28,11,113,211,63,
+233,83,99,142,252,192,1,244,237,147,235,220,23,151,3,63,241,239,211,4,11,153,65,227,167,252,177,235,207,215,249,128,10,98,218,114,62,125,164,116,226,238,92,115,158,0,0,244,24,29,15,175,52,191,98,119,207,
+43,142,184,55,44,231,233,243,70,112,57,61,199,78,106,224,212,37,92,18,209,12,16,70,219,233,87,31,249,7,158,253,192,235,78,254,209,102,63,242,207,24,28,13,70,108,129,199,60,91,142,113,249,122,156,154,0,
+163,253,157,187,239,41,61,126,236,224,143,200,160,62,158,164,251,98,156,52,216,151,0,174,210,56,230,113,236,122,42,140,241,216,156,115,140,156,113,119,251,64,142,75,70,7,79,249,9,73,207,0,255,0,20,28,
+117,224,228,30,248,0,230,144,234,74,58,155,115,234,78,167,31,231,202,103,156,251,15,74,0,174,186,124,57,201,84,97,142,228,48,250,156,242,70,49,156,231,215,190,42,101,177,183,83,147,28,42,122,156,36,100,
+158,192,129,147,207,92,244,231,7,175,52,127,105,33,232,214,221,114,7,246,162,18,123,246,25,30,253,122,224,241,154,95,237,35,146,3,160,250,234,9,142,122,224,144,122,118,39,25,250,28,208,5,133,177,135,31,
+44,42,1,228,17,12,89,201,198,121,39,7,158,249,233,236,105,235,101,16,224,169,76,244,34,36,94,113,215,2,64,15,61,189,70,58,26,174,154,139,14,179,68,71,167,246,128,228,117,233,180,15,204,156,250,84,195,
+80,137,185,51,71,207,111,181,198,78,61,143,151,130,56,207,28,80,4,226,214,44,114,210,46,58,31,32,113,237,254,185,127,151,234,5,60,91,194,58,205,57,61,179,18,12,127,228,92,243,80,45,221,187,14,103,82,120,
+7,23,176,122,115,195,99,211,167,28,244,234,105,226,91,114,56,155,140,158,126,215,108,122,103,131,201,60,100,246,207,74,0,159,200,143,60,79,115,143,79,41,48,125,129,89,186,116,233,208,100,103,57,21,42,
+199,16,235,60,192,227,248,149,78,51,207,67,46,123,125,7,28,145,85,60,232,134,54,206,113,142,130,226,212,156,231,175,32,156,30,195,31,253,117,23,8,127,229,233,135,66,127,125,106,72,28,19,211,24,235,237,
+249,80,5,229,146,16,64,243,228,56,237,229,70,115,129,237,33,31,128,253,14,106,65,36,57,4,205,56,198,14,66,194,158,156,100,33,56,233,128,73,233,239,84,214,225,0,255,0,143,137,14,238,56,158,220,112,1,199,
+1,243,198,56,233,142,132,117,169,68,220,127,173,149,135,251,55,17,28,247,238,216,61,143,66,61,179,208,2,99,44,57,255,0,143,169,143,98,4,145,159,94,48,20,0,113,147,215,168,199,52,25,225,4,143,62,231,60,
+117,101,200,227,142,20,28,140,159,115,252,169,22,68,56,203,200,120,254,57,173,125,79,66,203,140,126,126,156,84,128,193,143,188,228,142,128,189,145,24,36,231,166,223,76,100,228,159,228,0,130,101,60,137,
+110,9,237,128,185,0,129,198,12,68,18,79,62,152,199,83,200,113,185,147,183,156,220,100,110,218,48,125,255,0,209,243,158,188,224,241,222,148,249,96,147,158,49,200,243,172,215,243,24,219,147,142,113,140,
+123,241,82,45,194,32,225,145,113,156,102,123,33,129,193,237,27,246,235,145,236,14,49,144,6,11,153,57,204,108,78,15,59,148,158,126,144,168,254,128,212,130,89,114,63,209,216,244,251,199,111,25,207,4,71,
+211,249,96,123,83,197,228,125,60,248,71,179,77,102,73,227,176,242,71,29,189,7,161,169,5,218,177,11,231,38,6,121,13,102,121,245,63,186,36,12,113,252,248,28,0,69,231,201,218,223,167,56,50,54,113,211,180,
+124,103,29,201,25,52,229,150,67,143,244,114,8,238,37,42,126,164,152,241,254,64,207,106,148,79,22,73,51,41,235,207,153,98,61,199,6,6,233,211,145,207,3,156,26,119,157,17,63,235,213,61,8,151,79,61,1,236,
+109,7,25,207,126,126,153,0,2,31,180,200,63,229,132,133,179,193,222,228,159,252,119,240,35,24,231,3,138,145,103,148,255,0,203,164,205,211,248,100,110,49,223,247,100,116,206,115,249,244,169,68,214,196,97,
+239,64,235,156,190,157,219,142,214,195,216,244,239,215,35,20,255,0,62,208,28,45,254,58,156,238,178,0,19,159,72,23,39,31,65,159,199,32,17,153,231,57,255,0,68,148,12,112,114,235,237,140,249,64,99,177,245,
+57,227,52,141,59,228,230,222,76,129,158,101,193,24,246,48,140,117,25,32,147,198,77,88,91,139,110,218,139,31,164,214,163,7,232,33,97,193,207,235,156,210,155,139,82,71,250,123,231,211,237,22,156,103,169,
+226,216,19,220,253,79,76,80,5,65,48,63,126,39,81,156,112,225,135,175,107,124,231,169,228,30,135,39,166,93,231,69,130,2,56,57,237,35,114,63,11,83,131,211,176,57,224,251,218,243,160,96,49,124,252,247,251,
+69,177,236,1,224,218,247,231,29,78,115,129,154,111,200,127,229,242,73,1,61,167,131,57,25,235,182,201,134,115,215,140,126,28,128,10,223,104,80,122,77,198,78,20,147,140,117,228,216,158,199,215,7,62,167,
+32,251,74,18,120,186,0,245,193,98,65,236,72,251,6,61,186,158,189,5,90,15,110,8,5,183,246,196,151,113,100,156,247,31,217,227,140,243,201,192,231,183,52,225,36,4,124,169,16,56,198,124,208,220,146,58,21,
+183,3,249,17,140,208,5,19,52,77,200,123,224,125,247,12,113,232,44,70,64,232,57,199,66,57,2,155,189,15,252,182,186,94,122,237,98,220,255,0,189,108,59,12,113,140,227,235,90,91,163,207,40,189,248,14,205,
+215,216,67,245,250,127,37,45,30,57,133,78,49,221,243,145,237,246,92,140,126,124,244,34,128,50,217,208,28,125,170,96,65,232,202,1,25,193,200,204,92,19,159,113,211,222,152,102,65,156,207,51,245,31,115,60,
+228,131,255,0,44,143,31,78,63,30,155,43,44,24,230,222,32,8,206,90,77,185,199,111,154,207,175,226,57,235,158,234,102,132,12,173,148,111,239,230,70,115,140,156,113,98,112,59,245,228,113,232,104,3,27,205,
+7,144,110,15,29,18,7,35,61,9,35,9,211,140,96,245,236,59,191,44,79,13,113,211,161,181,155,140,12,114,73,199,111,195,183,83,90,70,225,57,197,154,14,73,32,48,224,243,253,219,65,159,211,56,20,53,202,143,189,
+104,63,224,40,73,7,240,132,126,189,125,61,0,50,246,76,221,30,231,61,126,91,102,24,246,249,164,3,29,127,67,215,138,62,202,236,71,205,118,113,216,219,40,252,177,112,164,247,36,253,51,90,194,226,220,243,
+246,51,211,32,237,61,57,227,248,49,207,227,214,154,102,132,129,136,89,63,220,222,48,57,61,60,220,130,61,134,7,175,168,6,73,177,207,37,238,7,179,90,171,19,234,65,55,64,12,145,235,193,207,214,156,44,0,28,
+9,27,160,4,218,161,60,30,120,251,110,48,122,242,61,177,199,26,158,108,67,146,46,15,226,248,252,217,241,219,7,184,167,45,205,184,56,255,0,74,233,253,210,7,175,82,121,199,61,250,122,156,154,0,201,251,17,
+3,104,137,248,224,255,0,160,194,115,144,58,230,225,186,250,158,249,35,154,107,90,72,188,121,82,140,103,32,90,64,51,212,113,153,15,63,207,142,156,214,169,146,34,73,69,156,231,190,242,15,31,86,224,140,115,
+129,207,29,41,204,88,129,133,185,250,137,176,14,113,199,175,78,249,224,246,160,12,51,106,57,36,78,156,255,0,21,157,169,233,212,224,200,199,131,232,6,115,199,74,62,204,48,63,121,115,199,173,141,170,143,
+108,103,57,244,227,255,0,173,91,63,191,24,194,93,117,35,38,102,30,220,96,30,125,78,65,198,9,237,76,104,229,110,113,113,199,7,125,195,28,96,156,117,83,147,200,29,65,238,125,40,3,29,97,69,60,179,183,83,
+205,189,152,96,115,201,228,96,119,207,35,174,79,165,56,181,186,14,146,19,237,5,160,25,245,32,175,231,219,167,74,213,48,200,71,9,47,30,147,237,31,137,11,198,56,231,211,144,167,145,81,249,87,11,213,37,60,
+114,126,210,91,215,167,238,28,14,163,219,167,92,226,128,51,214,104,123,43,17,144,121,134,212,28,143,114,156,253,49,201,62,184,203,205,212,99,56,183,70,235,247,146,212,99,219,62,83,15,175,76,228,14,42,
+224,89,219,143,42,83,212,243,46,57,57,244,180,7,235,215,128,56,227,150,152,166,234,109,199,94,243,96,112,78,14,77,184,35,29,142,7,60,112,104,2,163,94,122,90,194,56,234,69,185,63,95,150,6,227,29,192,199,
+95,165,41,189,61,13,188,103,24,192,10,157,7,210,219,177,232,122,12,254,114,152,38,57,38,32,71,112,111,48,51,158,127,229,223,158,227,3,29,184,166,152,220,103,253,21,72,57,25,251,96,252,9,6,1,142,125,248,
+245,201,160,8,254,221,27,14,109,21,187,159,222,2,1,32,242,54,219,227,212,240,7,61,186,83,254,211,17,25,251,23,167,252,181,96,61,178,69,185,4,142,6,64,244,192,226,163,101,1,136,251,52,35,140,255,0,199,
+201,60,241,232,131,142,125,7,95,78,106,60,168,39,204,182,132,100,129,157,242,19,156,255,0,120,3,156,28,113,128,59,227,212,2,115,44,95,243,226,153,206,121,187,116,39,215,25,129,7,80,113,215,24,60,10,60,
+248,199,38,197,23,128,51,246,230,4,131,207,222,10,164,253,49,158,59,103,53,91,247,63,243,239,25,244,59,228,39,190,122,174,126,187,136,3,29,61,21,154,49,143,244,125,131,24,251,242,47,183,116,28,126,56,
+24,239,216,2,95,49,9,226,216,96,242,113,168,200,121,250,99,131,145,244,232,120,161,138,99,155,92,251,155,247,207,25,4,229,151,29,177,211,142,113,80,143,44,255,0,203,37,3,28,22,105,10,250,96,98,62,120,
+207,94,72,206,125,41,60,181,201,24,132,2,114,49,43,130,6,125,4,45,147,219,159,76,243,154,0,144,201,22,48,34,43,220,103,80,126,15,57,232,7,56,201,253,121,237,25,145,87,32,135,227,178,222,190,121,244,222,
+112,121,233,143,169,198,41,66,197,208,136,24,231,60,188,157,129,244,182,39,167,7,175,231,129,74,86,60,238,17,218,183,36,16,102,184,200,244,255,0,151,92,113,223,167,191,184,5,83,58,169,255,0,87,57,250,
+222,129,245,57,50,30,184,3,25,28,118,231,136,218,124,244,138,113,158,226,230,38,192,246,38,92,19,129,206,0,206,58,140,85,176,50,126,72,109,193,198,15,207,118,65,224,128,64,16,126,135,252,105,204,36,193,
+253,204,62,248,107,190,58,231,25,128,116,235,207,225,233,64,25,223,106,126,209,93,54,58,22,184,136,140,245,239,48,24,29,112,122,12,122,82,125,174,81,242,249,55,3,185,255,0,72,132,127,237,206,58,131,245,
+228,26,180,82,83,156,44,57,244,50,78,190,191,222,182,61,122,145,198,15,28,84,102,25,243,146,32,25,25,226,105,126,157,161,83,147,223,140,126,57,160,10,134,121,15,252,177,156,103,167,250,84,0,254,95,104,
+35,249,246,247,204,70,226,92,156,218,220,54,78,6,103,182,62,249,207,154,15,62,129,136,245,193,38,180,60,137,143,240,198,113,235,112,192,253,64,218,51,249,114,65,231,61,83,201,124,115,28,67,31,244,240,
+192,241,232,8,201,227,190,57,60,112,79,0,25,134,105,137,207,217,38,227,254,155,219,131,212,244,62,113,61,59,122,251,98,162,121,166,61,109,100,192,254,244,240,131,223,191,157,233,237,223,242,216,219,49,
+224,34,147,142,159,106,233,158,120,4,142,189,198,65,245,21,25,75,176,72,84,81,235,254,146,153,232,125,101,3,62,227,56,235,138,0,203,47,145,131,101,33,99,201,205,228,3,233,200,148,144,49,215,140,242,72,
+230,128,216,32,27,55,94,79,252,196,32,231,142,227,57,29,56,3,159,115,87,219,237,160,240,9,235,200,185,183,36,14,9,39,116,135,241,0,103,211,32,19,81,21,189,108,157,196,12,145,205,197,160,233,245,110,121,
+246,231,240,34,128,43,29,160,227,236,172,9,232,77,244,60,99,175,33,199,126,192,103,142,216,229,166,37,97,204,9,130,15,91,180,45,145,129,212,51,142,224,100,115,223,3,173,79,139,172,31,155,145,158,179,218,
+129,236,56,13,250,224,254,61,0,46,200,57,97,193,63,242,243,110,199,235,133,140,15,65,199,3,143,67,128,10,109,12,103,254,88,69,156,114,62,208,9,60,116,61,128,231,146,59,254,52,223,37,7,2,222,16,57,227,
+206,45,159,192,130,48,121,249,73,3,191,21,120,45,200,228,4,99,254,212,177,96,125,126,66,63,33,207,115,142,173,63,105,29,99,183,5,73,57,50,174,71,96,126,88,15,78,122,122,142,249,192,5,63,33,63,231,140,
+67,161,192,97,158,153,193,32,169,199,118,193,3,143,194,148,219,161,3,116,40,14,51,180,56,31,206,69,200,62,135,62,254,246,9,184,35,131,111,219,164,192,242,114,57,6,2,64,235,211,36,228,96,228,98,152,82,
+227,37,191,113,219,159,49,184,252,173,155,220,14,71,182,8,160,10,255,0,102,139,146,209,198,6,122,2,24,247,206,91,237,60,15,207,222,163,146,8,128,59,86,17,211,39,200,222,113,215,7,253,35,183,227,245,169,
+202,57,251,198,220,142,195,116,160,103,25,57,255,0,68,227,39,61,49,207,57,166,8,14,56,54,223,136,148,241,255,0,128,224,246,207,183,231,64,21,124,168,137,198,232,48,1,200,251,44,103,60,224,116,187,7,60,
+244,200,60,224,224,142,35,104,32,36,143,50,0,58,115,0,24,207,160,251,97,56,227,176,234,7,227,115,203,113,198,235,115,235,133,159,29,199,64,138,8,28,241,220,131,214,152,75,255,0,125,65,3,180,23,7,7,60,
+12,5,29,121,238,57,224,113,208,2,159,217,237,198,71,153,15,25,192,88,84,122,113,135,184,63,134,72,227,167,92,134,249,16,159,227,136,240,113,251,168,114,79,35,63,241,246,163,184,201,199,28,250,28,218,1,
+134,226,37,148,30,120,22,215,100,115,223,150,63,137,199,39,28,103,154,141,166,148,116,146,97,128,58,91,207,130,78,126,240,115,200,201,233,208,12,96,231,160,5,118,130,219,171,60,124,103,143,38,2,64,61,
+72,255,0,76,30,157,178,61,184,53,1,75,53,232,227,39,156,121,86,223,158,13,231,231,210,172,153,165,207,55,87,3,24,60,67,55,182,70,60,204,115,208,244,192,200,228,243,72,110,102,92,98,234,233,134,15,221,
+183,144,143,124,98,92,243,143,207,158,59,0,82,101,176,232,100,140,19,193,6,43,108,228,116,39,23,71,158,153,206,115,223,145,154,136,173,143,98,158,128,45,188,68,247,228,254,255,0,252,228,156,158,115,124,
+222,204,71,252,124,93,182,7,56,181,115,219,159,191,55,124,30,167,158,61,120,111,219,31,248,164,190,7,182,45,28,17,199,251,19,28,147,233,215,219,24,192,5,6,142,3,130,185,56,28,98,213,49,207,191,158,1,227,
+174,15,110,59,211,76,40,122,7,246,34,5,4,140,250,9,250,112,115,200,56,245,28,86,131,95,99,37,159,80,61,179,246,73,240,14,71,31,43,191,30,227,156,146,49,193,168,26,252,28,255,0,199,233,244,223,107,54,113,
+208,112,241,145,147,201,228,146,49,142,113,154,0,168,214,220,114,178,227,168,197,170,123,224,243,35,147,250,247,235,77,251,59,246,91,140,251,65,24,24,200,247,7,191,113,219,60,138,179,246,213,57,249,110,
+78,63,233,218,64,71,176,62,79,111,175,212,138,136,222,70,62,240,186,231,183,148,203,145,199,111,36,17,145,211,39,25,39,142,113,64,21,154,210,82,73,255,0,74,29,15,17,70,70,57,227,239,123,115,158,58,14,
+7,21,9,182,155,32,168,188,63,238,197,16,250,103,159,229,207,110,113,87,77,196,44,57,55,120,231,56,140,191,78,159,242,196,156,117,199,175,94,106,51,53,183,117,185,57,238,96,126,7,182,109,79,243,231,30,
+217,160,10,191,102,189,32,97,111,27,39,128,34,140,117,198,122,17,207,35,57,7,4,115,198,9,5,149,243,115,182,255,0,233,176,46,127,13,172,48,127,30,189,115,154,156,189,155,158,82,227,142,185,130,92,31,127,
+248,244,35,57,198,79,79,78,180,194,182,64,229,86,96,61,162,126,71,225,101,198,120,228,99,167,78,162,128,43,53,165,248,224,197,119,199,77,204,7,29,143,41,156,122,156,122,228,12,17,85,30,214,236,28,52,83,
+254,51,64,7,126,62,100,7,252,247,53,160,194,220,253,209,112,56,56,1,14,121,206,73,15,99,130,125,186,115,206,65,168,246,166,78,209,112,6,121,196,113,100,231,212,125,135,146,123,158,163,219,165,0,103,155,
+123,128,8,22,242,28,14,115,61,185,207,24,60,236,35,177,206,79,251,188,228,212,102,218,110,246,68,147,193,6,234,216,118,231,141,128,156,119,31,153,173,18,131,35,47,112,185,7,144,98,7,168,7,10,44,186,117,
+239,248,119,164,49,227,27,110,110,129,3,4,133,139,3,39,179,27,19,156,244,28,250,112,112,8,0,202,104,36,7,7,77,95,161,186,67,159,174,39,10,120,207,97,211,29,122,52,219,190,51,253,153,17,60,156,153,99,57,
+232,122,253,164,147,233,211,160,247,231,84,195,49,24,75,139,134,28,117,49,30,57,206,64,178,0,96,126,135,56,168,204,51,14,179,207,234,121,182,7,223,150,178,7,223,57,0,100,100,227,57,0,206,242,31,24,58,
+92,99,0,114,39,132,125,126,245,202,250,243,158,79,161,52,134,2,120,254,207,136,103,156,253,174,221,71,124,227,23,71,240,201,245,7,145,87,204,50,156,254,254,232,3,220,73,98,78,123,245,180,31,161,227,142,
+77,70,214,247,61,82,231,80,246,62,118,158,122,244,200,251,27,251,227,39,208,247,160,10,70,205,49,150,177,132,156,118,186,129,137,206,120,226,228,115,207,92,31,211,52,11,52,234,108,162,83,232,37,136,156,
+158,49,205,224,35,29,120,24,254,117,96,193,121,255,0,63,119,195,167,1,172,128,207,185,22,24,207,78,156,247,231,138,136,199,115,146,13,237,200,238,3,181,158,114,1,235,186,200,2,51,215,142,157,113,64,15,
+22,106,57,22,35,182,70,244,199,235,120,220,241,75,246,82,120,91,80,62,143,25,232,59,159,180,28,99,57,29,7,177,226,160,104,46,15,252,190,201,238,3,88,1,249,125,139,31,136,24,62,184,230,154,45,103,39,254,
+62,174,24,231,63,47,216,95,62,156,139,63,211,160,199,7,165,0,88,251,48,83,247,29,120,233,152,91,28,127,116,221,19,159,110,231,161,197,30,64,28,25,49,207,120,237,135,115,215,116,173,200,227,128,79,39,233,
+81,11,43,130,121,150,224,129,147,207,216,185,252,225,82,62,128,115,219,28,82,53,145,25,220,247,125,243,131,106,48,113,206,113,1,24,227,140,159,79,192,2,99,10,168,229,200,235,212,64,6,6,51,194,63,166,79,
+232,6,77,66,99,139,254,122,126,171,198,115,207,202,196,131,199,110,188,103,56,197,70,246,160,15,150,73,255,0,224,70,2,123,113,149,181,111,160,200,232,123,99,33,159,103,147,129,231,76,113,141,167,114,126,
+31,48,178,62,254,212,0,243,28,92,134,40,79,188,108,73,28,112,58,14,153,198,49,250,242,205,144,3,144,171,158,132,155,101,193,207,0,100,198,195,211,177,63,76,84,158,84,220,98,73,7,108,178,130,121,207,127,
+178,129,244,250,126,73,178,65,252,108,70,120,195,70,70,56,199,6,17,131,158,123,1,200,24,198,8,4,101,35,234,66,3,254,228,96,14,167,254,120,103,39,63,207,190,42,38,8,27,137,16,14,224,152,63,145,182,7,30,
+156,156,250,213,159,41,207,66,231,184,230,33,159,160,217,140,241,206,63,26,104,134,124,238,38,231,142,70,21,8,198,70,15,78,121,29,184,160,10,166,52,32,159,49,15,66,72,72,184,207,184,132,14,125,185,231,
+219,52,205,163,180,176,227,169,201,4,140,115,212,66,72,235,215,61,73,207,57,171,198,57,185,195,74,56,239,179,245,249,14,62,132,146,57,246,168,255,0,126,167,59,166,28,113,133,83,233,220,68,115,159,203,
+62,134,128,41,113,218,68,201,244,119,56,239,218,0,79,167,126,57,52,140,153,28,200,50,123,102,110,152,207,67,110,126,184,227,30,221,42,255,0,155,40,201,221,56,57,227,40,164,119,227,6,53,31,215,175,61,48,
+25,164,238,243,28,158,49,28,93,70,122,28,103,158,163,242,25,160,12,227,111,49,198,217,128,200,227,59,206,8,247,54,108,71,166,122,242,59,245,81,107,112,63,229,229,51,215,7,204,221,248,15,177,224,247,36,
+240,70,49,140,245,209,243,14,0,45,116,199,190,18,51,212,228,242,51,192,36,156,116,246,233,134,187,231,0,155,145,129,131,185,20,99,241,235,143,243,232,0,5,79,34,235,3,19,68,125,114,101,36,113,201,4,89,
+129,249,156,247,228,242,3,109,112,6,60,232,134,72,39,41,43,96,123,126,228,30,50,122,15,203,165,88,11,147,255,0,45,241,158,162,33,145,142,131,33,131,119,237,249,112,112,184,29,51,62,50,58,195,203,113,198,
+127,120,64,61,15,127,74,0,170,109,167,200,62,100,77,236,34,186,234,61,79,145,234,57,28,142,40,171,64,66,48,75,207,236,26,50,8,199,211,7,245,57,227,175,20,80,7,163,226,212,253,230,148,30,216,181,35,223,
+63,116,255,0,44,119,24,164,97,102,160,226,73,207,98,60,162,48,48,58,99,7,191,168,61,250,98,176,252,228,39,33,33,35,29,209,207,56,29,188,165,61,70,123,10,113,153,72,3,200,132,243,252,118,242,16,61,243,
+228,56,244,200,247,247,160,13,112,109,50,62,123,140,122,48,144,100,244,255,0,158,135,62,255,0,150,41,24,218,30,159,104,35,174,73,124,15,92,102,79,113,200,200,198,122,115,89,25,56,56,22,203,219,30,67,147,
+237,194,219,2,123,227,184,237,214,148,58,227,162,19,192,194,193,34,247,61,7,217,142,71,169,227,62,135,52,1,162,13,184,227,247,184,255,0,120,159,203,7,4,118,207,215,24,207,50,110,128,127,11,149,255,0,117,
+27,3,235,129,199,66,125,199,124,26,200,50,39,59,178,50,126,239,150,224,253,127,227,219,240,207,111,78,9,165,223,17,232,206,64,206,126,73,112,126,191,185,80,71,92,122,117,231,184,6,207,159,104,56,196,231,
+182,68,113,254,35,33,198,71,108,117,201,57,0,138,60,251,102,200,79,52,28,115,184,5,57,233,140,9,114,71,211,161,231,173,97,29,164,114,23,7,147,144,202,121,228,112,45,253,191,63,83,213,164,71,159,188,70,
+51,206,37,32,0,58,124,177,129,233,250,30,244,1,188,90,19,212,63,231,158,221,178,196,244,29,7,165,68,94,49,247,86,110,125,241,235,142,128,96,143,108,131,244,233,142,94,28,252,206,224,113,156,44,224,240,
+73,7,59,121,56,24,207,94,189,179,134,239,181,60,239,156,227,57,195,63,61,129,37,148,30,221,61,241,206,50,64,53,154,86,28,8,230,32,12,100,72,51,207,56,193,108,119,57,207,160,239,73,230,72,6,76,83,144,61,
+101,183,228,140,30,190,89,199,78,0,39,233,220,101,111,178,56,6,75,161,219,135,28,140,227,186,241,159,99,199,168,165,243,44,7,4,221,177,28,225,92,146,7,29,114,122,117,63,169,205,0,104,27,153,51,254,166,
+115,198,57,107,115,244,193,242,207,211,161,199,56,167,11,137,59,195,117,236,55,91,227,242,242,250,158,57,246,235,233,69,101,177,254,20,188,199,76,176,13,208,243,192,12,115,245,32,122,81,190,195,156,67,
+33,56,228,24,223,60,231,174,23,191,249,56,234,1,109,174,101,201,253,197,214,61,188,188,255,0,227,171,143,174,57,30,221,41,158,116,236,70,34,188,32,247,44,185,238,113,202,12,117,198,51,156,14,42,184,123,
+47,225,183,98,15,98,147,12,224,116,199,150,112,56,7,28,247,235,158,35,103,179,199,207,6,61,51,20,188,116,224,143,40,12,159,167,167,165,0,93,47,46,14,97,187,245,192,8,121,29,243,177,129,61,251,116,238,
+105,161,230,254,27,107,223,252,151,198,114,48,126,104,242,51,199,227,239,129,85,4,246,64,0,35,63,65,4,197,189,186,196,115,206,15,95,233,135,9,108,201,207,144,8,25,255,0,150,50,251,30,233,215,28,224,16,
+123,231,189,0,90,223,63,79,34,232,143,113,110,79,183,240,118,250,30,114,79,0,83,115,46,72,54,247,36,3,217,108,191,46,97,57,250,224,254,3,147,1,123,35,206,197,80,54,228,136,91,56,238,56,231,156,112,50,
+51,207,66,105,134,107,32,120,216,65,245,182,151,3,243,228,100,244,198,15,57,227,169,0,184,29,134,1,182,184,29,195,121,112,57,231,160,194,64,71,30,185,28,123,83,177,43,255,0,5,210,243,140,121,8,164,231,
+211,253,24,156,96,158,252,244,231,182,127,159,96,73,4,67,159,250,247,155,183,124,100,241,215,24,39,175,92,230,154,215,22,25,255,0,150,56,56,225,109,228,31,158,115,142,199,175,7,242,160,13,18,178,14,55,
+78,79,79,154,32,64,236,62,236,42,122,144,15,39,4,244,20,208,179,19,143,223,0,56,255,0,82,70,115,254,209,136,231,142,63,63,124,80,251,70,157,216,39,115,145,9,206,71,61,115,145,158,222,216,62,193,254,117,
+128,193,13,24,25,255,0,158,0,158,189,112,100,94,6,8,61,73,0,99,6,128,47,98,112,70,17,201,247,79,155,57,61,204,71,219,57,207,61,233,54,93,100,225,101,81,220,121,96,131,223,39,48,15,200,30,59,17,154,170,
+179,217,28,40,116,36,122,91,166,125,123,207,208,247,36,12,100,15,83,82,121,182,205,252,74,195,25,218,109,227,57,3,4,245,185,31,83,199,24,207,208,2,96,183,132,127,172,151,212,40,137,79,175,79,221,113,248,
+227,175,126,106,64,151,39,163,57,192,254,40,1,7,160,39,132,35,61,71,24,29,70,14,65,21,141,205,186,140,224,140,96,0,176,66,50,49,145,192,184,39,29,51,236,71,29,106,35,121,24,39,111,157,129,201,196,106,
+58,158,121,89,73,199,190,79,94,217,38,128,52,130,220,3,131,50,47,94,76,109,199,36,14,145,241,146,72,24,30,164,140,83,194,220,48,193,184,136,103,144,60,167,237,199,98,57,239,156,12,14,163,158,51,22,249,
+79,240,202,120,233,147,159,80,112,36,200,198,57,228,255,0,67,42,221,245,249,101,3,140,128,252,250,244,50,100,30,0,198,15,110,49,205,0,94,48,92,30,68,240,228,30,50,8,60,114,6,26,84,3,168,234,121,56,233,
+78,84,189,24,195,219,129,223,59,6,1,234,9,50,158,157,114,14,61,115,214,169,125,167,142,25,193,35,24,121,6,123,115,247,176,15,28,251,19,76,55,41,145,153,16,12,116,243,200,207,175,32,183,61,59,118,231,181,
+0,108,5,189,108,110,185,183,11,159,239,195,142,49,220,201,215,235,215,0,103,129,135,5,187,3,31,105,128,142,255,0,112,159,175,19,103,177,235,199,181,97,181,196,71,25,153,15,35,143,59,211,183,191,208,246,
+29,64,197,33,158,220,103,50,193,159,250,238,15,227,219,249,156,245,200,28,208,6,238,46,122,253,162,223,30,234,196,246,232,68,224,123,244,61,125,169,203,231,140,230,75,114,65,25,249,37,57,233,199,18,115,
+238,63,194,185,239,180,219,224,145,37,185,28,14,39,62,158,209,56,237,156,127,76,10,79,62,18,79,207,109,156,116,107,137,176,14,71,101,139,174,122,15,195,61,232,3,161,243,36,83,146,246,252,227,128,147,103,
+244,152,126,0,96,112,125,169,190,113,39,254,89,147,140,100,37,201,250,231,253,36,100,126,3,158,131,181,97,172,150,228,243,45,136,246,105,219,230,39,142,248,39,220,17,201,60,140,212,194,75,114,56,109,56,
+227,24,219,34,183,30,164,151,24,3,183,25,247,245,0,211,47,200,198,1,244,9,118,122,158,167,19,62,70,61,49,200,192,198,120,60,237,164,110,69,32,96,99,201,187,35,145,220,22,36,126,7,169,30,226,179,195,197,
+140,44,182,71,232,98,57,235,254,216,60,224,126,31,149,52,178,14,26,91,44,117,198,232,203,115,142,49,230,122,244,201,235,222,128,52,124,216,9,25,68,28,129,131,107,122,71,126,156,130,126,163,140,241,158,
+104,34,216,142,33,137,178,56,38,210,255,0,31,250,51,61,122,228,113,140,226,179,65,78,137,45,185,199,92,4,108,28,250,121,141,198,61,1,207,165,72,178,15,239,194,195,185,204,121,224,127,188,64,61,249,25,
+60,28,114,40,2,238,196,56,34,8,71,108,139,123,209,219,61,229,29,191,30,57,235,202,136,212,14,33,135,7,3,62,69,224,31,92,137,207,124,231,39,35,249,64,36,61,138,31,163,196,63,151,24,201,233,208,247,28,212,
+162,105,0,229,120,246,120,134,58,250,168,254,158,224,208,4,222,74,145,254,162,14,63,189,21,215,29,122,31,60,114,120,234,49,193,230,133,128,183,75,120,135,184,138,243,29,121,233,41,231,243,62,231,154,98,
+204,220,15,41,254,130,72,70,64,61,198,214,235,140,227,3,183,65,205,60,78,221,131,168,238,11,219,31,94,226,22,228,250,99,166,51,198,72,0,157,45,156,103,17,66,48,59,199,124,8,228,241,223,28,123,245,206,
+73,206,106,97,111,40,198,216,237,193,227,31,37,215,167,31,197,140,125,123,119,198,113,83,206,99,201,121,1,60,0,175,108,59,18,113,136,56,201,35,166,8,233,223,52,245,159,60,19,43,3,235,53,184,244,255,0,
+166,61,51,223,215,142,72,160,11,66,25,70,8,22,128,250,98,224,99,158,203,187,118,72,232,122,250,251,202,166,233,120,6,217,134,71,4,92,113,193,199,222,39,211,220,99,175,98,106,44,241,158,144,187,122,255,
+0,164,65,207,110,71,148,58,227,167,63,76,115,86,22,229,128,31,232,236,203,140,255,0,199,204,25,219,212,112,34,56,199,0,112,61,200,230,128,44,102,225,64,44,97,193,227,11,246,140,116,228,130,20,158,191,
+228,28,83,195,57,198,228,4,231,146,173,63,35,184,230,23,235,207,1,177,244,206,42,17,120,56,197,147,250,134,23,81,19,193,60,28,168,31,160,250,115,79,254,208,35,1,172,223,208,102,226,22,238,7,1,79,248,16,
+57,235,138,0,157,78,71,66,61,7,153,40,39,220,143,179,99,28,142,248,233,206,69,41,84,108,131,188,63,170,203,32,57,228,140,31,178,144,73,63,143,7,61,42,5,212,20,253,235,86,24,3,239,77,24,35,158,155,67,130,
+73,200,233,143,207,57,149,111,147,60,70,163,184,6,72,137,224,247,204,192,14,131,241,224,242,57,0,148,70,64,194,203,39,76,252,242,166,211,142,64,37,173,115,223,185,36,254,181,58,70,199,32,58,246,31,235,
+151,147,248,91,47,83,211,25,227,161,199,21,16,187,143,156,196,140,63,235,164,32,123,231,253,48,255,0,46,125,186,21,251,92,25,31,232,193,143,65,135,131,191,28,31,182,30,163,232,104,2,79,179,49,56,223,140,
+244,59,201,193,231,28,11,99,192,30,195,142,185,201,196,203,102,113,247,143,94,160,2,57,235,193,137,79,255,0,95,165,65,246,168,70,127,209,49,143,70,140,145,142,131,228,185,228,227,29,78,113,220,112,105,
+62,213,7,107,67,158,249,9,146,59,100,249,205,232,58,99,215,173,0,93,93,60,177,198,230,97,215,148,86,3,161,206,48,49,219,28,100,14,181,39,246,116,157,157,185,236,97,24,61,199,80,63,207,115,222,144,186,
+136,158,109,223,183,5,161,3,159,115,40,35,142,164,251,84,203,115,110,56,17,178,158,224,27,98,64,255,0,191,156,103,168,28,19,143,94,40,2,193,177,116,39,47,31,65,214,1,159,175,166,79,191,233,198,23,236,
+135,169,49,145,156,124,208,129,215,174,64,112,58,123,14,131,38,161,50,91,177,230,54,224,231,159,32,158,222,146,17,219,167,190,58,243,78,83,110,1,37,92,30,50,49,108,122,231,177,144,119,227,29,115,219,29,
+64,39,88,8,206,69,168,239,204,42,127,94,221,187,131,220,103,156,74,164,47,7,236,109,208,124,209,133,199,183,12,14,61,242,51,248,84,96,219,224,124,146,17,212,16,182,195,7,39,31,41,102,237,207,99,156,245,
+0,210,110,183,29,207,175,221,183,207,76,123,246,233,211,191,181,0,78,124,188,31,221,218,244,254,233,233,219,146,248,199,126,248,244,237,72,190,79,116,183,3,60,128,201,158,221,121,220,49,145,142,115,215,
+28,228,136,149,84,159,148,48,39,167,22,195,57,207,161,57,228,246,193,238,61,42,64,190,157,127,218,17,126,29,70,58,143,79,196,80,4,223,184,31,122,11,108,117,63,189,140,122,231,3,14,73,199,167,63,78,13,
+52,155,108,99,236,150,196,31,89,87,158,157,51,14,71,167,126,191,156,66,57,114,125,207,101,131,36,115,232,141,156,241,223,211,222,172,170,72,163,27,100,36,116,2,8,207,65,236,135,36,118,254,125,168,2,18,
+150,249,27,172,109,15,28,254,253,79,167,97,16,56,193,250,126,116,170,182,191,243,231,104,131,24,230,117,4,96,231,24,200,56,227,60,12,126,162,166,16,206,114,66,78,125,133,186,227,212,224,133,28,144,56,
+198,112,71,94,192,242,174,184,194,78,58,113,228,46,254,72,232,56,35,35,35,156,123,103,176,3,60,187,124,255,0,199,189,151,160,30,114,49,199,161,253,230,63,144,238,113,210,151,202,128,128,5,189,184,244,
+219,42,2,123,156,19,48,239,158,71,78,57,205,76,5,226,112,177,220,156,103,143,179,167,79,169,32,228,143,199,181,46,219,230,31,114,251,223,247,41,129,159,97,39,227,140,14,184,207,28,0,67,246,120,177,243,
+91,194,71,169,156,100,3,219,253,119,235,158,59,100,1,151,249,16,18,64,133,23,7,175,156,6,71,177,44,192,118,7,4,159,78,181,42,174,160,48,190,85,233,7,169,216,128,250,244,105,49,237,140,231,243,230,202,
+155,193,144,96,190,3,147,247,99,39,167,253,118,0,241,156,128,71,29,168,2,168,134,12,127,171,132,100,96,19,41,108,119,254,19,237,248,227,174,50,105,226,40,70,9,251,48,244,195,49,57,233,209,177,207,169,
+30,220,85,157,247,99,145,21,250,231,130,60,184,123,112,113,190,112,126,167,240,233,79,89,46,57,204,23,192,227,251,150,195,219,254,126,215,60,99,166,56,197,0,64,35,131,32,110,136,130,58,41,80,70,58,3,151,
+207,57,60,159,169,205,73,178,53,199,239,2,250,129,40,80,49,143,73,123,247,192,169,252,201,136,225,47,23,140,231,203,181,36,125,115,118,125,198,122,119,198,42,53,121,176,73,91,195,147,212,199,0,24,224,
+99,2,232,129,250,3,244,232,1,22,210,79,202,228,231,128,162,230,19,158,189,157,152,253,70,61,126,128,217,46,79,203,54,49,218,88,14,113,223,170,140,113,238,113,215,167,54,1,99,201,75,160,122,12,36,3,191,
+24,219,112,126,163,167,167,212,42,79,240,221,116,28,145,106,15,212,254,243,57,246,232,64,252,8,4,25,153,73,10,211,12,55,252,244,179,245,247,39,3,142,191,135,122,118,249,200,199,239,75,28,243,230,89,19,
+223,57,25,28,250,28,156,145,248,211,252,163,129,133,155,31,237,53,168,207,95,66,72,227,158,79,78,114,14,5,55,203,207,222,73,152,246,193,181,110,71,127,245,195,234,56,28,243,237,64,12,221,119,255,0,77,
+177,142,255,0,96,199,114,126,244,139,232,56,231,211,185,203,132,151,192,0,162,92,119,33,116,236,99,254,255,0,126,95,95,108,83,154,60,142,60,224,48,6,10,64,73,61,15,37,152,123,99,142,252,103,131,1,135,
+146,49,114,217,29,54,66,79,39,182,80,158,190,153,29,241,64,22,55,234,24,225,46,70,50,6,239,236,204,28,245,198,103,245,227,160,247,231,32,55,254,38,57,249,162,148,143,103,211,193,199,60,29,183,56,193,250,
+17,215,24,226,163,88,1,0,5,189,199,60,136,226,192,247,255,0,143,115,193,233,146,56,35,233,145,162,83,209,47,179,234,22,20,244,61,69,152,32,118,200,35,129,206,122,208,4,140,111,79,38,216,227,140,19,246,
+22,192,252,46,189,253,1,30,157,233,202,215,60,110,183,224,127,211,59,60,30,61,174,79,60,224,231,183,110,134,171,36,35,146,97,185,192,231,37,227,244,28,100,217,128,61,201,228,28,245,169,54,184,3,103,218,
+1,3,129,190,60,3,248,90,128,113,145,158,128,242,40,2,200,146,111,249,226,190,156,173,159,57,228,127,203,86,252,112,14,58,114,105,225,174,152,127,168,139,29,65,34,219,4,243,253,208,63,60,251,31,67,81,124,
+254,65,89,71,25,200,69,99,207,251,182,199,167,78,231,35,166,8,52,160,200,8,44,183,33,123,1,9,39,242,22,61,49,219,60,2,57,232,104,2,124,79,206,235,123,82,70,71,72,24,251,146,60,182,39,142,253,134,120,237,
+74,55,140,143,179,90,158,220,172,61,121,236,45,250,119,28,247,207,6,162,12,195,24,130,228,159,120,74,129,146,58,237,177,61,123,130,70,49,218,144,187,183,62,93,200,207,80,21,148,231,140,115,246,14,59,241,
+158,8,236,0,160,7,144,199,25,138,209,71,57,59,97,3,219,159,32,28,1,142,227,29,234,54,49,12,113,104,120,61,22,18,113,237,152,88,130,65,56,233,145,249,9,21,229,3,2,41,79,251,217,24,233,211,253,3,28,254,
+99,154,127,153,57,231,203,96,51,252,82,72,49,239,133,179,239,232,125,177,128,5,0,85,47,8,63,47,144,164,242,49,180,28,142,252,90,227,242,199,31,153,79,49,65,63,190,128,103,61,76,124,245,199,63,100,199,
+60,140,113,156,142,153,25,178,37,156,158,91,111,29,158,83,206,125,237,215,35,60,241,158,255,0,74,148,188,163,172,155,176,15,57,108,131,219,172,96,117,227,211,131,64,20,204,165,184,18,196,125,8,49,145,
+235,140,11,92,228,103,156,96,123,102,134,243,143,70,67,255,0,109,17,71,126,9,251,47,166,50,6,121,35,168,230,167,50,74,127,229,163,30,122,28,129,223,191,0,227,215,143,228,40,243,31,0,230,78,184,227,118,
+61,179,207,226,113,233,147,212,138,0,168,124,238,133,212,15,250,232,79,203,232,2,195,199,81,219,175,64,122,80,35,145,134,68,157,186,239,145,71,82,8,63,185,56,199,124,241,86,204,146,127,125,135,160,57,
+252,63,229,170,159,195,31,81,212,83,73,148,147,251,199,25,198,63,213,158,125,70,233,137,207,108,109,29,121,160,10,222,92,192,28,204,163,3,31,235,142,73,56,31,197,8,192,235,158,167,166,8,233,81,5,144,224,
+121,231,57,207,252,124,42,231,35,29,69,174,238,156,156,103,216,226,174,15,59,159,154,87,224,159,151,200,207,28,231,239,113,199,29,113,158,121,227,35,43,177,0,172,195,221,86,16,59,245,13,46,56,207,96,61,
+143,168,5,111,46,92,241,35,117,206,69,206,1,39,167,72,0,35,232,125,57,244,79,46,94,114,102,96,122,129,115,25,207,212,148,207,94,152,227,215,158,147,155,117,108,150,142,225,178,7,2,59,67,143,174,89,142,
+126,167,24,245,57,203,5,186,12,17,111,121,145,159,249,103,100,167,61,115,235,245,3,175,63,74,0,97,128,176,201,91,130,79,111,54,32,115,223,4,167,65,158,1,231,167,7,60,70,214,164,28,148,159,10,58,249,209,
+119,255,0,183,103,31,136,235,208,19,138,159,201,60,127,161,222,28,250,27,96,71,184,11,146,7,63,129,2,151,236,217,0,155,75,246,56,206,8,136,142,248,25,40,192,159,229,233,200,160,10,141,18,245,99,112,7,
+29,100,136,227,191,81,107,143,94,50,49,142,221,212,164,0,3,230,207,147,158,55,195,215,24,199,252,123,115,207,174,61,129,32,26,153,173,147,4,181,141,240,199,111,46,46,252,245,242,59,30,157,193,201,207,
+57,13,251,60,29,5,158,162,71,210,51,239,209,109,152,142,131,57,0,158,51,64,21,217,227,65,157,243,1,208,31,180,193,207,169,0,90,18,6,120,206,61,105,134,104,72,229,166,32,118,243,227,35,169,29,5,174,115,
+244,35,219,156,138,157,162,136,125,219,109,64,147,142,10,253,122,98,216,31,78,163,219,61,234,3,26,30,62,205,168,15,79,150,67,207,61,141,183,98,1,255,0,245,80,0,30,12,231,35,142,197,213,137,246,56,128,
+99,220,146,50,122,119,164,243,237,191,191,24,246,218,51,199,185,132,130,125,113,220,246,197,55,110,56,16,222,227,36,5,48,159,126,163,236,167,57,244,199,57,207,106,107,18,7,250,139,158,157,76,82,1,193,
+25,225,109,129,247,201,60,115,248,128,60,203,1,254,43,112,72,207,49,0,120,56,28,173,174,61,51,201,233,215,156,134,121,241,168,225,173,155,167,252,178,203,15,175,250,58,227,158,188,15,78,106,61,243,158,
+5,188,172,65,231,114,76,70,59,31,245,64,116,244,207,92,250,98,34,215,45,207,217,72,60,127,203,25,200,32,117,227,201,227,56,239,206,61,177,64,19,125,165,24,227,116,3,191,220,192,207,76,112,138,64,57,231,
+156,15,228,141,180,130,249,181,60,116,109,248,233,158,49,32,25,245,39,147,199,24,205,87,103,184,31,242,201,120,61,76,45,199,110,134,46,79,177,250,99,147,81,230,228,242,55,12,227,164,13,142,59,28,160,234,
+120,39,240,231,52,1,43,49,31,195,107,193,236,178,243,211,251,175,199,126,156,116,166,238,97,218,3,145,208,71,51,118,232,48,192,243,250,116,39,213,119,94,224,227,27,127,235,217,139,103,235,228,224,1,254,
+7,181,53,103,188,4,141,160,130,64,39,236,234,126,152,45,31,30,253,184,57,60,114,0,31,55,25,9,27,100,255,0,207,57,71,191,93,253,123,31,175,106,104,123,143,225,64,48,123,44,255,0,161,18,115,248,159,199,
+24,21,55,218,46,115,130,184,30,159,100,135,57,239,140,167,28,103,167,65,249,211,190,211,46,0,42,248,239,136,34,83,142,49,140,70,64,199,3,140,118,199,176,5,99,37,217,233,9,63,79,55,184,199,241,184,231,
+211,4,147,142,156,83,60,203,197,228,198,195,159,238,184,57,57,60,254,245,71,226,61,170,223,218,92,15,185,49,193,198,76,49,145,238,7,203,199,97,201,0,143,74,103,218,121,201,243,215,216,91,195,207,169,251,
+167,144,71,185,201,231,142,64,5,67,45,201,254,22,24,234,64,35,156,116,206,243,219,140,156,115,232,73,203,60,201,65,193,207,25,235,207,92,245,27,14,79,124,231,7,175,94,42,233,187,132,18,73,159,140,242,
+97,135,142,160,31,245,92,127,79,210,163,107,248,23,36,25,15,25,37,162,136,131,206,15,34,50,57,228,30,49,142,78,49,192,5,54,184,145,64,200,127,112,177,161,39,142,78,124,163,159,108,158,51,237,138,97,187,
+24,255,0,87,112,78,122,121,113,241,234,115,246,98,57,250,143,231,141,17,169,195,212,161,35,61,227,137,73,228,242,113,7,243,29,61,65,53,27,234,86,205,159,221,169,24,231,2,0,61,7,62,80,35,219,255,0,212,
+40,2,152,188,82,57,134,82,115,252,80,167,191,113,110,188,116,224,245,193,246,166,155,136,135,45,1,207,32,101,0,201,207,57,196,124,231,140,18,123,251,84,173,127,110,220,253,157,73,60,117,183,245,29,127,
+115,238,59,156,127,56,140,240,179,96,90,14,114,7,239,97,76,245,56,255,0,84,72,231,174,62,167,29,104,2,51,52,78,50,109,73,199,81,229,69,199,127,226,140,3,156,242,114,78,106,54,251,51,0,77,147,47,78,66,
+64,51,255,0,124,46,121,239,158,125,58,84,165,161,61,44,151,61,193,184,140,146,126,190,80,25,239,199,57,251,167,165,48,158,15,250,28,99,28,3,246,152,195,31,252,130,121,235,159,155,36,100,123,80,5,114,182,
+128,2,176,12,247,13,34,134,252,66,131,199,56,35,31,81,232,205,176,242,124,136,207,174,110,24,109,234,49,192,95,78,227,211,146,106,198,91,25,91,84,30,153,186,81,142,50,1,196,75,237,223,234,7,56,105,87,
+228,152,226,80,61,110,216,103,62,153,95,94,122,96,241,142,58,128,85,34,62,84,65,111,235,159,62,229,142,70,120,32,76,1,207,76,129,129,158,213,9,141,9,57,130,220,243,252,83,221,129,215,185,243,215,233,247,
+191,149,91,111,52,240,177,245,227,41,119,144,120,207,82,8,60,125,61,70,57,2,2,178,224,226,41,135,28,145,114,63,62,131,62,253,120,231,39,34,128,35,107,117,113,254,166,192,119,193,185,187,224,117,228,9,
+199,226,123,254,84,209,98,191,243,199,77,61,178,211,220,12,231,190,77,211,100,243,192,35,160,237,78,204,195,164,50,21,0,156,155,151,61,112,73,249,66,227,142,79,61,77,32,105,206,64,73,71,169,91,139,142,
+56,231,37,100,0,14,79,29,178,71,92,80,4,102,202,33,255,0,44,116,252,255,0,179,43,31,253,10,67,211,62,248,231,161,235,27,105,241,158,177,217,18,15,56,201,192,231,144,119,142,59,142,51,221,71,38,167,223,
+48,39,45,46,15,95,244,139,130,6,63,237,167,0,228,231,25,253,0,166,153,103,254,22,233,215,50,76,61,243,157,196,100,115,200,30,220,102,128,42,54,157,30,114,34,176,252,21,179,144,113,219,61,201,0,146,1,24,
+231,6,154,116,231,4,236,182,181,96,57,249,97,14,79,182,124,178,51,212,228,17,158,71,38,166,105,37,57,37,148,250,110,154,229,142,79,97,211,191,191,36,224,118,168,243,38,1,221,31,61,183,206,58,244,231,156,
+118,235,147,219,189,0,52,233,210,15,249,114,132,158,48,126,200,141,207,28,97,147,158,188,140,118,201,193,39,41,246,9,113,159,176,66,125,205,140,94,220,2,99,57,57,29,177,211,56,235,65,47,220,100,147,212,
+52,216,252,204,39,233,192,63,210,162,217,43,127,12,163,4,159,249,109,131,158,56,196,67,142,188,133,253,15,0,11,246,57,1,36,233,240,254,22,177,96,244,29,60,174,59,115,215,29,186,211,77,171,15,249,134,197,
+211,143,244,56,184,233,255,0,76,71,175,98,121,252,233,194,25,87,56,145,151,215,47,63,126,59,196,114,59,242,59,28,26,67,28,196,21,51,28,127,178,100,31,78,177,115,156,96,253,122,115,130,1,19,70,64,25,211,
+208,118,202,90,198,58,159,104,136,29,61,135,165,70,83,25,219,98,71,94,124,152,199,92,103,36,34,247,245,247,224,211,204,114,2,65,105,49,158,15,152,195,235,131,228,227,215,28,140,142,156,102,162,253,224,
+224,25,14,7,24,149,134,49,239,229,115,158,199,215,29,249,160,0,5,201,221,98,160,247,253,210,99,31,134,15,126,189,6,113,138,113,242,142,115,104,161,113,201,17,19,143,79,186,27,129,199,95,110,221,98,223,
+42,247,144,100,242,124,215,39,235,204,32,119,60,112,122,231,210,148,72,122,179,72,78,57,32,179,31,205,182,159,232,112,113,211,20,0,165,173,184,6,219,35,175,16,206,65,207,127,150,48,58,117,193,39,210,163,
+97,99,158,109,184,227,37,162,184,253,51,17,61,251,130,71,110,181,47,158,64,63,53,193,236,2,224,31,167,204,6,0,28,243,207,76,19,154,105,184,144,125,211,62,122,124,194,28,118,232,119,144,121,234,1,25,200,
+244,160,8,10,105,252,127,163,33,233,209,110,23,158,8,224,91,246,39,223,61,141,42,67,100,114,69,175,230,151,71,128,120,63,53,191,175,24,227,191,80,106,95,180,76,58,171,251,29,136,51,145,219,231,28,122,
+241,232,6,1,166,27,185,0,230,41,27,158,203,9,35,160,207,50,240,57,29,177,220,231,156,0,70,97,182,206,4,0,15,247,47,73,206,56,0,11,126,71,166,15,76,224,116,36,242,32,35,229,135,190,6,98,189,3,215,25,251,
+62,125,51,158,156,226,149,174,164,237,5,193,4,122,196,23,168,237,246,144,185,254,185,235,138,104,185,153,176,12,51,47,167,220,39,143,67,246,130,49,143,212,3,140,98,128,25,37,170,231,136,99,192,28,228,
+106,7,39,0,245,22,196,113,158,125,7,25,233,81,61,144,97,149,138,16,71,63,115,80,35,156,116,197,190,113,215,161,233,215,160,205,147,36,196,113,19,125,89,97,56,61,57,6,78,253,120,63,136,57,21,25,243,255,
+0,133,8,206,115,132,128,103,62,167,204,252,241,198,49,129,198,40,2,155,233,242,19,247,98,81,201,24,26,130,156,129,140,100,218,2,79,99,215,29,51,234,193,97,47,101,140,231,140,129,124,115,199,24,204,63,
+168,7,4,231,154,186,223,105,28,133,144,119,206,45,241,142,132,240,27,7,56,57,57,3,56,247,168,10,93,156,254,237,142,57,7,253,28,117,29,200,80,115,208,30,122,241,212,129,64,17,155,57,71,240,193,199,82,94,
+247,174,112,126,234,14,113,199,79,76,117,168,158,209,138,242,177,5,245,18,95,97,185,244,49,146,15,169,228,250,131,218,82,147,159,245,145,19,142,63,214,194,167,146,73,201,97,235,207,36,28,227,158,42,63,
+45,178,15,148,222,167,23,22,253,186,112,78,65,62,220,231,183,25,160,10,230,207,25,98,87,31,236,207,112,78,15,115,185,51,140,17,248,118,168,26,222,62,173,33,3,212,92,72,57,244,63,42,242,121,235,254,21,
+165,176,145,242,162,241,145,243,79,110,79,229,140,241,223,167,108,115,76,40,196,124,201,31,94,119,60,39,63,158,115,244,192,207,124,226,128,51,126,207,15,57,145,191,240,34,70,7,158,156,13,190,221,113,245,
+165,242,237,87,134,47,255,0,125,201,250,19,199,29,185,233,207,124,214,137,85,24,59,98,82,7,240,24,129,235,192,225,64,62,158,164,117,60,140,176,180,128,144,35,24,57,207,17,147,237,206,115,208,142,112,72,
+29,15,90,0,207,49,218,46,15,151,41,228,18,67,176,7,30,224,156,241,142,123,142,113,208,83,140,150,32,12,197,55,226,217,250,113,144,126,190,253,199,21,115,124,141,214,34,125,115,128,113,237,243,43,112,79,
+28,251,19,232,132,100,156,194,253,185,0,227,39,56,201,18,0,9,199,174,125,185,160,10,222,109,129,199,238,166,25,207,37,78,58,241,199,152,48,113,212,250,158,192,100,176,189,134,114,22,65,236,0,57,60,245,
+38,79,94,228,119,244,233,108,46,56,251,59,251,146,78,57,231,181,208,36,3,232,51,235,235,78,8,163,56,183,63,80,58,113,211,230,187,7,183,190,115,199,74,0,167,186,208,255,0,4,167,175,5,17,187,30,219,212,
+158,195,29,192,239,154,12,145,242,118,72,7,4,19,8,3,216,103,205,207,215,216,28,250,213,224,146,14,176,128,59,230,51,220,19,201,23,60,15,243,158,105,141,28,141,202,219,161,224,242,17,137,61,129,199,218,
+71,215,29,187,250,0,10,129,209,185,84,98,120,207,238,29,134,61,198,227,156,103,35,4,115,235,193,167,121,121,192,48,57,233,130,45,228,231,174,113,146,0,60,158,217,239,218,164,48,206,49,251,160,14,72,255,
+0,87,211,219,155,162,61,72,239,232,69,6,11,162,79,4,12,244,242,151,3,215,10,211,16,71,95,215,20,1,3,192,120,197,188,131,29,188,135,61,199,92,176,228,158,216,254,124,183,202,126,155,25,59,115,4,128,115,
+255,0,1,35,31,207,181,89,251,28,205,157,205,10,142,62,244,112,3,211,175,203,56,235,215,156,115,142,244,130,194,96,51,190,220,100,112,68,80,19,142,56,193,184,193,60,18,113,238,7,106,0,133,109,174,155,37,
+85,143,61,68,18,14,157,152,109,60,250,118,237,142,120,42,192,182,152,18,4,182,248,193,251,241,90,140,103,131,255,0,45,184,207,108,119,232,50,51,69,0,117,5,112,50,174,78,113,199,147,110,79,25,4,103,237,
+216,237,211,183,30,249,97,103,31,196,9,201,192,104,173,120,231,223,80,61,79,83,128,71,182,69,100,125,162,16,73,6,99,147,158,45,67,12,30,156,236,96,49,235,223,7,28,147,135,125,162,54,28,61,208,57,31,118,
+220,39,78,121,31,103,3,29,123,227,182,49,64,26,108,242,30,60,148,60,117,48,216,131,142,231,230,190,57,207,226,79,228,105,134,226,68,24,84,128,156,244,104,108,186,250,17,246,178,163,169,231,36,143,175,
+74,224,161,25,107,139,195,223,2,24,207,61,198,62,207,215,140,224,103,158,188,227,15,13,25,24,19,221,251,110,181,141,142,79,167,250,48,198,14,123,140,156,103,29,128,23,237,55,36,241,13,153,250,199,107,
+145,140,250,92,183,3,39,36,117,254,64,189,187,25,6,43,85,236,10,218,91,177,252,196,204,112,49,201,198,58,244,227,45,118,193,63,191,187,60,124,185,134,49,147,232,7,146,57,0,119,56,7,142,196,212,97,206,
+112,103,186,39,167,48,194,7,56,200,32,161,61,122,242,122,122,80,4,255,0,109,152,12,17,109,131,158,5,136,35,30,219,24,240,125,65,63,90,107,94,77,156,145,106,1,233,254,134,220,250,28,13,199,219,25,39,3,
+144,106,45,242,19,242,203,113,142,191,234,163,200,246,224,96,116,244,4,119,20,239,54,108,127,173,159,4,240,74,196,6,15,110,80,231,242,247,233,192,0,105,189,152,228,136,173,100,227,254,129,243,54,61,14,
+2,129,199,76,158,253,240,120,103,219,238,177,183,236,208,1,207,220,211,157,122,253,84,251,255,0,79,74,121,154,98,112,37,32,18,15,11,108,199,147,234,99,206,78,63,186,72,200,207,90,105,158,227,60,75,129,
+208,126,230,14,70,78,62,97,26,142,56,228,103,28,250,208,2,139,233,91,25,183,141,137,192,4,89,49,227,4,143,249,100,199,35,159,83,193,63,85,23,46,64,204,81,224,117,31,99,117,7,176,255,0,151,99,248,127,250,
+234,7,154,110,190,98,184,57,200,41,31,28,243,156,70,122,127,158,213,25,156,140,229,35,98,120,36,198,170,6,59,224,32,244,199,78,253,6,104,3,64,202,28,1,229,0,50,9,219,102,70,56,30,182,195,175,57,199,81,
+210,158,12,103,0,71,39,3,144,45,15,30,167,38,223,3,167,63,76,12,214,65,145,25,178,209,197,223,131,145,142,157,48,160,142,156,131,193,201,192,169,86,91,108,140,195,15,0,117,105,49,156,251,33,36,28,96,97,
+142,120,234,114,104,3,68,136,24,252,209,205,145,220,35,167,63,65,111,200,29,62,108,253,125,16,42,12,237,138,228,129,130,10,136,250,231,159,189,109,207,111,95,167,21,87,207,177,29,98,131,223,13,46,65,206,
+112,7,149,245,228,113,208,116,24,164,55,22,25,199,148,131,167,62,100,184,25,244,249,14,71,62,153,237,140,208,5,236,176,60,69,119,146,0,92,180,36,117,31,244,239,129,211,185,29,8,193,238,129,166,232,33,
+184,250,180,182,139,199,209,162,63,78,153,239,198,78,51,126,209,98,79,220,79,198,67,219,234,156,231,31,143,210,158,47,52,240,112,85,8,57,233,51,224,119,60,36,100,99,168,224,99,240,230,128,47,230,94,55,
+25,84,14,126,105,236,200,0,140,228,226,12,224,12,17,215,35,218,128,211,28,20,144,143,99,45,153,227,3,130,5,153,207,81,157,196,254,181,64,95,105,191,243,199,32,127,118,102,206,120,245,69,25,228,116,239,
+199,20,163,80,211,193,31,186,42,114,63,140,177,3,158,79,3,166,73,193,200,200,28,140,102,128,47,177,184,3,59,203,96,227,38,123,0,113,248,217,130,115,147,198,56,199,106,99,11,179,140,74,8,3,167,157,167,
+145,245,0,219,175,108,30,71,225,154,172,53,13,63,160,7,31,236,237,207,36,117,253,211,103,167,28,126,4,113,82,13,66,211,157,165,192,3,141,232,79,92,147,128,34,60,99,145,211,211,24,6,128,30,5,224,60,73,
+128,50,57,151,78,61,121,28,27,67,206,120,28,247,29,41,133,174,185,1,215,35,254,154,105,125,179,193,6,212,96,250,245,254,70,155,253,161,106,14,68,210,103,140,131,9,234,15,56,31,103,0,244,57,24,233,211,
+173,6,254,209,176,124,233,176,71,24,131,0,119,192,6,220,145,198,58,244,231,36,158,104,1,235,246,198,7,38,50,8,61,27,78,35,35,56,198,219,117,3,182,121,32,116,250,32,73,151,5,252,177,146,70,67,105,221,241,
+140,3,106,195,220,228,246,56,7,173,34,207,104,88,31,54,76,30,164,194,71,29,59,89,243,199,166,123,117,237,48,150,196,142,101,201,235,143,38,112,73,239,157,182,100,103,191,110,148,0,138,1,225,182,143,79,
+155,76,60,250,99,236,47,129,145,156,123,113,79,84,140,240,21,78,51,144,95,77,192,231,212,105,249,206,121,236,114,123,243,81,239,176,39,42,253,56,193,142,236,240,61,63,209,84,119,25,198,51,215,169,205,
+74,175,102,64,195,197,215,156,199,113,215,191,13,107,129,239,212,241,138,0,81,26,145,147,16,29,142,101,179,246,228,5,179,81,147,158,120,25,235,238,3,28,99,254,89,12,99,60,189,177,3,175,65,246,108,12,118,
+63,165,56,125,143,128,94,220,158,223,187,156,146,61,57,178,3,159,76,145,212,227,20,187,45,9,227,201,231,29,35,112,7,79,239,89,113,235,233,223,184,200,4,97,45,250,24,152,246,200,123,112,61,15,75,86,199,
+161,200,57,35,156,14,105,219,45,250,139,98,192,30,55,79,9,249,70,71,81,100,163,28,118,231,190,59,211,138,90,100,3,246,98,57,57,198,220,30,220,253,140,119,198,78,71,61,122,230,140,90,15,225,182,39,61,75,
+115,159,124,192,49,249,122,117,60,80,0,137,111,130,62,198,160,142,48,101,141,135,115,255,0,62,163,28,116,63,133,60,165,153,31,241,230,163,215,18,70,1,32,243,214,219,30,220,211,64,181,24,249,109,113,239,
+41,198,115,216,108,92,103,63,231,130,100,6,219,24,255,0,69,61,200,243,23,25,245,1,164,92,129,142,160,19,207,6,128,34,197,143,35,236,127,248,252,56,227,60,255,0,168,81,250,242,122,99,52,109,128,103,109,
+170,99,175,250,212,239,235,136,206,7,94,199,7,156,122,216,86,132,103,106,65,255,0,0,104,198,115,140,30,102,3,183,126,189,248,205,60,75,16,228,236,28,227,254,88,131,255,0,165,32,100,103,131,180,100,28,
+113,220,2,166,229,224,8,144,123,121,170,0,29,250,71,147,249,131,233,216,82,239,24,200,85,61,114,114,175,199,61,205,185,237,239,198,56,171,134,72,92,12,16,217,227,131,15,63,136,188,31,136,199,78,6,14,41,
+71,217,251,54,6,56,59,240,120,237,197,248,63,144,29,65,61,232,2,162,148,206,118,168,30,172,35,199,225,254,142,123,15,67,211,156,244,169,0,82,70,209,25,62,184,70,206,58,14,45,192,60,158,221,57,4,122,217,
+15,2,244,112,190,254,105,227,158,156,95,12,18,48,122,251,122,154,20,196,216,253,241,7,218,73,191,28,127,196,209,87,182,114,58,231,38,128,24,170,58,226,21,32,28,18,139,147,158,59,70,160,241,144,127,198,
+165,16,22,7,107,195,147,201,204,81,250,143,88,191,76,99,219,147,78,204,106,220,73,35,99,184,154,95,78,120,254,211,97,212,159,243,131,79,44,164,115,231,146,122,226,86,193,30,249,191,52,1,10,194,227,24,
+120,192,244,242,208,243,207,77,177,0,70,125,113,233,245,152,43,228,1,34,14,63,231,155,129,237,206,220,113,233,239,244,203,67,17,156,165,195,3,156,19,35,28,251,255,0,199,240,244,236,50,125,105,225,206,
+54,159,180,227,39,172,174,7,56,224,102,248,158,115,216,18,15,62,184,0,149,81,200,63,188,136,140,243,152,164,35,142,248,216,51,146,73,4,3,232,121,34,165,75,102,57,193,183,110,189,98,148,169,60,147,199,
+150,7,234,121,239,129,154,170,29,122,17,38,79,28,204,163,219,163,92,55,31,129,252,243,151,14,50,66,56,239,187,237,11,201,39,39,239,73,142,189,49,207,78,125,64,46,11,124,224,108,182,231,185,138,80,115,
+142,131,228,252,122,18,113,143,81,74,150,172,57,88,173,8,247,138,79,175,25,3,156,122,126,93,106,158,210,127,137,198,51,207,159,23,235,134,35,245,35,215,140,211,212,100,99,115,244,206,77,204,106,14,120,
+206,11,1,207,97,142,189,113,64,23,82,22,25,38,222,219,130,48,68,87,7,243,237,158,199,130,49,237,213,229,118,115,228,194,9,199,252,179,184,35,140,224,0,93,87,168,233,140,100,244,53,93,17,71,57,228,243,
+255,0,31,54,124,143,169,4,131,233,158,113,249,84,163,105,24,24,29,70,124,235,54,35,182,50,23,32,117,207,78,123,243,64,18,121,229,71,54,202,51,201,27,110,16,245,57,193,15,223,215,60,250,118,167,165,222,
+56,17,198,7,67,184,93,30,64,32,96,137,48,57,250,114,71,24,206,32,88,215,146,102,137,71,57,6,107,112,122,246,41,200,63,135,191,176,144,66,135,3,237,22,228,117,255,0,95,31,35,158,237,158,127,15,167,25,160,
+9,254,218,195,248,109,198,120,195,53,208,200,25,224,101,152,126,3,32,119,226,149,175,221,71,202,109,192,224,224,121,228,119,207,68,35,30,185,200,231,140,14,181,196,8,72,6,123,110,152,36,205,106,115,206,
+50,50,132,142,157,79,231,214,156,45,35,36,254,254,223,191,41,44,4,142,192,228,99,174,122,96,112,70,51,154,0,176,186,163,0,6,235,113,220,159,42,71,4,158,120,38,48,120,61,1,200,24,62,152,169,87,80,102,255,
+0,150,240,39,83,254,170,64,51,156,116,242,151,25,25,231,62,252,231,138,223,99,76,115,115,16,199,66,26,35,156,116,224,231,223,215,39,61,59,189,45,20,0,69,196,108,14,122,34,100,129,158,231,130,65,7,156,
+227,60,14,40,2,250,95,28,103,237,8,70,79,69,97,140,117,200,217,158,158,221,120,231,138,119,218,220,158,38,1,184,227,103,78,48,9,45,24,30,164,28,126,85,92,90,33,254,47,92,16,150,237,215,175,80,61,184,227,
+240,226,164,91,82,188,15,56,231,31,118,40,64,247,63,187,147,147,211,140,30,157,168,2,113,121,32,235,40,231,143,186,195,32,247,206,208,0,4,122,116,227,154,113,188,39,131,54,8,236,75,118,232,64,17,174,61,
+176,123,18,112,51,81,139,118,198,64,185,255,0,190,23,60,142,160,111,35,159,127,255,0,91,252,135,32,13,147,231,161,202,196,125,122,96,231,233,144,72,201,193,244,0,144,93,185,60,220,199,248,121,128,231,
+177,39,110,61,201,39,63,206,147,207,108,156,92,70,72,61,51,146,73,232,1,42,91,159,99,159,90,5,188,192,15,244,107,182,199,35,228,183,92,241,216,145,146,79,81,142,49,142,135,2,167,85,152,96,125,142,240,
+12,113,242,198,70,122,243,134,227,140,118,224,228,17,205,0,64,178,74,127,231,153,228,255,0,207,81,223,61,64,199,57,237,143,115,199,47,222,248,192,16,12,117,203,206,61,120,24,97,207,235,215,142,245,32,
+55,64,225,108,175,125,1,196,121,62,255,0,123,56,24,244,28,241,159,68,223,123,144,5,149,222,122,129,152,1,56,238,127,210,7,231,142,1,57,239,64,17,121,174,51,242,195,216,99,205,157,189,134,48,227,232,59,
+251,243,193,246,137,120,95,42,28,103,169,107,142,158,132,121,192,117,231,56,233,250,218,18,223,168,57,211,46,219,158,15,155,2,231,243,184,99,211,240,235,205,33,158,249,127,230,25,63,81,199,157,6,115,208,
+114,24,241,216,114,51,146,50,123,128,87,243,220,30,99,131,32,30,67,79,142,156,117,152,247,237,211,219,20,9,165,57,194,91,142,123,188,190,190,238,120,198,127,206,9,156,220,95,243,255,0,18,153,251,227,55,
+9,207,167,79,204,130,79,4,228,96,100,169,187,212,23,166,146,199,7,146,243,198,191,76,98,69,247,60,140,244,234,57,32,17,169,159,178,216,224,115,135,105,125,61,75,99,63,153,245,6,157,251,243,247,163,176,
+35,166,4,234,61,79,42,209,146,73,227,142,123,100,131,214,101,188,191,56,11,165,48,57,201,219,122,70,112,14,57,19,117,252,0,20,245,184,212,248,255,0,137,99,2,63,233,245,207,227,196,156,251,143,199,182,
+0,5,80,205,146,5,189,137,199,36,11,136,189,187,121,35,35,223,35,233,138,176,142,8,249,173,237,248,235,139,136,191,246,101,28,244,60,31,82,71,172,226,125,72,253,235,9,71,111,150,238,78,152,247,36,142,125,
+63,49,205,60,77,168,115,254,133,56,3,183,218,228,61,184,231,39,28,253,51,192,226,128,43,124,185,1,97,136,224,141,192,79,107,156,123,103,252,73,201,25,239,82,42,199,218,220,12,1,255,0,47,54,88,247,63,115,
+143,167,35,29,121,235,101,110,117,12,241,99,62,58,1,246,146,195,35,183,250,153,14,127,16,121,61,112,41,226,107,198,255,0,151,59,164,36,1,197,206,1,60,227,172,3,160,235,244,239,214,128,43,133,139,7,116,
+49,168,237,155,171,12,156,116,200,108,12,147,233,147,207,28,113,82,9,34,82,48,145,103,144,15,218,116,239,94,188,176,239,147,216,14,122,28,84,195,237,167,159,179,220,123,143,181,70,71,113,252,91,65,35,
+220,14,131,218,165,13,127,218,9,70,59,60,246,195,243,36,28,145,131,223,24,235,233,64,21,132,200,51,242,194,122,99,253,47,78,254,94,96,233,238,72,57,25,6,155,231,167,25,84,198,51,132,185,211,184,192,238,
+121,224,12,116,35,39,176,171,89,190,32,110,141,128,25,39,253,34,215,243,198,198,199,191,29,114,120,236,111,187,60,254,244,14,227,204,179,42,8,232,57,131,56,252,187,28,246,160,8,82,88,58,148,98,7,56,19,
+216,48,60,122,44,139,211,156,100,96,245,24,57,169,214,88,8,33,98,147,142,160,201,100,122,118,35,237,29,191,28,116,197,51,206,148,140,182,252,231,179,88,251,140,31,220,140,240,61,71,108,100,19,65,148,146,
+75,23,39,166,72,211,125,250,18,153,29,251,251,247,201,0,148,203,25,232,179,1,233,254,128,71,183,89,243,142,6,121,227,156,99,56,166,121,168,8,230,64,8,39,145,100,8,247,226,224,15,242,125,41,22,86,198,59,
+117,35,254,37,132,156,158,191,234,136,108,129,212,133,231,31,64,162,85,224,252,217,255,0,114,192,99,169,224,172,93,199,30,128,253,104,1,255,0,104,143,160,146,236,143,97,106,122,116,193,91,128,71,208,28,
+158,157,232,251,66,12,243,168,183,208,131,248,224,92,31,113,129,143,204,211,12,152,193,0,5,199,70,142,213,186,250,109,183,113,207,208,14,194,152,103,96,9,218,189,120,34,56,129,224,99,170,217,144,58,96,
+3,200,61,50,121,160,9,196,241,158,169,168,156,250,156,112,112,123,200,88,17,206,49,215,60,117,21,32,154,62,172,151,254,216,44,71,208,98,112,126,128,99,175,25,233,85,60,242,121,221,32,60,31,149,64,252,
+241,98,113,158,0,3,175,64,57,229,226,227,29,77,223,76,113,17,193,245,199,252,75,200,206,49,253,115,220,2,218,220,64,14,76,90,137,231,140,179,128,63,31,182,47,83,211,31,135,124,72,110,160,31,242,206,228,
+103,39,150,4,228,118,36,234,0,103,182,112,79,28,241,131,84,126,208,73,200,142,224,129,221,146,53,24,207,124,217,103,191,67,130,115,140,83,188,214,7,34,57,129,244,10,128,96,231,254,156,7,94,231,175,60,
+245,160,11,223,107,143,29,36,4,227,0,184,4,12,158,187,111,72,237,159,207,130,41,194,241,15,87,110,61,100,156,99,190,49,246,190,7,94,120,7,181,103,155,153,7,30,92,217,32,140,0,163,176,233,255,0,18,227,
+156,115,158,126,152,224,210,139,151,28,180,82,31,80,65,3,215,60,105,216,227,252,156,80,6,144,191,140,112,100,221,142,0,51,92,143,97,247,103,39,242,39,216,246,169,126,220,189,149,79,166,110,47,73,247,201,
+251,71,30,157,255,0,14,43,36,92,201,218,19,145,199,14,65,198,123,143,177,38,113,156,246,3,24,29,176,225,52,185,24,134,93,167,168,89,74,228,244,198,77,186,140,117,227,29,57,249,120,160,13,65,125,184,103,
+108,89,28,114,247,132,244,29,190,209,199,78,152,25,29,207,52,125,173,200,224,168,60,231,13,120,73,207,80,0,156,246,61,187,103,39,53,155,230,184,228,219,74,15,168,156,103,60,16,9,242,255,0,28,99,175,36,
+102,156,37,147,25,242,72,30,175,41,244,245,17,129,216,228,241,142,196,230,128,47,27,150,231,46,163,156,1,155,238,199,212,76,125,128,239,158,115,78,23,31,244,215,29,63,138,244,158,127,222,145,129,207,251,
+164,123,130,120,207,206,254,76,74,15,251,51,3,159,174,236,1,249,15,202,154,99,25,206,214,81,223,247,133,185,239,128,142,56,231,241,227,212,80,5,255,0,52,242,75,185,25,234,159,107,63,135,0,128,114,122,
+99,219,0,211,26,108,158,179,17,207,221,91,226,71,79,189,242,12,231,211,243,39,165,81,104,71,59,119,126,38,92,2,126,147,175,231,158,79,108,228,132,251,51,31,226,206,79,92,220,15,174,64,186,25,252,250,231,
+147,205,0,95,243,144,131,187,237,25,3,184,190,207,174,70,80,140,127,46,122,98,163,13,19,146,115,114,123,241,246,239,126,78,2,140,122,128,48,125,170,155,91,16,9,220,115,140,240,183,4,15,195,237,220,247,
+192,200,30,162,162,54,172,78,60,233,7,112,60,155,158,122,245,206,163,142,185,224,118,235,218,128,52,89,97,227,45,116,6,59,155,181,233,223,146,125,59,228,243,158,149,9,22,157,228,187,200,198,127,127,120,
+163,219,160,227,129,211,0,99,185,170,130,219,3,153,70,8,228,53,188,188,31,194,244,140,250,156,243,252,144,91,140,156,204,49,237,111,40,207,254,79,140,123,80,5,195,246,49,130,101,156,28,231,230,185,186,
+207,184,33,198,112,120,60,123,122,208,205,98,1,255,0,92,216,29,5,204,217,227,175,85,32,145,145,144,71,29,115,138,166,109,226,3,151,45,208,252,182,207,158,131,39,15,168,128,120,224,114,127,26,140,164,75,
+247,124,239,252,1,124,127,192,177,169,243,159,167,31,64,40,2,118,151,79,56,13,21,192,224,245,154,76,251,117,67,235,158,135,142,50,42,34,218,120,36,170,78,184,60,5,153,193,200,239,131,24,3,167,39,175,160,
+199,52,194,80,117,89,27,29,49,100,84,158,156,100,234,39,241,235,158,59,210,25,118,130,76,44,123,99,236,99,158,15,39,55,132,98,128,28,77,145,255,0,150,119,71,167,38,119,25,233,129,192,29,58,119,7,3,28,
+26,103,250,38,114,169,118,15,170,206,221,113,143,226,28,119,224,31,92,154,67,118,0,31,185,35,143,249,241,137,135,167,65,49,250,119,239,207,163,13,212,103,147,110,217,207,81,97,26,246,199,65,55,124,14,
+231,183,74,0,126,32,1,190,75,150,7,214,114,127,31,184,224,30,72,231,212,243,210,171,184,183,7,33,37,3,174,12,201,145,237,204,60,159,92,250,212,158,122,116,242,27,7,36,255,0,161,196,59,244,199,157,187,
+143,230,114,49,154,99,78,128,28,91,112,72,192,251,50,22,29,242,202,102,0,99,183,39,159,74,0,143,247,88,194,137,7,25,235,25,29,122,252,208,130,50,51,200,39,39,147,198,105,174,33,206,15,154,121,29,86,23,
+25,227,63,242,203,119,63,94,185,235,79,55,168,50,76,50,175,29,173,98,4,15,194,111,241,252,234,38,189,81,247,82,81,159,91,88,113,244,35,118,125,58,49,206,70,71,20,0,214,88,177,128,36,25,244,142,48,114,
+114,7,30,86,15,79,243,138,22,221,91,27,100,112,127,186,96,201,235,159,225,133,129,231,211,242,165,251,97,108,96,31,115,228,68,51,198,115,201,62,216,231,245,20,223,181,5,36,156,129,201,56,141,6,126,160,
+74,0,250,245,247,234,104,1,13,180,156,252,210,227,160,205,179,116,57,28,230,223,215,158,122,116,57,24,166,53,174,6,55,144,78,15,49,16,220,246,249,236,200,227,215,144,70,15,126,101,23,72,127,138,64,59,
+157,171,158,189,112,102,30,180,166,104,216,100,220,78,56,28,20,139,3,28,12,102,115,142,131,242,3,28,208,5,51,108,70,127,124,78,56,207,147,25,39,61,7,54,42,112,7,76,255,0,60,212,70,217,142,71,153,39,36,
+231,22,235,211,39,163,11,117,25,61,207,110,132,14,42,240,184,132,103,23,147,100,231,28,192,58,245,227,207,198,113,129,215,31,129,167,9,162,61,110,230,57,235,255,0,30,167,147,158,185,148,146,79,110,112,
+79,214,128,51,133,148,135,164,178,119,4,136,87,60,30,216,129,176,61,7,30,199,156,82,155,9,112,1,121,190,165,8,247,28,11,96,71,175,126,72,192,57,24,208,105,161,198,62,219,56,30,184,178,198,123,146,76,129,
+135,211,174,49,248,68,68,15,134,251,116,132,255,0,189,107,239,147,129,42,227,223,175,126,180,1,71,236,55,3,238,153,121,238,67,174,50,56,231,201,95,255,0,80,235,158,105,13,140,224,96,188,192,245,207,154,
+113,128,73,231,116,99,233,247,187,115,198,106,231,147,9,206,111,164,32,231,130,45,176,73,32,115,182,117,60,115,208,116,224,231,178,24,33,28,11,185,189,192,54,196,159,252,153,7,63,158,79,191,80,10,95,101,
+157,112,4,243,142,252,92,40,3,212,157,197,70,63,49,144,122,230,147,201,155,24,107,153,134,63,233,230,28,231,175,252,246,4,227,212,254,3,210,215,144,185,33,110,238,128,62,166,216,15,207,237,39,158,56,232,
+79,67,238,211,109,216,95,92,96,115,128,214,217,3,158,132,75,223,182,9,228,119,52,1,84,164,224,144,183,55,3,212,173,212,124,123,100,92,243,158,57,246,227,29,218,18,233,179,254,147,49,244,221,114,228,241,
+159,238,221,129,198,122,224,103,31,133,61,173,155,25,91,203,163,131,207,207,9,207,254,69,28,116,227,175,94,157,218,109,103,81,242,220,95,48,246,104,143,126,14,26,78,64,250,146,122,80,2,24,231,35,45,59,
+112,59,221,17,147,211,175,218,142,113,131,200,7,208,156,114,43,59,72,132,143,180,62,115,192,23,108,56,247,6,236,12,241,237,244,52,246,183,185,24,205,197,255,0,212,180,96,117,199,59,88,244,60,158,79,183,
+38,171,152,231,3,62,109,238,73,235,230,176,206,125,54,48,227,244,238,77,0,52,202,204,113,231,145,233,254,150,196,131,245,26,134,211,249,250,244,39,134,249,204,50,26,81,156,158,183,31,80,122,234,60,143,
+174,115,206,8,167,23,185,83,254,178,241,186,3,251,199,193,60,159,86,252,120,39,60,250,0,159,104,184,28,169,186,57,255,0,104,159,110,114,184,198,1,30,164,245,38,128,24,211,156,29,178,128,115,206,110,20,
+14,159,246,17,206,223,108,241,147,193,237,1,154,85,249,137,14,15,115,63,28,244,0,139,210,120,57,206,50,70,49,245,145,174,111,126,239,153,112,59,99,205,10,64,192,61,2,28,156,119,57,60,30,71,104,124,251,
+181,235,44,153,237,153,93,129,206,8,233,24,227,168,56,25,7,191,106,0,99,92,255,0,120,33,35,167,250,67,144,7,60,109,55,56,233,235,237,200,165,91,156,240,68,57,199,121,156,225,122,129,143,180,15,67,198,
+112,8,207,29,208,220,93,244,203,145,254,252,132,144,79,95,187,156,116,35,184,29,207,118,253,162,247,7,12,196,100,96,110,144,0,15,98,89,1,255,0,56,250,0,75,246,149,0,231,200,233,143,149,229,61,122,245,
+184,35,29,198,63,44,116,140,221,33,31,126,49,206,126,85,145,143,208,17,57,7,159,78,62,157,143,62,235,7,112,7,215,36,251,115,140,131,211,57,233,140,244,224,211,76,179,99,253,92,71,32,114,219,242,58,244,
+253,226,140,247,231,57,206,79,3,4,0,251,66,17,146,217,237,254,173,200,193,234,57,115,145,199,127,110,156,96,243,83,25,4,224,115,254,168,241,158,56,5,177,156,231,245,235,198,90,210,92,246,88,151,63,129,
+61,184,30,102,63,15,94,120,235,64,251,99,113,179,130,58,174,208,113,156,116,46,7,67,198,61,104,0,19,68,217,230,66,70,58,91,62,78,121,228,4,35,143,94,135,242,201,186,50,122,200,122,245,181,96,7,61,50,97,
+57,199,183,225,222,148,71,123,213,68,224,115,146,167,30,185,218,22,80,0,228,250,251,14,244,223,38,224,31,157,102,28,231,59,198,122,14,198,96,15,61,59,99,175,165,0,33,104,143,5,217,71,81,251,134,3,32,140,
+99,247,99,60,243,140,12,117,205,1,98,60,172,175,255,0,128,236,87,241,38,46,48,71,112,115,142,7,74,86,73,136,194,201,56,60,103,15,24,250,140,179,158,157,51,200,238,189,241,27,69,112,70,60,235,129,232,124,
+203,66,51,207,82,199,35,31,197,156,116,30,228,0,35,4,232,26,83,158,56,139,31,163,91,158,123,99,159,207,138,136,199,158,211,96,114,127,114,153,25,60,114,214,184,231,167,183,65,235,74,209,77,206,233,37,
+96,8,235,53,144,199,175,2,116,39,25,24,227,31,141,68,209,176,233,52,131,191,55,22,201,199,57,199,250,79,63,169,253,114,0,52,77,252,43,49,25,28,21,10,57,235,210,208,113,212,158,7,160,226,147,100,216,226,
+217,201,24,198,100,0,100,125,96,95,81,212,14,227,183,44,48,150,255,0,151,185,65,246,187,183,252,65,205,194,175,111,81,207,229,76,48,144,64,251,100,249,198,114,46,108,207,66,7,35,237,128,158,8,39,160,32,
+99,36,226,128,37,99,114,188,125,148,116,29,100,238,64,231,30,87,79,126,51,129,211,60,71,155,146,50,45,34,61,113,153,64,247,231,116,99,215,38,148,196,231,165,212,163,176,38,75,102,56,231,4,255,0,167,16,
+121,246,31,128,200,16,60,114,40,249,174,136,198,7,38,216,158,71,112,247,132,103,185,224,250,140,244,0,19,127,164,224,129,111,16,62,215,4,1,145,254,204,103,215,160,36,99,169,230,154,22,228,144,77,180,103,
+63,244,214,83,147,207,31,234,206,122,122,127,141,87,0,229,128,184,201,236,84,90,28,227,168,226,227,39,140,143,208,140,243,74,22,86,32,110,149,248,201,249,109,254,184,56,185,24,24,62,184,29,198,49,128,
+9,154,57,240,127,208,208,142,152,243,101,7,142,217,242,248,227,182,15,126,14,114,26,22,76,227,236,8,188,142,76,178,99,30,192,178,31,166,113,140,118,168,136,32,157,201,47,212,40,207,30,201,118,72,207,166,
+121,30,188,83,190,67,210,57,219,145,207,150,228,100,14,152,55,56,238,123,119,207,61,40,2,66,196,112,218,122,159,64,179,206,51,140,227,159,56,122,244,7,241,244,102,245,39,157,41,8,244,55,82,158,58,146,
+11,220,142,128,115,130,1,7,24,57,197,41,102,207,17,76,70,50,7,147,143,174,63,124,73,231,61,48,115,158,181,27,52,139,156,91,202,0,238,109,28,228,113,206,12,164,254,89,239,210,128,37,18,162,144,5,146,32,
+233,143,181,54,1,199,29,103,207,224,59,99,147,208,70,215,81,156,230,204,12,117,34,226,82,79,35,57,249,184,24,62,164,100,243,237,31,156,217,27,173,229,7,163,21,179,144,156,15,92,51,0,7,167,32,28,19,140,
+26,70,155,214,57,192,198,121,179,97,239,201,36,30,132,117,60,245,160,5,251,84,96,241,104,152,28,18,101,144,231,183,81,38,51,147,145,147,143,92,102,144,222,199,206,109,34,96,120,195,76,228,227,156,16,26,
+81,145,159,211,36,138,95,50,22,3,43,43,115,208,219,48,28,113,146,3,100,14,192,251,242,113,130,34,115,25,39,17,72,48,57,253,196,152,3,223,231,92,12,126,61,193,235,64,10,117,8,20,12,88,68,65,227,253,102,
+209,238,63,227,227,145,244,7,131,207,39,21,17,212,161,193,31,217,150,231,140,29,210,224,15,161,19,254,126,185,61,249,168,203,71,156,24,138,156,147,157,146,14,159,73,212,247,244,245,6,158,165,88,176,84,
+64,58,124,195,174,122,224,52,167,243,7,140,243,233,64,13,58,149,182,0,58,109,175,167,50,203,147,233,247,110,177,234,6,1,228,142,58,131,31,246,133,169,192,58,124,0,156,231,37,216,126,102,70,24,233,128,
+78,58,47,78,42,82,128,116,242,87,56,31,49,140,142,167,61,100,108,112,6,48,61,125,141,70,241,196,199,44,240,2,112,164,110,78,49,198,58,156,227,184,24,198,114,15,66,0,27,246,235,62,127,208,161,81,212,237,
+80,216,30,153,50,3,158,253,79,248,6,246,192,231,117,146,244,32,109,141,128,252,72,185,30,221,134,61,125,5,138,2,126,127,36,243,192,221,22,78,51,221,164,82,15,161,28,227,144,48,5,60,219,219,55,221,72,1,
+24,29,97,7,175,66,126,208,125,126,190,130,128,34,251,69,137,255,0,151,68,28,145,202,191,94,58,147,122,15,29,15,29,243,79,18,218,177,56,180,140,15,77,210,40,252,73,191,199,56,224,113,206,7,28,210,253,154,
+223,60,197,3,122,252,235,206,72,7,129,112,125,114,61,250,159,72,218,11,113,157,182,182,253,176,68,153,61,120,227,206,239,239,223,166,58,80,3,252,219,79,249,242,66,122,112,210,147,234,50,126,223,142,189,
+179,219,52,223,50,14,214,136,171,219,47,115,156,251,129,168,115,199,183,31,134,104,85,80,120,183,136,113,206,112,0,199,161,51,143,79,80,58,123,98,93,200,163,238,195,192,224,29,173,140,117,35,55,36,156,
+142,122,30,104,2,34,209,3,196,17,2,79,57,19,103,161,228,103,82,3,39,158,131,233,147,78,45,25,32,136,242,70,56,16,57,7,216,19,168,250,119,244,61,232,47,30,114,203,24,92,30,170,84,145,206,112,18,124,99,
+241,29,243,198,105,134,72,143,221,140,156,30,197,212,112,63,235,225,134,64,244,198,59,208,3,202,135,36,132,228,240,115,105,39,78,195,254,66,67,60,103,249,227,185,140,163,114,16,38,115,212,91,76,49,245,
+217,170,112,59,3,140,231,168,61,222,14,226,54,196,224,231,129,230,72,61,206,63,126,61,191,90,152,171,140,144,28,28,99,45,43,169,3,182,15,218,179,220,250,128,122,224,156,0,10,133,93,115,159,45,73,57,230,
+27,190,135,174,73,189,110,191,253,114,123,83,74,185,57,200,3,28,109,138,228,129,207,29,110,184,61,72,31,137,25,205,76,76,195,156,206,118,145,247,110,164,67,235,143,150,224,231,174,50,78,120,62,152,164,
+45,33,35,139,129,223,34,242,115,206,114,115,251,252,254,131,216,1,131,64,16,24,223,28,74,51,255,0,94,215,7,233,203,93,49,252,199,255,0,92,169,132,174,58,139,178,61,6,161,40,192,252,101,235,233,207,78,
+220,19,69,0,82,50,77,252,37,135,3,184,60,1,198,62,114,126,152,63,65,210,144,77,112,79,14,195,243,237,211,24,127,99,142,189,251,226,165,243,96,231,1,199,113,242,69,158,159,245,196,231,28,231,7,156,227,
+210,144,77,23,7,13,140,228,143,46,46,160,122,181,185,35,159,207,36,17,198,8,3,60,219,128,14,103,42,221,79,206,249,61,241,198,113,248,131,249,12,80,179,220,140,31,54,70,25,3,0,158,231,146,6,222,113,249,
+245,30,134,166,251,90,12,226,38,235,193,197,168,207,224,214,185,231,175,215,160,197,61,111,73,56,49,184,25,201,192,180,60,122,130,182,196,159,175,127,83,64,16,249,210,54,57,252,25,27,223,174,1,36,246,
+232,9,234,125,218,124,194,51,190,48,63,218,243,115,245,225,120,253,59,244,226,173,253,175,61,35,151,159,67,2,254,162,215,175,61,127,81,76,107,182,199,31,104,82,6,50,38,132,14,253,79,144,160,240,79,28,
+247,233,216,2,182,101,0,98,72,177,236,178,31,215,203,61,41,155,229,31,198,167,28,124,169,39,182,70,60,150,198,61,186,254,181,63,218,223,33,75,202,64,57,199,153,6,70,49,215,49,170,156,123,146,6,9,235,154,
+70,187,42,62,244,184,207,118,131,169,228,116,207,215,36,140,158,157,137,0,139,205,156,158,172,227,61,54,201,199,254,75,114,126,153,29,122,227,149,223,56,63,196,7,61,99,149,179,157,190,150,92,231,61,186,
+114,41,126,214,236,120,145,253,121,251,57,25,39,175,83,147,207,67,130,127,60,32,154,112,119,9,56,198,113,182,223,174,79,92,231,57,250,119,207,189,0,73,230,77,212,150,233,212,195,63,78,115,214,208,122,
+127,62,57,165,19,178,243,150,206,64,35,202,97,192,244,45,100,122,130,51,248,119,25,166,253,162,126,121,67,145,211,203,131,147,235,194,22,253,61,72,227,128,11,137,201,39,116,99,61,252,176,119,99,160,33,
+85,113,199,227,211,235,64,15,251,83,142,67,72,51,233,16,127,110,246,36,12,250,0,59,241,220,200,47,25,112,67,200,125,150,53,76,159,112,108,6,122,122,227,24,206,57,168,188,201,24,124,205,30,112,7,17,240,
+113,236,221,63,30,227,61,243,76,18,96,243,229,174,48,112,209,167,126,192,121,71,61,122,103,158,180,1,105,111,101,207,11,43,47,61,2,150,207,211,236,171,199,94,113,211,220,3,74,247,243,241,182,59,158,220,
+131,9,29,6,70,4,35,39,158,153,7,62,160,26,172,38,80,113,251,131,233,152,97,193,207,190,0,3,161,25,0,246,224,99,50,25,147,169,9,255,0,1,142,33,207,94,131,30,191,143,61,122,80,3,197,245,208,4,236,186,32,
+255,0,179,30,7,253,242,160,142,156,19,245,164,23,151,28,238,23,56,234,51,229,130,59,227,4,96,227,31,236,158,248,206,106,47,180,32,61,50,58,231,102,48,112,7,247,79,111,81,142,188,103,38,148,220,71,212,
+160,61,206,84,255,0,72,250,12,118,62,131,167,64,9,191,180,36,7,31,233,24,56,57,197,174,115,220,124,204,57,28,101,125,61,185,169,6,168,233,128,82,236,158,231,117,162,243,207,83,184,245,3,215,56,207,3,138,
+168,47,32,94,171,47,67,247,119,227,232,63,117,199,28,114,79,7,168,166,125,178,221,135,220,157,125,48,204,216,63,67,31,29,65,224,242,61,49,154,0,187,253,173,38,65,17,93,183,94,124,203,67,158,71,56,86,13,
+245,200,224,227,235,74,117,57,137,57,75,158,123,17,110,113,245,249,243,198,57,244,252,170,129,184,183,60,108,185,235,206,10,103,208,30,80,99,7,249,227,34,162,105,161,83,184,139,192,64,255,0,166,88,30,
+199,0,147,142,57,31,143,83,64,26,7,80,114,79,203,115,158,120,13,15,177,232,38,7,35,191,81,158,221,233,233,168,58,158,90,236,0,57,25,140,251,113,137,72,233,131,145,211,211,138,162,151,145,28,96,221,30,
+199,34,62,191,137,82,120,199,29,62,134,156,111,163,24,31,233,39,24,56,41,25,0,231,158,50,234,57,252,255,0,17,64,23,198,164,73,235,112,125,217,21,136,232,121,41,41,32,14,123,118,227,129,83,13,73,58,31,
+56,117,231,118,204,31,98,28,245,231,252,107,35,237,227,39,2,231,212,131,28,39,24,233,141,200,70,71,225,245,236,95,246,211,212,199,33,250,199,109,158,221,140,96,159,229,215,52,1,174,47,206,48,22,118,193,
+227,247,233,235,129,212,96,113,215,39,128,79,56,165,254,209,114,57,89,64,247,153,58,116,245,200,60,14,79,235,89,2,228,28,230,59,128,220,114,145,89,143,83,212,178,227,160,193,4,231,158,0,226,156,37,115,
+209,46,49,239,246,28,99,160,200,50,112,120,227,32,156,251,224,128,13,63,183,231,63,235,1,25,228,220,156,17,207,56,220,171,248,99,167,78,72,192,46,227,231,124,147,140,159,249,248,79,94,160,23,207,126,55,
+31,115,145,154,161,230,0,50,233,56,57,232,22,200,146,123,252,194,97,220,246,7,128,78,49,210,81,42,113,129,55,174,8,181,108,253,127,125,128,1,233,193,244,36,208,5,213,154,216,156,180,210,156,131,156,221,
+193,158,253,247,143,168,0,131,211,174,42,117,158,220,113,230,78,123,255,0,199,236,120,233,208,1,62,121,32,240,65,250,156,138,204,44,164,100,137,143,65,143,244,101,24,3,191,39,160,192,0,146,220,117,233,
+81,178,130,75,1,62,9,28,126,228,142,253,7,7,176,198,56,39,36,145,154,0,216,50,91,55,121,201,233,205,196,79,244,28,185,29,241,193,224,118,239,77,255,0,71,110,87,237,29,50,74,205,31,0,130,49,200,112,51,
+156,231,145,199,181,99,168,66,78,69,201,244,218,96,4,224,119,82,70,1,233,156,131,211,2,164,9,17,60,173,201,233,195,60,10,59,119,25,236,51,211,28,28,17,205,0,106,178,91,255,0,211,211,12,103,253,116,13,
+244,193,199,80,56,60,3,212,116,235,24,91,64,70,98,187,28,117,2,38,29,201,36,238,65,201,28,251,113,215,24,164,162,212,30,99,159,56,228,25,35,199,83,250,227,175,124,99,29,42,80,96,82,54,197,33,250,202,185,
+244,231,110,49,223,28,227,211,189,0,90,17,217,56,206,203,158,188,126,238,28,245,233,255,0,31,29,58,231,223,35,142,214,82,43,108,18,177,220,159,79,244,107,119,247,234,110,79,7,28,112,121,224,123,230,238,
+183,108,238,64,122,156,150,44,122,142,126,248,231,60,146,57,29,70,105,164,219,3,149,82,56,234,135,175,95,239,62,58,156,242,51,198,113,205,0,107,249,48,227,41,13,199,227,109,8,39,219,137,248,35,130,114,
+113,233,154,112,133,65,31,187,185,231,210,217,8,239,158,68,192,114,78,58,253,78,121,57,137,44,43,220,174,70,64,37,113,200,199,63,188,32,158,185,24,28,240,65,57,204,203,117,110,160,18,119,103,177,69,60,
+142,156,153,148,246,28,12,103,0,10,0,184,98,78,1,130,232,19,158,62,206,184,253,37,111,115,220,119,207,34,144,197,26,244,130,101,32,240,90,214,49,143,67,144,253,207,25,201,255,0,8,86,254,0,122,175,35,144,
+97,60,113,192,63,190,4,159,161,56,207,94,213,56,191,128,140,124,163,221,85,113,219,63,47,218,65,247,231,240,57,226,128,1,177,79,40,216,232,73,130,46,62,187,152,31,92,96,253,14,57,167,134,128,240,73,65,
+223,247,49,243,142,249,19,99,57,3,176,244,244,203,62,215,19,158,15,94,120,86,24,4,231,167,218,134,15,65,219,25,224,118,164,55,4,168,219,35,99,174,21,122,3,234,90,244,14,58,14,59,126,20,1,99,247,24,230,
+226,53,29,247,199,8,231,183,89,137,24,233,192,199,56,227,20,195,246,110,15,159,111,143,100,141,121,252,24,142,220,247,56,244,28,177,110,8,232,243,140,116,43,26,28,103,183,23,164,250,254,127,148,139,59,
+103,37,174,79,57,36,67,1,255,0,219,156,250,96,243,156,142,157,0,3,73,181,254,41,97,198,58,238,69,28,123,41,35,211,146,14,62,148,225,246,94,49,119,108,184,199,202,100,82,62,156,200,59,245,224,129,158,188,
+115,97,46,84,16,89,238,79,175,250,60,3,211,29,102,57,227,57,201,224,158,224,115,49,158,22,25,223,63,78,1,138,223,175,61,65,152,30,58,99,142,189,104,2,36,107,96,113,246,219,96,14,50,9,24,39,176,200,115,
+146,9,231,25,233,222,164,221,109,198,47,109,15,35,35,114,254,127,54,61,64,192,57,231,129,70,248,207,241,203,159,77,144,169,29,7,105,206,51,199,76,231,182,48,65,145,30,30,3,74,249,246,120,134,0,30,130,
+64,65,228,96,103,147,216,80,0,191,103,63,118,230,212,247,194,152,71,191,24,148,125,112,57,246,61,42,100,138,212,143,154,226,28,158,187,94,60,125,62,91,133,224,129,211,31,76,96,146,208,109,192,226,73,179,
+199,30,98,227,29,190,229,199,248,103,174,121,205,60,53,190,114,90,66,49,208,178,182,112,122,16,215,57,201,253,121,245,224,1,198,218,208,116,158,34,58,125,245,61,15,57,204,196,227,57,238,115,205,76,144,
+217,142,55,198,125,49,40,92,14,59,172,188,15,212,241,197,68,36,178,0,228,185,25,28,254,232,96,247,39,19,156,243,140,127,58,148,75,104,1,11,59,175,213,227,224,140,142,211,19,223,111,61,59,228,12,80,5,133,
+142,1,207,152,132,103,140,92,144,70,9,35,57,152,231,156,14,157,114,71,180,190,92,4,117,67,158,135,237,103,156,245,206,38,101,193,192,246,246,24,53,76,77,110,57,251,97,94,51,204,188,146,57,224,9,241,219,
+240,207,191,12,55,49,130,118,93,72,73,234,126,208,192,19,128,123,63,124,244,221,142,113,206,51,64,26,62,80,35,1,3,12,18,2,220,224,17,193,4,28,48,31,151,127,81,154,119,217,195,28,24,91,56,232,110,51,216,
+116,62,78,72,36,125,6,43,44,79,147,254,183,39,56,230,224,227,190,8,195,228,244,224,227,140,251,243,48,184,43,141,197,143,92,20,185,207,226,6,227,131,199,83,158,135,24,231,0,26,11,108,224,127,168,148,253,
+39,249,64,3,0,100,170,159,126,73,250,116,169,210,223,36,124,146,175,160,51,190,7,3,28,111,3,183,81,140,159,110,43,49,110,242,62,85,151,177,63,56,62,156,231,119,184,198,121,235,220,114,27,169,114,118,146,
+6,79,222,17,228,126,6,39,224,1,234,114,7,110,180,1,178,176,184,251,167,62,128,220,147,199,99,204,188,126,131,223,165,56,71,48,35,161,28,100,9,151,223,25,34,227,60,227,223,167,61,136,201,91,155,145,200,
+144,99,140,29,138,163,30,199,201,32,227,211,4,113,158,78,41,233,115,118,65,43,55,30,204,62,189,62,205,242,156,250,224,116,193,228,80,6,192,55,25,194,169,63,246,241,187,158,216,196,196,241,192,61,57,236,
+120,193,190,113,247,163,99,233,135,36,243,255,0,2,39,211,235,140,228,245,172,191,182,221,174,114,84,246,36,166,121,244,24,182,61,243,237,142,115,205,72,151,211,19,243,2,15,168,85,193,28,231,147,2,129,
+219,234,113,215,20,1,166,12,157,210,95,92,101,137,250,124,207,128,123,126,38,165,30,165,101,30,153,67,131,206,59,49,30,228,131,159,196,214,106,220,206,65,249,48,57,193,202,100,228,250,8,59,115,198,71,
+168,35,0,83,254,209,48,238,192,122,109,206,61,242,177,243,244,62,217,232,40,3,71,204,69,56,49,74,125,176,87,142,121,200,149,73,25,39,252,49,213,226,230,219,129,246,121,50,78,121,243,59,156,3,159,180,115,
+159,167,74,201,55,50,103,30,100,221,79,1,36,63,250,12,120,250,140,17,143,194,129,41,110,178,74,167,254,185,204,59,123,67,143,81,207,167,210,128,54,150,120,177,242,219,201,199,125,142,64,224,242,14,231,
+207,61,198,64,35,57,61,41,235,112,159,243,239,38,121,231,203,114,122,227,208,119,7,215,62,196,115,138,174,204,112,38,56,28,127,171,152,30,120,232,66,129,212,116,224,118,235,196,190,97,92,131,35,228,241,
+145,27,116,227,32,2,253,79,7,145,223,168,160,13,165,185,32,130,45,159,142,115,246,121,134,51,206,50,34,126,121,247,24,233,211,20,255,0,180,207,147,136,36,193,236,214,243,1,223,128,124,140,224,113,156,
+245,198,120,21,133,231,112,78,249,191,27,113,252,203,103,142,190,224,31,74,81,32,35,33,174,9,237,251,161,208,159,65,34,99,57,62,195,140,227,161,0,221,23,13,206,232,93,73,61,237,229,252,122,194,58,146,
+167,5,79,31,197,222,154,211,72,78,49,193,206,55,68,192,131,215,161,182,111,98,120,57,235,145,88,185,110,126,105,1,198,48,96,12,15,92,101,133,193,252,70,0,247,167,2,216,25,121,0,236,5,191,92,125,101,35,
+175,191,0,158,253,0,54,124,219,130,0,222,20,2,48,12,78,6,9,227,165,191,35,35,35,175,29,64,228,81,190,236,140,9,20,112,127,229,156,159,134,63,113,129,143,78,1,231,214,178,212,224,130,100,151,105,28,254,
+225,71,61,240,60,214,7,241,63,167,89,85,148,127,203,87,235,143,245,48,158,121,228,134,115,142,188,245,254,180,1,124,73,124,115,182,84,235,142,98,115,147,206,115,254,139,146,50,48,64,199,167,7,144,165,
+175,64,249,164,143,185,201,73,0,253,109,79,76,244,239,250,138,216,233,181,203,99,167,201,110,173,158,72,4,22,30,188,247,60,12,30,148,0,221,217,151,7,144,13,174,63,31,155,129,239,207,161,198,56,0,156,205,
+54,49,186,46,224,157,173,131,159,99,106,65,245,57,235,233,140,230,33,51,2,73,146,33,244,33,61,255,0,231,207,144,58,253,71,177,166,110,67,255,0,45,112,65,254,38,183,60,246,228,19,211,190,50,14,57,192,228,
+41,220,220,125,166,21,0,28,124,208,231,167,251,39,175,29,73,244,207,78,0,30,38,141,178,26,72,251,30,95,3,233,159,178,243,192,29,126,92,99,142,152,113,48,145,159,57,15,168,18,140,254,150,125,58,242,63,
+31,104,68,79,130,126,215,26,228,247,48,146,127,0,88,140,14,231,142,120,246,149,109,153,191,229,237,73,194,224,41,77,189,187,136,142,49,145,223,167,2,128,20,121,3,130,224,143,246,93,155,62,252,89,227,250,
+125,13,76,173,98,6,72,12,71,102,235,142,122,110,183,25,231,61,72,238,121,198,106,47,178,201,156,249,241,224,112,114,1,207,126,63,115,142,158,255,0,136,165,251,51,127,20,150,196,17,143,154,56,199,28,14,
+115,8,7,167,24,61,56,226,128,39,18,233,221,209,64,207,57,104,128,207,94,158,79,167,167,211,142,41,229,244,146,48,202,131,215,144,14,123,12,136,199,229,143,208,19,85,13,145,35,33,172,91,144,1,54,232,220,
+1,237,15,108,1,199,175,74,67,98,227,254,124,198,0,60,90,69,129,211,160,49,3,220,119,252,40,2,111,55,74,66,0,11,156,156,13,202,195,219,3,96,231,156,243,130,61,113,147,76,105,52,249,51,134,40,61,65,3,242,
+198,127,1,198,121,200,233,134,139,54,3,5,173,113,159,225,179,136,227,142,122,160,228,247,192,235,142,194,148,89,100,159,154,46,57,33,116,248,200,207,76,2,35,25,231,36,228,159,160,160,7,5,180,29,36,145,
+135,180,146,112,125,130,129,142,157,137,224,100,244,167,237,181,198,51,40,244,196,147,1,158,255,0,196,61,248,227,57,6,154,182,3,169,193,244,198,158,189,71,168,11,145,245,250,113,200,52,255,0,178,224,18,
+22,60,145,129,155,0,199,56,224,96,69,142,164,122,227,39,175,56,0,64,150,132,2,90,67,252,35,116,210,40,56,236,7,155,247,121,250,14,160,2,6,36,95,179,245,222,249,60,127,199,212,159,150,124,195,143,200,255,
+0,132,102,223,28,31,44,3,146,9,211,211,174,123,150,140,14,114,63,187,211,30,148,45,186,99,239,66,157,58,217,32,200,231,29,148,126,89,30,252,138,0,156,179,47,17,179,241,207,252,125,76,63,34,28,246,235,
+235,156,14,104,243,39,25,229,142,61,111,47,79,228,16,243,223,167,67,248,85,95,38,32,127,215,66,163,159,187,103,31,234,187,250,246,60,116,231,167,1,194,40,215,164,233,245,251,18,169,29,250,231,185,227,
+175,60,140,99,24,0,148,53,195,17,180,177,61,79,250,78,160,15,253,244,73,31,166,120,227,210,164,17,221,55,108,0,123,220,94,156,115,223,44,51,199,233,233,81,133,143,167,218,151,160,193,242,16,250,103,229,
+46,6,126,191,128,238,23,247,56,230,241,114,122,102,24,250,140,96,224,73,212,122,224,99,174,115,200,0,119,217,238,3,29,217,35,175,250,251,178,15,208,111,81,236,121,24,254,106,17,148,0,234,163,62,175,114,
+199,183,60,220,0,125,51,140,224,83,68,74,196,226,230,6,207,253,59,174,65,245,255,0,89,199,227,145,239,142,105,66,112,3,93,91,145,235,229,71,156,122,96,185,30,220,142,221,58,208,0,209,15,238,68,222,155,
+154,228,131,219,167,218,122,244,245,3,214,154,33,113,200,183,181,36,243,129,29,211,243,237,251,236,103,35,182,120,39,169,2,164,40,128,228,220,91,3,147,200,142,44,251,96,137,199,108,143,195,158,181,30,
+200,255,0,231,226,216,142,50,0,143,57,231,168,23,28,99,36,254,120,193,197,0,41,134,82,56,182,180,25,3,59,160,185,36,123,127,173,239,219,219,131,218,147,236,239,206,232,108,215,62,177,75,199,28,156,52,
+163,144,61,121,233,219,25,10,197,211,204,182,108,246,49,198,221,186,31,244,147,140,126,103,25,230,156,171,17,231,247,24,28,17,246,101,60,158,56,43,57,255,0,63,157,0,70,109,80,143,152,218,12,12,252,176,
+54,113,211,140,204,189,255,0,31,79,74,104,183,137,9,249,173,219,30,176,196,128,117,232,30,224,143,110,114,120,245,53,62,33,31,195,0,4,113,254,140,115,207,111,150,228,103,60,253,73,31,139,8,129,65,5,34,
+193,39,12,108,220,247,28,115,112,58,158,216,231,175,25,20,1,3,37,190,51,231,89,140,96,144,35,182,56,35,57,206,110,61,48,14,14,115,250,185,77,190,8,51,218,142,195,247,118,248,192,231,181,206,49,219,24,
+7,60,140,240,40,63,103,4,225,96,207,112,116,233,24,240,64,192,196,205,142,152,201,29,127,28,1,237,192,200,75,126,153,227,78,113,208,142,167,205,3,240,247,198,51,197,0,38,228,4,149,184,132,103,209,32,193,
+244,238,217,252,120,239,158,120,132,200,6,65,146,2,15,124,217,147,192,224,227,32,245,198,113,237,212,84,192,219,30,118,70,57,237,167,177,193,255,0,191,157,126,167,60,119,164,99,110,56,196,0,240,57,211,
+27,61,125,12,164,127,47,126,122,128,68,101,11,252,81,176,233,128,108,84,143,252,124,227,184,193,28,113,248,66,211,198,9,37,144,14,135,155,54,250,127,203,76,142,72,29,127,94,5,140,71,156,143,36,241,147,
+183,75,136,158,157,78,233,1,206,51,254,29,105,73,140,99,30,88,246,254,205,141,113,215,24,196,220,99,143,203,25,201,224,2,153,154,18,121,72,137,245,255,0,68,36,250,245,99,142,79,57,31,78,49,76,50,198,63,
+129,114,58,144,32,3,60,156,225,73,233,248,14,152,171,108,84,140,9,35,192,207,6,202,0,73,231,251,210,156,1,245,245,168,88,73,217,144,231,166,44,237,199,227,157,254,157,57,25,63,160,5,113,50,147,128,169,
+200,206,48,185,252,177,159,211,241,52,135,12,50,85,142,115,247,80,1,216,115,129,211,32,115,215,167,25,169,74,76,65,30,98,175,29,126,203,108,122,240,50,124,213,35,159,76,113,158,123,82,36,55,35,238,220,
+1,140,244,142,5,7,29,128,19,14,199,25,28,115,156,230,128,43,178,19,156,69,49,244,59,164,233,248,41,192,61,251,115,140,243,154,132,195,159,191,20,160,99,174,231,233,249,6,235,156,241,235,239,87,90,222,
+248,142,38,32,31,69,81,206,61,86,110,15,182,6,71,92,243,80,121,23,107,255,0,47,51,125,78,240,57,234,70,39,29,112,57,3,28,118,227,32,21,252,133,0,128,146,166,122,127,174,108,250,228,169,199,110,61,248,
+231,20,198,181,227,38,73,72,199,165,201,60,228,224,96,117,231,25,231,36,14,77,74,208,222,28,129,53,193,95,65,43,241,215,214,97,180,142,71,36,227,249,130,210,243,0,137,47,14,115,214,75,158,123,100,152,
+229,255,0,245,128,59,244,0,174,214,237,209,102,113,207,0,253,164,28,30,189,23,129,156,99,144,7,24,232,69,70,109,229,207,252,125,56,62,237,114,114,71,76,55,4,30,185,4,115,142,8,198,106,207,216,174,88,144,
+94,236,245,31,44,183,197,186,251,57,35,24,199,95,98,7,74,95,236,235,145,206,235,252,19,156,9,47,135,110,248,108,250,103,62,254,212,1,73,173,165,36,226,224,231,35,146,110,125,249,198,48,71,7,25,192,28,
+117,237,19,217,74,70,77,192,227,56,193,152,115,215,211,60,116,252,59,145,90,70,198,229,70,8,212,61,126,105,117,0,49,239,251,193,235,216,129,146,113,211,150,155,75,144,49,182,241,176,122,52,151,228,254,
+101,207,175,160,207,61,243,64,24,230,202,110,118,204,14,78,78,86,94,113,158,160,130,8,24,206,72,63,212,47,217,46,6,70,244,3,25,221,246,112,221,251,98,62,156,112,115,219,61,241,90,38,214,224,140,253,150,
+228,231,251,205,120,195,235,146,235,142,132,122,212,95,102,149,72,221,109,112,167,221,174,49,220,12,102,108,224,228,99,32,243,236,112,0,41,125,154,108,243,36,71,7,25,22,72,122,244,206,49,158,49,158,6,
+51,212,26,105,138,97,213,82,67,219,22,138,132,145,211,156,140,125,15,97,207,29,111,249,108,48,5,179,144,71,86,73,15,32,156,2,76,128,159,203,110,120,39,52,211,20,135,63,232,135,30,158,90,30,252,28,253,
+165,120,62,224,158,57,61,168,3,56,195,116,49,139,100,61,79,49,32,227,156,114,115,201,25,28,100,0,51,144,121,45,49,93,240,126,202,58,224,237,141,24,245,224,242,195,175,110,1,245,173,61,142,189,108,151,
+3,140,109,140,158,221,119,92,129,142,120,7,7,57,231,60,8,153,152,12,11,20,246,204,81,17,159,198,239,0,15,95,76,99,167,0,25,251,103,56,38,198,66,114,63,229,138,122,31,238,202,57,60,240,115,146,78,49,210,
+148,181,194,140,141,58,224,145,146,115,10,145,215,56,193,185,0,241,234,6,122,2,49,154,176,101,148,0,126,199,108,7,163,91,219,49,231,254,222,206,126,135,39,174,79,81,81,52,174,115,254,139,108,189,120,22,
+214,64,245,61,115,115,198,56,224,118,206,113,142,64,35,55,23,75,199,246,92,204,114,122,91,68,65,235,145,131,120,72,36,12,244,227,29,70,5,6,238,228,14,116,139,158,159,243,239,8,199,66,71,55,71,61,243,199,
+126,249,57,95,48,228,147,21,176,62,246,186,120,192,57,224,31,63,35,175,174,79,28,154,66,238,163,143,177,168,231,254,89,88,41,199,28,29,178,231,144,54,156,251,115,214,128,25,246,235,160,8,26,85,202,231,
+143,152,34,231,215,104,19,140,96,143,124,116,164,251,109,203,28,127,100,78,216,207,89,148,48,224,96,140,57,198,122,156,158,125,250,4,50,183,35,22,228,158,51,229,233,231,215,166,100,250,126,159,130,25,
+28,242,34,140,245,206,212,211,192,99,245,50,100,2,59,1,239,201,52,0,159,105,184,206,70,141,48,61,51,231,198,122,242,56,45,249,96,17,211,222,151,237,19,245,109,34,108,231,156,24,7,254,132,248,252,128,245,
+57,168,218,71,94,12,39,234,171,103,255,0,178,62,208,6,122,30,122,250,212,13,57,28,24,206,120,192,34,212,254,28,176,199,110,153,61,241,64,18,61,196,153,201,210,174,64,236,89,173,192,199,212,3,156,31,169,
+207,190,106,63,58,66,50,182,19,41,3,143,222,69,248,114,34,36,142,188,145,220,103,169,168,218,108,253,210,84,28,255,0,207,159,108,127,121,251,243,235,219,3,213,190,115,119,36,250,1,61,162,227,7,175,223,
+3,62,156,159,175,20,1,41,150,236,140,139,71,81,199,59,226,28,116,207,48,125,15,185,228,231,168,137,158,239,0,249,18,12,247,243,34,199,114,56,88,127,196,123,83,12,163,150,1,215,145,159,244,171,112,58,30,
+203,35,113,215,167,63,213,190,113,56,198,71,176,187,140,17,143,251,106,15,79,255,0,86,49,64,8,198,114,57,87,36,255,0,122,104,251,118,230,49,250,227,6,152,90,235,238,237,92,227,188,177,177,61,122,143,151,
+24,238,62,157,198,105,60,213,200,204,51,250,101,46,19,4,240,78,79,157,223,176,234,73,227,56,165,243,85,134,4,87,11,238,102,99,145,245,19,227,241,28,251,99,36,0,51,19,119,65,234,113,50,123,18,49,149,206,
+59,100,251,230,152,90,108,113,180,96,116,51,162,254,100,177,57,245,252,201,245,121,147,0,224,72,6,122,53,196,158,189,120,184,224,159,167,177,234,105,162,83,211,121,3,144,3,79,51,3,211,131,254,149,131,
+212,28,28,96,116,160,8,76,179,14,178,168,198,65,6,233,48,122,118,0,228,224,12,114,6,56,231,168,81,51,231,38,225,49,158,0,185,78,120,4,228,240,59,147,198,79,122,123,59,158,232,123,140,25,72,252,133,193,
+28,247,57,246,199,7,45,196,153,201,104,185,232,124,187,130,222,188,109,147,56,228,244,7,249,10,0,107,76,192,18,36,141,190,183,17,227,63,83,42,231,7,175,79,76,84,6,108,12,177,128,242,115,254,145,16,29,
+58,255,0,199,216,199,215,60,254,117,100,239,24,253,244,106,113,207,238,47,155,158,152,202,203,233,215,175,183,4,84,108,100,0,147,61,185,207,92,193,168,140,254,27,193,36,130,63,139,167,226,40,2,185,149,
+113,203,89,12,116,45,114,140,122,115,200,186,35,161,60,128,78,50,49,78,89,99,28,133,180,61,7,23,72,163,131,198,63,121,200,193,227,63,79,171,247,183,252,244,136,224,96,149,135,83,3,129,234,38,3,29,126,
+191,150,70,153,184,33,162,29,79,220,213,20,30,189,132,191,168,237,145,238,0,24,101,136,227,114,193,156,112,5,233,25,235,140,109,114,0,57,227,174,79,189,2,120,215,160,136,123,125,174,67,142,71,28,28,12,
+126,60,247,167,137,37,60,169,128,127,219,61,69,184,29,190,105,65,56,201,227,131,158,121,29,13,243,28,6,104,72,63,236,223,6,60,228,241,231,2,57,233,250,17,201,160,7,121,224,142,144,116,56,255,0,73,184,
+61,179,146,17,211,211,215,166,64,235,81,181,198,114,22,59,118,193,254,41,47,136,192,207,63,241,240,70,0,239,192,201,224,158,50,140,236,79,50,70,73,61,227,190,234,121,233,230,144,51,232,71,76,158,113,77,
+216,188,124,241,116,198,10,94,128,7,253,247,128,50,7,61,56,233,220,0,73,186,76,231,200,181,61,63,229,165,224,25,231,168,50,96,15,207,244,164,221,62,127,212,90,1,159,239,93,231,183,60,18,72,63,254,160,
+122,82,8,192,224,50,147,215,129,121,129,207,31,242,212,231,211,56,32,116,60,138,111,144,167,170,166,121,224,27,142,188,227,4,202,167,39,7,174,61,49,64,19,102,92,2,97,183,199,112,13,225,201,25,238,1,32,
+117,63,116,227,167,35,52,236,18,78,109,162,108,128,48,162,255,0,235,212,70,61,186,100,243,249,84,107,120,135,88,152,146,71,11,36,196,243,158,161,174,87,144,121,235,223,145,75,246,104,206,7,149,34,142,
+56,99,33,61,113,143,248,248,56,227,175,28,96,158,73,2,128,45,152,152,142,108,211,29,8,45,168,28,14,131,0,40,61,70,72,231,160,62,134,154,45,216,114,182,136,58,127,30,161,207,166,55,46,70,49,201,39,175,
+29,234,169,180,136,240,55,47,25,228,73,239,199,18,156,255,0,245,189,49,72,214,105,143,190,195,232,146,103,57,227,57,99,147,215,156,28,231,173,0,92,48,191,63,232,176,18,73,206,225,116,72,61,129,44,195,
+140,118,192,233,199,122,129,160,112,71,250,60,3,253,212,184,56,60,103,150,108,112,123,226,160,251,4,92,2,237,159,246,17,201,252,130,16,59,243,207,212,246,79,236,248,9,201,73,159,254,217,203,234,58,230,
+31,242,59,224,80,5,129,110,228,255,0,199,188,60,140,113,144,123,242,1,140,145,249,231,56,57,238,35,107,124,127,203,1,158,126,232,148,175,83,217,23,3,233,233,219,165,68,116,244,7,34,222,82,71,24,218,195,
+219,248,160,60,112,125,59,2,122,208,108,212,96,121,18,158,121,4,30,59,147,255,0,30,231,129,219,28,99,165,0,47,144,112,79,146,185,25,227,116,203,245,200,96,7,30,228,14,195,154,79,33,219,133,133,23,25,254,
+63,212,147,208,122,99,160,252,41,166,199,11,149,134,83,199,66,184,31,67,182,0,72,3,174,70,61,177,205,56,90,204,49,139,114,7,108,8,155,60,100,3,186,208,144,14,56,231,190,58,241,64,13,54,183,32,240,168,
+61,63,126,157,255,0,222,67,140,227,174,127,192,48,219,78,14,24,194,56,227,51,196,65,7,169,227,102,120,24,29,115,211,218,167,54,115,96,159,33,15,28,6,138,221,185,206,7,6,200,118,233,131,145,234,51,194,
+125,138,82,57,180,139,215,136,45,243,199,175,250,38,15,127,76,14,79,29,64,33,242,174,87,163,65,198,112,55,219,55,7,223,205,250,240,79,3,176,52,190,69,233,36,171,194,7,124,73,107,145,158,115,144,88,142,
+189,143,78,115,129,79,54,146,12,230,197,62,80,51,254,139,110,127,44,89,31,124,128,121,35,177,24,166,180,18,12,127,161,161,62,159,102,139,140,114,50,62,202,7,92,30,249,233,215,160,3,132,55,195,129,42,113,
+217,94,216,158,227,157,204,51,200,35,60,3,212,119,194,24,47,114,15,158,138,15,109,246,195,215,156,7,0,241,245,61,58,117,8,177,200,121,22,80,41,227,239,91,91,28,241,239,107,158,58,115,233,210,157,182,69,
+231,236,246,234,73,3,2,222,208,19,192,35,32,90,18,123,231,29,135,62,192,13,242,174,250,27,168,241,146,14,241,106,71,82,121,12,231,167,215,142,6,106,79,34,112,1,251,92,0,224,156,8,109,9,207,110,146,28,
+115,219,62,224,212,79,191,56,41,108,159,239,91,197,144,63,27,53,24,207,112,123,122,100,211,90,86,29,69,185,25,233,228,219,237,199,76,227,236,190,254,199,169,106,0,151,200,156,141,194,230,50,7,93,182,246,
+253,7,36,240,196,115,219,191,35,175,114,160,51,109,60,195,106,71,24,205,180,39,156,140,116,180,56,254,188,81,64,25,109,28,132,2,162,216,99,161,242,228,193,199,97,139,179,147,206,51,248,115,146,12,102,
+57,207,59,99,239,243,108,148,14,59,99,237,39,57,201,232,61,71,168,167,152,228,39,137,35,199,102,59,112,79,95,238,55,62,228,228,100,253,41,165,103,94,147,166,58,224,202,168,63,241,216,198,58,16,121,227,
+249,0,32,138,112,122,245,231,229,89,200,198,56,57,19,240,7,61,125,254,180,141,29,195,2,75,5,56,254,33,54,61,7,38,115,159,166,71,67,248,159,233,61,76,177,240,7,34,103,99,142,61,23,31,203,216,116,52,198,
+243,199,89,143,175,15,56,206,61,243,200,246,28,156,143,122,0,81,28,220,126,241,15,161,82,228,228,122,3,113,215,175,79,160,233,194,249,23,36,124,210,12,19,158,99,113,198,70,50,76,227,158,64,239,147,207,
+38,161,101,184,232,28,243,211,38,228,131,219,157,178,41,231,208,19,238,59,80,97,156,245,102,24,231,10,215,64,145,232,8,144,125,48,115,223,215,36,2,115,11,14,78,195,234,89,31,129,207,127,48,129,207,61,
+58,116,235,79,242,83,3,37,65,198,115,176,253,51,201,29,127,65,147,239,84,133,181,195,28,230,94,128,12,181,193,255,0,208,167,29,187,19,156,254,136,214,243,14,126,96,121,60,153,0,228,114,113,246,144,115,
+236,79,30,220,80,5,166,183,136,242,91,60,99,32,32,244,239,184,156,126,68,231,30,130,155,246,120,248,193,35,174,56,86,7,241,221,130,115,211,184,228,113,85,188,137,250,6,97,193,234,100,45,249,253,175,212,
+241,142,156,122,228,191,236,243,129,157,238,49,207,4,177,234,113,214,119,63,174,56,231,189,0,90,17,91,16,55,56,7,166,13,184,108,103,169,192,126,122,158,185,199,184,20,158,69,169,228,18,112,63,231,215,
+10,112,115,255,0,61,84,15,67,199,175,94,181,88,36,220,101,174,122,113,149,118,28,142,163,247,152,30,223,231,50,45,180,164,130,100,184,32,228,159,220,147,129,158,153,203,126,36,254,120,197,0,57,98,183,
+200,33,20,250,98,215,146,0,245,73,51,193,32,158,122,231,191,34,192,138,46,130,6,227,36,255,0,163,191,62,156,179,156,99,129,232,120,239,80,44,18,0,48,215,57,35,175,146,216,207,253,242,50,56,231,175,182,
+121,166,249,82,3,254,177,253,121,183,97,233,212,128,72,246,239,142,222,128,22,10,192,185,253,199,204,8,31,119,24,7,190,50,63,94,123,17,74,25,122,132,96,62,160,115,216,229,152,3,199,76,224,125,112,42,2,
+37,24,216,100,235,192,242,79,92,241,255,0,44,143,215,158,61,250,101,119,76,6,91,127,167,250,190,48,48,58,253,152,254,29,186,118,226,128,44,109,132,255,0,1,126,167,153,34,36,119,254,254,121,244,224,118,
+239,77,2,32,73,251,51,245,192,218,80,142,113,232,223,207,32,114,79,173,70,36,147,248,88,143,247,145,72,235,158,134,215,140,115,140,241,220,12,245,153,103,155,24,45,30,223,95,42,223,39,156,117,54,159,94,
+217,252,122,128,40,141,15,38,221,190,164,160,31,95,188,71,183,39,215,189,35,70,135,238,219,129,156,243,230,12,143,79,226,0,126,96,122,28,211,183,161,251,192,158,189,34,183,235,158,153,22,195,249,158,115,
+158,122,188,42,48,206,216,241,129,247,163,131,119,212,129,110,167,61,50,58,115,215,138,0,106,33,31,242,238,216,31,244,213,8,61,8,32,16,70,63,90,152,21,0,110,182,97,212,6,243,16,103,255,0,29,24,198,71,
+92,231,7,156,156,8,188,184,199,240,47,60,228,71,31,231,129,24,200,24,198,15,28,122,224,210,20,78,112,23,7,251,209,128,59,244,60,112,115,140,31,198,128,37,220,157,12,76,7,92,102,220,156,127,223,166,193,
+233,203,3,147,208,0,8,167,130,152,194,192,72,206,64,43,1,39,223,34,220,118,238,115,142,184,237,80,44,75,159,149,83,254,3,180,126,128,224,244,253,63,39,133,39,248,80,12,122,68,78,127,239,160,125,207,176,
+227,173,0,76,26,30,9,181,7,168,60,91,244,255,0,192,62,158,222,220,211,243,17,25,22,74,71,28,152,237,143,166,6,126,194,49,143,81,158,120,206,42,32,164,96,14,125,127,117,25,57,60,247,152,28,227,142,79,3,
+31,64,253,210,144,21,99,108,17,208,64,153,250,252,183,35,169,29,241,248,230,128,0,209,228,255,0,161,32,61,129,142,216,231,191,107,95,168,232,49,244,20,166,88,212,103,236,168,14,9,56,142,216,227,185,5,
+69,183,92,250,126,67,173,47,151,49,4,136,101,56,224,31,38,69,235,142,187,110,176,59,244,206,122,103,146,104,11,112,1,253,196,152,63,236,206,61,185,63,107,199,64,59,123,12,14,160,12,251,68,120,249,237,
+136,228,143,150,24,63,48,62,205,198,71,113,154,105,184,182,199,205,110,7,174,232,32,99,129,235,136,192,4,250,145,145,235,232,226,110,7,38,3,128,8,225,110,72,29,125,110,198,57,235,193,3,169,60,230,148,
+73,34,156,249,1,134,51,141,179,156,240,78,15,250,88,244,231,142,13,0,69,246,187,80,63,212,70,15,111,244,120,79,183,104,177,208,247,232,64,226,147,237,80,99,139,120,254,162,210,220,31,174,124,144,49,207,
+255,0,168,85,175,180,178,113,246,116,94,128,0,39,28,246,60,221,158,122,130,59,126,28,56,95,63,25,143,3,211,203,184,110,153,255,0,167,140,103,167,191,39,61,104,2,139,94,219,142,12,8,15,29,109,161,206,56,
+245,76,126,152,246,232,105,5,237,174,7,238,227,237,255,0,46,208,103,30,163,0,30,163,36,250,28,14,115,155,255,0,107,70,39,49,228,119,253,221,208,250,130,4,252,159,108,253,41,126,213,23,35,201,5,123,101,
+111,134,71,166,22,126,158,222,189,59,96,3,56,223,91,3,255,0,44,151,28,227,236,177,228,251,240,195,39,145,233,159,94,130,165,77,74,216,96,111,95,79,248,246,64,49,199,241,31,215,63,254,187,130,225,78,63,
+118,170,49,192,13,168,160,227,142,243,159,175,28,118,28,241,64,187,137,121,32,14,123,207,122,71,60,100,230,127,212,115,232,104,2,17,170,91,131,254,180,47,60,129,108,152,227,212,18,79,211,35,174,61,42,
+84,213,44,248,253,233,200,63,243,237,25,3,160,207,220,252,7,60,112,58,10,145,111,173,200,251,195,57,60,249,247,157,62,139,41,56,237,215,29,253,234,81,121,106,120,50,39,29,113,115,116,163,219,239,100,231,
+174,115,211,165,0,55,251,74,35,202,78,125,0,251,28,108,195,160,236,164,122,119,232,9,233,79,23,132,158,37,61,58,11,56,215,185,228,231,142,78,120,237,145,248,202,46,109,73,226,81,140,118,188,156,1,211,
+140,150,235,211,30,153,62,148,190,124,39,24,156,117,225,127,180,28,125,1,221,142,115,140,99,56,247,160,4,251,81,199,51,128,7,173,160,61,121,234,20,254,56,60,115,218,164,23,27,176,5,194,145,143,249,241,
+98,122,250,5,83,140,247,206,57,35,20,161,160,57,204,170,120,227,126,164,115,219,174,100,199,167,108,254,92,132,197,156,25,162,219,143,250,8,182,115,232,64,148,247,60,245,199,167,83,64,19,9,155,140,74,
+79,97,139,73,1,254,120,231,61,142,49,207,124,83,214,71,124,226,86,234,63,229,216,246,61,6,24,158,222,190,190,162,171,15,47,254,123,32,24,237,168,201,131,233,128,100,199,183,208,228,224,10,153,69,183,67,
+116,160,241,193,190,207,62,191,235,198,126,158,231,183,52,1,56,19,55,252,180,39,142,246,173,146,71,39,24,97,147,131,142,135,147,198,120,20,229,138,227,156,151,62,155,109,36,231,219,144,73,206,121,57,35,
+29,51,222,37,242,1,36,94,67,158,132,125,164,183,167,164,204,123,128,123,231,222,165,6,19,128,110,225,235,145,251,217,8,31,147,131,233,247,143,28,113,198,104,1,255,0,103,185,35,59,101,0,103,63,232,109,
+156,12,243,243,109,192,232,122,28,210,121,115,47,222,18,17,219,22,170,15,127,204,158,167,39,158,125,105,155,80,156,37,204,125,49,144,236,65,244,233,32,252,65,206,115,248,82,142,14,126,209,25,35,140,23,
+112,56,62,134,127,97,146,0,30,195,20,1,48,3,163,37,201,200,25,2,24,177,237,208,28,14,252,103,245,165,10,185,202,197,114,64,255,0,166,72,14,120,29,136,227,147,215,159,110,213,6,72,231,206,132,147,156,101,
+229,36,246,228,173,192,250,12,103,63,205,67,48,56,243,32,224,246,23,25,201,28,116,155,29,15,76,123,243,200,32,23,87,112,193,251,53,225,30,200,152,30,195,51,123,19,201,29,49,237,82,111,151,33,82,214,244,
+14,199,202,136,231,183,252,252,18,113,211,140,224,156,99,156,213,53,13,140,239,136,142,132,109,185,108,241,192,1,165,227,60,117,28,99,167,25,169,149,142,48,94,17,212,29,209,77,129,142,159,242,216,143,
+169,35,234,8,160,11,107,36,192,231,236,247,131,254,217,246,246,2,108,119,63,169,169,190,210,87,1,161,189,233,201,42,6,127,12,182,121,231,29,63,82,51,198,121,230,2,63,235,148,216,60,240,120,99,248,175,
+29,6,70,65,195,248,231,228,132,245,63,234,238,8,232,56,251,167,220,242,120,28,96,231,144,11,98,241,7,222,23,107,233,152,193,237,233,230,231,208,243,193,244,2,129,123,30,114,126,219,144,115,149,80,51,142,
+223,235,51,238,112,125,51,237,67,10,196,131,21,185,207,164,87,3,233,208,175,79,127,214,158,135,111,30,76,99,253,175,34,232,240,123,156,56,29,184,207,39,235,64,26,66,249,27,144,46,253,177,230,19,223,159,
+245,160,113,207,94,189,59,240,134,247,56,218,47,120,4,19,243,242,123,17,243,224,251,227,35,142,192,213,101,150,50,115,182,53,227,129,246,91,214,207,83,216,183,81,198,115,237,83,36,177,169,56,32,231,166,
+235,27,204,31,197,243,199,235,212,2,0,205,0,74,183,103,24,50,92,227,142,168,56,28,99,25,102,233,238,57,200,230,156,46,17,143,250,235,149,231,28,136,215,4,113,211,99,28,96,231,168,200,7,218,152,179,160,
+25,34,30,6,127,227,206,243,128,72,207,0,14,157,135,92,247,167,139,200,199,10,209,224,117,255,0,68,187,0,126,96,241,159,115,215,184,160,5,46,140,65,55,115,113,220,50,131,142,163,56,133,178,122,3,130,50,
+9,231,24,20,240,208,3,147,119,115,145,207,240,176,207,208,64,0,28,158,189,189,58,211,69,227,16,54,71,9,3,166,45,174,137,29,125,16,254,92,99,24,237,202,139,185,200,192,134,46,252,152,46,135,76,112,50,163,
+175,112,84,3,207,214,128,37,87,182,56,197,204,199,158,200,120,61,63,184,7,215,241,236,42,64,241,118,187,153,125,14,194,160,146,50,58,196,216,234,58,30,153,207,81,80,125,186,228,17,136,148,99,174,212,155,
+7,158,188,199,198,71,92,131,200,61,115,83,173,252,199,172,36,131,206,15,154,1,252,60,179,215,183,0,15,165,0,75,30,222,215,178,129,158,165,55,117,235,156,195,211,167,66,123,17,156,228,78,164,19,255,0,31,
+82,158,126,93,168,57,60,227,131,110,120,206,56,228,253,106,15,237,7,232,209,66,58,242,222,96,235,143,239,91,241,211,174,122,244,207,105,133,227,30,144,66,120,207,4,224,145,223,155,113,237,129,145,216,
+99,29,64,36,80,249,226,234,97,238,67,117,233,156,11,76,117,228,128,121,252,197,77,182,110,162,234,99,199,64,37,220,61,62,85,181,7,160,3,147,142,153,207,122,255,0,106,144,143,248,245,131,161,201,243,71,
+7,156,14,32,4,244,232,14,123,82,253,161,240,63,115,30,122,15,226,25,228,113,152,243,212,243,215,166,72,160,11,138,36,28,155,155,129,130,57,17,220,49,4,227,156,253,148,140,12,117,28,142,49,142,105,234,
+231,57,251,93,230,79,247,98,185,199,3,222,5,28,31,115,223,7,166,106,9,92,255,0,203,40,185,224,142,6,65,24,193,196,67,28,159,83,218,157,230,16,57,138,52,224,112,11,228,227,191,17,254,35,31,227,144,11,70,
+71,232,183,119,64,158,9,242,174,51,159,127,220,145,211,57,227,57,30,224,212,101,167,61,46,110,91,190,26,25,48,50,70,122,219,140,125,65,207,111,65,77,19,167,82,34,24,235,146,199,25,237,128,164,158,254,
+189,248,60,138,152,73,15,25,104,215,167,105,199,31,240,21,61,125,64,247,224,208,4,65,101,99,204,247,3,56,206,35,108,28,117,251,208,15,195,159,160,244,176,60,224,188,205,117,128,73,201,183,32,30,191,196,
+35,231,183,211,235,77,11,25,25,89,161,30,159,36,199,185,254,244,100,231,232,62,152,238,221,173,218,234,32,49,206,34,36,227,168,28,194,57,207,167,190,113,64,10,166,64,15,250,77,202,140,227,27,31,7,62,184,
+0,12,115,223,240,235,82,169,76,157,247,50,128,113,201,86,3,169,234,76,128,103,166,57,234,127,26,174,209,184,251,183,104,115,212,5,42,57,245,62,86,120,250,119,168,202,204,113,254,148,6,57,251,207,223,161,
+226,18,125,176,71,97,145,128,104,2,248,120,65,226,234,99,233,243,182,70,51,128,49,112,120,3,212,125,61,41,124,196,4,255,0,165,73,140,231,27,216,30,125,75,92,46,9,29,177,234,121,172,214,73,91,25,188,56,
+246,37,114,121,236,214,188,251,103,7,214,144,171,240,62,215,39,29,64,10,79,215,253,80,35,168,232,61,73,244,32,26,158,100,32,127,173,82,79,39,116,178,15,212,93,183,110,56,24,231,129,75,251,167,57,243,98,
+192,207,1,167,231,60,127,207,66,56,57,36,143,81,207,97,148,99,44,71,250,101,207,110,21,20,159,210,216,224,115,192,7,31,134,65,144,90,183,4,94,222,142,57,194,46,125,248,54,219,191,62,152,207,20,1,172,137,
+17,60,75,2,227,35,254,62,39,92,247,227,115,131,220,158,253,79,3,138,151,17,168,226,230,54,206,114,13,236,160,103,3,167,239,139,96,125,112,120,206,43,27,200,110,7,219,47,152,103,184,67,145,159,238,155,
+113,158,56,199,94,222,180,239,42,64,121,154,224,243,212,194,50,121,254,242,66,8,199,94,153,250,208,6,171,24,155,143,54,30,49,215,83,153,15,234,228,241,233,216,113,235,66,249,124,243,3,0,115,206,168,199,
+175,124,23,246,227,174,49,211,165,80,88,73,228,73,114,123,31,221,76,113,156,103,59,99,29,64,244,0,242,61,105,254,88,29,229,39,56,230,59,160,121,32,103,136,136,3,219,36,142,152,160,11,141,183,60,139,108,
+114,120,212,64,207,36,224,231,56,228,244,246,230,154,112,73,253,204,4,116,207,219,115,158,57,224,41,233,238,121,226,160,17,196,51,185,129,235,242,180,55,99,223,4,136,186,0,112,114,6,113,128,123,212,171,
+20,124,29,138,228,14,113,21,239,35,175,101,231,241,7,3,56,233,64,18,41,29,62,205,108,121,206,77,227,168,3,182,72,86,32,254,30,163,142,238,201,206,4,54,184,231,32,106,19,255,0,47,179,144,125,7,56,233,147,
+81,136,131,96,136,80,247,195,71,120,190,217,255,0,83,158,65,252,61,123,135,172,45,198,32,183,29,249,55,167,255,0,30,251,56,192,247,201,224,156,231,168,0,127,205,128,4,22,231,233,126,224,255,0,227,209,
+46,79,79,76,113,212,224,210,133,36,0,109,224,98,71,79,182,103,215,156,130,9,62,252,116,228,28,210,180,114,46,63,209,172,136,206,72,51,221,231,128,7,4,194,73,252,120,56,252,10,49,36,0,108,108,184,200,200,
+146,248,254,162,223,36,116,206,71,60,116,38,128,28,176,169,56,107,84,250,121,243,55,190,48,168,199,142,156,231,154,144,90,33,251,182,141,142,78,86,73,65,247,24,49,16,7,30,156,159,90,172,1,7,63,99,180,
+39,174,4,215,203,156,119,195,64,63,166,79,78,212,190,102,9,205,149,167,124,230,107,147,215,176,204,4,129,193,234,56,193,247,52,1,115,236,107,222,209,198,56,7,124,153,250,243,110,115,158,253,58,10,103,
+216,34,234,96,152,158,56,221,43,3,248,173,166,7,227,146,7,32,227,25,136,92,21,193,75,27,114,125,4,179,145,215,177,54,163,57,237,140,100,251,226,159,246,198,3,155,8,137,24,251,173,54,121,30,240,117,237,
+140,99,140,242,57,160,9,69,146,140,226,25,212,17,192,83,33,207,176,197,135,65,220,19,159,200,225,13,136,57,204,114,55,61,154,65,211,61,127,208,255,0,175,126,253,160,107,226,184,63,100,80,221,137,73,15,
+3,57,199,250,62,113,211,61,114,61,7,52,209,169,56,25,242,99,3,185,242,228,13,145,223,30,64,31,160,201,233,156,156,0,79,246,49,146,69,173,209,231,168,222,203,223,140,61,168,39,145,254,215,30,188,211,26,
+209,129,193,181,188,219,158,118,128,6,57,238,45,193,61,176,15,79,65,81,255,0,105,245,249,49,198,120,182,145,176,58,142,12,35,241,252,179,147,130,198,213,208,227,35,3,142,154,123,72,70,58,255,0,203,33,
+159,81,158,248,24,61,104,1,230,37,83,143,179,93,131,215,27,177,207,82,54,136,15,78,227,61,243,199,102,144,220,254,238,231,166,49,185,84,253,236,255,0,21,191,65,207,111,92,83,14,169,19,243,231,72,49,207,
+58,99,38,61,242,35,0,227,168,234,64,193,206,105,70,160,153,32,92,74,1,234,87,78,144,113,158,184,92,115,142,228,119,198,14,77,0,52,203,34,240,22,229,71,109,205,27,16,125,114,96,207,65,192,199,95,94,241,
+181,204,172,112,12,164,14,114,2,159,204,132,83,248,124,160,251,227,137,91,80,83,210,234,227,24,231,254,37,247,57,227,3,140,41,193,255,0,30,152,21,19,93,198,221,110,238,70,121,249,172,174,7,233,236,49,
+193,24,206,122,30,40,2,63,180,75,201,11,33,60,140,225,243,250,0,63,12,138,67,60,249,229,167,94,122,126,243,29,58,2,28,1,140,143,211,56,165,44,143,210,242,231,39,24,255,0,69,186,0,250,100,3,207,126,128,
+30,249,20,208,135,170,207,43,117,235,5,226,147,128,15,24,39,29,113,206,121,237,64,7,155,62,63,215,220,227,61,164,3,31,131,55,95,173,48,73,41,60,221,220,103,221,160,63,94,11,143,168,227,167,56,199,89,118,
+227,239,25,114,78,6,4,227,60,19,198,224,58,126,67,61,129,205,51,202,7,162,206,113,158,158,104,60,117,234,15,231,156,99,25,233,192,3,127,120,121,23,178,174,73,198,72,192,231,218,66,14,125,192,250,28,209,
+137,177,255,0,31,210,241,200,32,174,59,118,15,207,249,236,13,13,18,231,238,79,207,97,35,100,119,60,113,142,123,31,83,233,80,50,100,156,11,158,58,126,242,76,140,99,3,27,176,121,199,83,236,49,158,0,37,1,
+186,189,220,236,65,234,20,28,125,14,254,221,59,158,0,166,152,193,199,250,84,199,7,141,217,83,159,175,155,223,208,116,252,176,207,45,198,112,147,176,63,222,121,125,63,35,207,28,228,122,116,166,108,32,134,
+49,200,51,159,249,104,195,175,166,64,32,30,185,4,244,62,244,1,63,217,227,60,155,201,215,212,0,253,186,243,246,146,7,242,246,226,147,236,233,201,251,108,195,7,158,15,229,143,63,142,153,201,25,25,0,154,
+133,128,4,97,100,207,253,116,144,231,234,119,0,122,116,24,62,185,193,166,22,61,214,81,158,121,44,122,12,96,124,231,219,32,143,194,128,37,251,52,100,159,244,150,108,16,14,229,29,127,22,56,25,227,142,104,
+251,44,93,76,177,30,223,60,113,158,220,147,130,72,57,60,143,229,154,172,101,29,60,217,148,231,145,146,57,252,31,255,0,102,239,249,48,186,31,249,122,151,60,144,113,33,0,142,115,145,114,188,123,1,208,113,
+233,64,22,254,199,9,57,15,9,57,25,196,0,245,193,227,3,177,236,163,32,28,100,138,67,107,10,142,94,28,99,24,242,192,245,228,100,130,71,229,199,35,2,169,110,11,156,93,185,236,114,46,70,14,15,77,183,89,244,
+61,123,17,193,201,44,36,103,254,62,216,228,127,211,246,57,235,131,246,208,51,212,30,163,57,235,64,22,218,218,212,245,242,73,247,141,72,56,234,126,241,253,121,62,230,163,251,21,183,36,71,110,71,92,249,
+81,227,63,86,117,193,250,243,156,244,237,91,110,78,126,211,187,25,28,253,176,99,28,158,183,184,224,143,113,156,103,217,133,148,18,173,56,30,160,180,199,211,168,107,194,7,175,175,235,64,22,190,205,110,
+14,76,86,157,112,127,113,19,123,117,18,140,250,14,63,14,244,141,21,178,147,136,109,143,183,217,109,201,28,241,247,164,200,30,135,35,142,61,42,147,55,117,157,152,159,246,152,228,110,234,7,218,129,0,116,
+227,169,207,28,98,162,40,249,192,118,56,61,199,30,156,49,188,57,24,199,95,199,181,0,95,43,22,14,34,132,99,35,229,181,183,30,152,228,18,15,167,167,92,103,25,166,146,138,24,236,128,99,158,45,227,4,129,234,
+84,0,78,120,36,114,71,212,85,16,135,32,21,36,227,141,174,64,7,183,63,105,110,58,250,2,7,181,33,134,65,129,178,67,233,137,202,128,51,198,72,156,246,252,190,157,64,44,53,194,146,120,140,128,1,255,0,143,
+127,108,117,87,3,3,242,207,127,72,218,229,0,108,163,100,156,99,200,67,199,76,141,217,24,24,3,146,123,245,227,17,145,42,140,136,166,224,113,137,200,245,235,137,122,115,238,121,168,217,167,57,63,103,184,
+57,28,226,95,94,249,36,242,57,199,57,35,181,0,72,215,176,255,0,18,243,216,11,107,98,121,250,130,115,159,215,32,246,195,62,217,14,57,71,252,45,45,15,57,227,141,157,190,191,215,17,129,33,235,105,114,199,
+29,228,76,114,64,206,79,83,206,57,4,131,154,80,100,95,249,115,185,227,253,180,7,211,131,181,73,235,220,224,115,199,6,128,28,47,98,3,59,29,79,80,77,157,183,167,98,23,3,24,231,229,56,245,231,52,198,190,
+137,178,73,102,57,255,0,159,88,50,71,177,251,57,36,227,29,206,58,114,105,143,230,146,113,103,118,79,169,144,18,56,56,254,14,157,251,113,199,189,67,182,101,39,253,30,117,235,253,221,223,225,215,223,223,
+29,5,0,72,247,138,199,30,91,17,199,75,75,112,127,2,182,192,142,221,254,190,149,17,158,6,235,1,99,158,115,111,23,95,127,244,108,156,116,228,115,239,220,105,36,28,249,51,140,129,147,190,32,71,32,116,36,
+12,113,245,246,61,216,211,56,28,197,116,125,48,96,199,226,219,199,24,254,94,192,80,2,110,182,112,118,219,114,57,63,232,208,28,143,83,186,221,115,140,247,63,142,113,132,9,110,121,54,192,112,112,223,100,
+182,237,207,31,184,36,103,190,123,243,215,53,25,188,145,58,195,118,126,108,131,190,220,15,174,209,49,206,125,176,1,28,227,20,223,183,51,16,12,23,120,232,57,131,63,95,245,216,61,250,226,128,36,43,15,95,
+38,62,51,141,246,48,28,113,206,8,141,15,99,207,35,25,247,164,41,27,100,44,22,195,61,197,135,255,0,19,193,200,239,249,115,214,51,114,20,19,229,221,39,126,150,192,19,211,36,249,189,63,2,121,28,122,33,186,
+44,14,37,185,92,240,65,242,136,24,235,144,36,61,62,159,135,52,0,166,212,18,15,151,108,79,253,131,157,143,94,0,228,231,183,108,250,119,166,155,82,14,12,118,237,184,142,6,158,217,234,122,238,220,51,200,
+199,28,242,123,128,33,51,146,127,227,230,227,3,169,6,30,61,0,253,224,60,14,131,30,221,169,190,120,7,155,169,136,25,229,133,182,125,123,201,235,142,128,228,243,193,160,9,77,167,28,69,16,236,113,100,70,
+65,207,25,217,142,163,32,122,2,5,66,214,36,147,196,35,212,125,152,175,126,152,9,212,119,200,252,205,56,78,131,254,94,36,62,227,236,203,215,29,131,142,135,253,163,158,71,90,105,154,44,103,207,151,158,48,
+86,54,252,246,201,129,211,248,121,39,52,0,227,100,251,73,223,110,163,209,225,113,211,24,25,16,158,15,114,123,30,77,55,236,210,227,137,44,253,51,228,23,39,175,127,41,79,25,192,207,3,175,83,154,105,146,
+60,115,60,188,228,114,140,7,226,60,223,76,241,223,211,213,132,199,143,248,250,145,79,95,245,46,222,253,50,122,99,174,49,252,232,2,95,38,94,72,123,85,62,158,68,128,123,125,200,73,4,227,142,120,57,231,29,
+88,97,99,130,101,183,207,240,144,29,126,163,38,2,71,224,167,25,60,84,12,138,112,69,244,228,12,144,4,69,71,60,99,230,4,99,182,63,49,192,168,240,70,71,219,37,101,236,27,0,28,246,0,129,249,116,25,252,104,
+2,99,0,234,211,128,188,255,0,171,96,0,29,57,205,161,207,215,183,229,72,2,142,5,217,255,0,129,73,131,142,153,226,205,143,36,113,212,100,112,49,81,20,249,127,214,51,30,188,8,199,174,58,204,49,245,224,227,
+61,13,33,14,6,63,122,7,7,35,202,192,199,113,153,78,61,8,228,96,103,61,40,1,228,46,78,47,81,120,29,100,99,143,169,251,8,231,158,156,245,39,142,41,219,7,109,70,19,158,159,57,56,61,243,254,134,58,113,211,
+175,28,118,170,255,0,188,0,97,165,61,65,33,16,159,168,219,63,224,48,9,246,245,93,179,96,224,92,183,127,245,46,217,207,28,3,113,158,156,100,14,59,241,147,64,19,4,96,113,246,216,78,7,247,152,96,99,143,249,
+115,35,241,227,56,224,243,154,10,28,228,222,219,14,121,249,215,175,126,26,204,103,131,223,3,235,222,185,91,130,127,212,206,71,65,152,93,72,231,158,75,156,100,119,192,239,142,212,166,59,142,63,209,217,
+128,232,88,2,0,35,176,96,15,83,201,0,142,79,56,34,128,38,216,236,49,246,232,7,166,215,132,96,17,142,208,241,208,30,216,61,137,197,30,94,57,251,116,92,112,127,123,7,227,156,194,61,58,116,62,149,84,193,
+112,62,252,3,25,232,202,64,231,191,202,227,156,251,28,243,146,49,74,21,177,205,186,231,25,202,197,43,117,255,0,129,1,248,115,219,167,74,0,176,84,103,63,108,143,63,75,34,51,211,25,49,126,28,140,254,35,
+20,205,143,198,219,184,137,206,64,48,89,16,72,239,149,132,3,219,39,29,255,0,58,196,41,31,53,177,228,118,182,147,183,3,254,91,2,65,29,176,6,115,201,168,128,27,184,133,212,114,79,238,46,122,3,156,96,72,
+224,113,248,246,205,0,93,49,221,117,23,54,167,60,103,201,179,4,140,100,243,229,19,207,76,19,207,210,144,125,172,112,37,132,156,243,152,236,64,193,246,11,131,237,242,143,210,171,178,43,14,99,112,123,129,
+103,118,64,239,193,202,243,206,51,216,143,110,77,136,63,229,148,135,191,54,119,60,118,254,57,118,251,114,27,0,112,59,80,4,165,239,115,210,46,114,50,34,178,231,223,24,92,156,224,125,123,113,195,188,203,
+145,206,23,144,120,16,89,243,249,156,17,207,0,113,129,219,60,64,76,121,57,140,46,63,137,173,228,83,232,15,222,39,211,168,29,123,83,67,195,212,49,29,6,68,79,198,71,112,100,29,56,39,131,252,178,1,109,110,
+47,6,118,168,238,127,227,214,198,79,124,99,113,227,167,60,224,227,214,154,103,188,7,38,34,222,227,79,180,0,227,212,96,131,159,99,207,92,243,85,76,145,146,78,247,83,158,191,102,4,100,119,63,59,31,108,140,
+251,80,54,147,128,211,176,36,228,11,118,0,145,211,63,59,113,159,85,254,71,0,19,155,139,190,209,54,71,166,159,110,58,140,250,122,113,131,147,249,211,60,235,177,159,220,117,28,19,103,18,99,183,31,33,28,
+246,224,241,144,69,35,67,112,248,49,180,184,233,243,66,224,17,206,115,159,99,193,39,233,154,96,179,185,57,38,76,116,24,242,166,235,208,18,2,182,121,235,144,65,238,65,206,64,37,243,110,177,141,152,35,156,
+8,162,31,208,100,116,31,119,183,94,212,161,174,201,230,51,207,253,50,131,156,115,193,218,120,231,167,35,174,7,90,106,217,92,119,102,233,144,60,150,28,115,156,111,132,241,233,201,199,83,76,123,89,193,201,
+102,239,201,133,249,25,235,145,7,61,58,26,0,149,146,225,192,1,58,246,49,193,245,56,204,120,231,159,124,117,207,80,139,21,214,126,240,94,199,11,104,63,83,19,28,122,117,0,1,140,213,115,12,128,96,136,216,
+231,60,163,131,237,159,220,140,228,100,158,221,143,99,81,253,151,36,150,78,70,62,236,82,183,76,103,164,56,227,25,233,199,57,207,112,11,134,27,128,113,230,5,28,12,127,163,15,167,38,53,60,19,237,208,143,
+106,62,205,112,126,244,196,15,81,229,12,30,113,146,139,140,19,220,158,252,119,34,147,218,17,207,148,73,227,254,88,204,50,122,127,207,50,51,142,231,29,6,49,138,5,172,131,144,184,239,128,151,28,245,3,162,
+46,61,51,144,51,201,35,57,32,22,77,172,224,156,78,199,253,217,91,191,251,155,79,108,145,147,222,144,218,205,222,105,50,125,103,147,233,158,88,113,237,145,245,170,143,19,175,240,186,224,128,120,153,134,
+58,231,12,88,96,117,31,253,124,212,91,138,143,154,71,192,255,0,96,242,61,51,199,97,223,235,199,112,11,230,222,85,206,39,35,220,206,71,61,120,38,108,231,185,192,231,60,96,244,111,149,116,8,30,99,55,127,
+245,146,158,113,142,10,204,115,215,248,71,76,245,230,169,249,192,103,106,59,2,49,140,40,36,241,199,36,103,249,115,201,234,104,243,136,57,49,201,244,221,24,245,231,12,231,63,135,167,2,128,46,17,42,253,
+224,221,121,5,174,71,234,46,7,212,129,142,58,117,168,88,146,70,99,115,206,15,252,125,145,220,247,184,61,113,206,8,207,224,42,183,159,207,250,166,36,17,130,100,141,56,247,204,131,167,183,227,129,154,119,
+158,79,10,142,167,140,31,62,50,79,226,142,15,175,35,158,131,212,208,4,191,187,7,230,141,199,190,219,238,199,159,185,112,59,245,192,61,255,0,22,51,66,48,54,184,39,213,117,1,198,61,174,125,177,199,80,6,
+71,20,190,108,189,55,191,124,131,112,224,126,24,97,244,32,123,154,62,209,57,227,126,48,14,71,218,159,191,3,166,78,70,114,14,70,51,219,169,0,143,124,120,36,163,15,168,189,81,140,100,114,210,227,28,119,
+62,156,250,20,246,150,94,229,152,240,7,250,91,145,239,212,49,61,249,35,142,152,232,65,64,28,255,0,157,16,31,241,241,123,255,0,127,3,115,233,141,222,220,242,50,122,224,245,95,54,54,198,46,46,178,63,218,
+78,163,254,218,28,159,92,247,207,226,243,115,38,114,45,72,207,3,22,50,142,123,245,117,57,231,7,35,240,161,174,10,131,155,96,78,49,197,188,132,228,231,160,243,6,6,49,158,156,242,115,64,16,57,4,228,61,203,
+158,196,60,32,243,223,62,97,231,235,219,24,29,106,48,153,254,27,130,123,55,153,9,201,247,194,176,233,158,156,245,232,122,76,211,231,254,93,35,36,128,70,248,164,29,15,187,156,118,24,228,156,100,212,45,
+52,103,147,105,15,253,249,156,231,166,122,47,60,28,158,0,52,0,226,147,227,10,36,192,207,73,97,4,115,193,255,0,84,84,17,158,184,207,169,61,227,219,116,78,24,74,20,227,57,158,215,140,140,103,152,179,199,
+115,208,243,235,71,154,167,56,179,128,245,31,234,174,125,7,83,128,63,44,159,99,217,225,227,83,255,0,30,17,1,235,229,92,14,163,179,19,192,198,114,14,5,0,51,100,224,156,179,144,120,0,205,111,207,175,72,
+72,244,224,100,31,94,115,82,44,114,3,145,184,146,57,30,100,7,144,15,113,16,39,29,61,79,78,148,194,240,156,127,160,198,15,127,190,113,216,127,27,115,142,222,158,196,101,12,112,54,113,103,140,227,144,6,
+14,121,200,44,227,30,249,7,219,39,138,0,155,100,231,164,105,131,143,189,36,42,8,207,31,117,9,201,207,24,11,140,224,230,154,82,231,254,120,194,70,123,204,51,250,70,70,120,200,227,242,232,24,169,14,112,
+214,253,56,224,192,1,233,253,242,220,245,231,167,190,120,169,66,196,223,242,239,145,200,4,155,113,200,244,62,91,126,167,147,193,232,104,1,184,184,235,246,104,120,207,31,104,62,158,130,47,203,159,254,187,
+212,220,30,69,172,35,63,196,37,114,49,140,243,251,144,7,31,78,113,159,66,20,69,233,24,30,163,117,174,71,182,124,145,206,71,124,113,154,80,136,112,0,32,247,0,217,147,198,114,57,183,60,254,120,60,80,2,238,
+184,239,20,107,236,36,148,115,255,0,126,199,183,211,29,201,205,1,230,31,122,20,4,144,9,243,165,35,174,125,128,201,228,250,123,140,130,239,45,115,200,184,198,63,132,89,14,167,140,254,224,113,207,29,185,
+247,225,76,113,147,202,220,30,56,207,217,61,187,249,99,28,251,3,201,246,32,0,44,228,99,100,35,147,252,108,79,78,185,235,233,206,115,199,67,70,37,227,30,70,71,65,189,48,57,4,112,206,7,76,243,199,67,144,
+8,24,141,162,139,187,73,142,184,43,106,73,231,60,146,128,246,199,203,233,215,57,166,121,107,156,171,19,237,228,193,207,82,122,68,192,243,201,231,250,208,5,160,46,176,6,251,81,193,228,180,75,156,246,63,
+57,206,114,59,113,215,61,168,242,174,6,127,125,15,61,127,121,23,110,188,237,110,51,207,127,168,168,9,199,4,103,253,232,211,61,59,1,1,206,123,128,7,94,220,147,17,36,243,149,4,250,219,146,7,215,22,255,0,
+208,246,234,57,160,11,222,76,196,227,237,8,185,207,10,208,159,195,136,242,125,135,94,123,211,133,187,96,159,61,14,120,225,99,235,248,196,64,30,223,74,206,216,9,249,158,49,244,182,144,224,30,128,126,225,
+121,28,231,147,215,175,64,84,164,67,254,91,30,217,219,105,46,236,96,245,253,214,122,122,231,220,80,6,135,217,28,130,124,241,234,49,229,3,199,108,4,92,122,112,1,61,114,72,167,172,4,16,26,114,112,59,132,
+35,177,224,148,252,58,244,244,199,57,123,35,24,11,44,189,71,38,210,65,131,206,51,185,7,76,12,146,56,206,78,58,80,118,131,242,220,16,121,251,208,19,156,115,208,109,24,35,177,224,254,116,1,180,32,36,113,
+57,92,244,59,99,61,58,99,49,47,191,25,247,234,41,77,187,15,249,123,151,29,112,177,195,142,167,184,11,147,215,140,99,31,78,49,50,73,3,237,17,12,244,205,169,24,207,169,47,140,123,227,183,95,87,109,7,145,
+117,9,35,210,217,57,35,29,119,62,112,63,51,131,192,226,128,54,214,6,198,62,209,117,223,36,68,189,254,153,201,255,0,60,0,105,26,30,62,107,139,198,231,63,115,0,243,215,238,100,145,145,130,56,63,158,50,60,
+179,198,110,34,207,168,134,49,143,195,112,201,247,207,67,223,156,191,202,28,98,232,12,246,16,68,123,247,34,101,237,237,199,60,147,145,64,26,97,35,80,65,150,231,129,142,99,57,252,50,62,157,61,70,7,98,210,
+177,30,183,23,0,1,143,154,47,208,29,217,24,63,236,143,106,166,34,193,207,218,88,250,98,56,16,128,58,15,248,248,227,240,56,207,56,232,4,170,8,28,77,51,117,228,108,81,156,96,224,253,172,3,215,183,225,138,
+0,156,71,6,63,227,233,243,220,121,120,231,216,158,59,228,140,254,116,161,32,7,254,62,228,207,108,67,156,103,254,6,120,193,244,231,4,3,199,40,140,227,32,121,238,59,144,98,60,19,215,31,108,231,7,173,74,
+55,18,48,179,12,224,243,229,115,143,251,122,246,239,211,167,94,128,12,45,0,255,0,151,172,145,235,26,3,215,253,166,207,175,7,158,58,112,112,223,50,223,171,92,41,24,251,172,145,158,135,217,250,125,57,228,
+126,19,170,12,229,149,216,113,201,242,73,207,253,253,108,99,3,212,122,102,148,164,100,146,21,215,39,145,190,0,65,193,0,149,231,30,254,189,114,13,0,67,231,217,143,188,241,156,158,114,145,129,212,247,5,
+143,167,25,60,227,140,144,41,26,226,196,114,13,183,7,213,7,230,161,51,159,96,59,122,212,224,40,0,109,124,113,144,86,30,123,12,96,224,250,140,30,220,10,149,76,127,197,188,103,35,59,16,129,219,161,35,167,
+174,120,244,160,10,233,121,100,163,39,236,216,207,5,152,128,51,236,10,231,168,199,78,125,106,101,191,180,232,30,220,129,208,6,32,140,241,142,27,145,219,185,199,211,21,33,242,243,144,236,121,198,10,38,
+14,64,231,10,78,72,56,192,218,122,103,218,157,144,188,128,135,24,63,50,39,255,0,19,219,25,235,129,211,234,1,31,246,141,184,32,143,41,187,143,153,187,123,135,30,156,103,28,30,199,138,153,117,88,149,64,
+17,140,14,132,92,108,237,142,243,169,252,50,58,112,0,166,151,144,231,6,14,56,230,24,73,24,233,247,160,126,65,231,0,125,79,169,137,142,14,251,113,211,165,172,67,56,233,210,200,100,118,244,192,244,234,1,
+96,106,241,244,242,191,6,186,99,142,123,124,237,158,121,234,125,141,39,246,146,19,145,24,62,191,190,98,58,147,158,167,159,79,92,112,122,1,6,217,127,191,104,222,230,214,62,128,19,128,5,168,28,99,215,240,
+52,160,202,7,201,37,174,58,103,236,167,35,219,34,220,31,175,81,232,40,2,208,191,39,4,64,15,95,249,105,41,199,79,69,252,206,105,223,109,148,224,45,185,36,0,71,239,37,36,224,159,108,241,233,193,29,186,226,
+161,18,222,140,126,242,38,200,237,106,228,115,207,123,83,219,31,76,241,205,74,147,94,156,124,240,129,158,158,67,175,94,114,51,106,64,250,158,191,200,2,68,186,184,234,45,92,14,152,38,82,14,121,233,198,
+49,252,143,36,212,159,108,147,25,107,44,159,82,142,121,252,79,191,25,3,158,252,114,209,37,222,1,222,185,206,50,35,112,54,158,157,45,122,245,193,30,156,1,222,69,146,228,31,152,169,32,12,18,164,243,212,
+31,248,242,247,61,241,239,210,128,26,46,152,159,248,243,56,238,68,50,54,58,250,112,121,247,169,22,124,176,205,154,158,199,54,247,4,250,143,225,3,184,232,78,9,224,117,160,201,57,39,43,27,17,158,156,28,
+113,208,11,113,199,96,49,208,14,73,198,85,90,67,213,0,245,193,35,241,255,0,81,249,115,248,140,224,128,73,230,196,195,13,99,19,103,179,90,220,31,78,163,110,59,127,47,74,3,66,8,39,79,139,255,0,5,243,244,
+246,45,140,243,142,254,158,128,83,67,70,8,36,17,212,31,245,138,127,72,177,232,120,192,60,30,244,19,6,73,11,46,238,153,83,39,67,223,6,19,147,199,127,92,102,128,44,9,98,239,167,196,123,129,246,73,199,24,
+254,44,55,28,115,142,164,31,78,105,193,225,207,252,121,66,188,247,180,152,113,236,89,179,248,159,196,212,1,144,130,54,92,156,227,28,183,25,238,55,64,51,233,199,215,30,139,178,50,121,91,133,201,231,230,
+0,241,201,28,34,147,219,32,12,15,66,49,64,19,25,97,231,22,209,1,129,147,228,204,184,246,28,159,94,131,29,70,61,156,178,219,12,31,179,194,122,146,4,83,18,79,35,160,98,73,227,144,123,122,212,97,109,200,
+193,55,7,175,252,180,29,61,62,233,35,160,193,7,129,244,21,40,16,15,187,230,231,174,89,201,7,183,67,1,95,126,79,62,244,1,34,92,67,218,20,28,242,26,43,129,255,0,215,61,59,126,96,212,130,116,206,118,192,
+50,56,5,38,200,28,116,222,167,56,192,233,219,174,106,185,8,9,56,99,216,252,195,63,134,34,94,125,7,183,29,48,100,85,140,99,112,152,113,253,224,71,126,129,163,35,244,239,215,131,144,9,190,214,132,244,135,
+240,133,51,140,118,59,1,39,159,239,30,231,20,166,225,48,64,42,1,61,62,81,233,206,12,96,240,49,208,254,116,136,182,121,249,164,112,73,249,129,88,201,228,227,4,121,107,156,251,243,207,210,166,81,110,185,
+218,75,0,123,249,99,35,183,222,219,145,145,144,127,10,0,104,184,97,143,222,168,238,58,15,108,141,177,210,155,167,201,45,50,231,142,72,83,140,144,122,180,125,6,7,240,242,14,48,69,72,30,17,202,224,115,192,
+103,183,92,228,123,176,232,6,115,74,76,103,248,161,7,7,172,214,167,61,137,198,226,61,71,24,231,32,145,205,0,70,183,71,254,126,148,12,243,181,99,30,157,48,1,250,228,117,200,61,41,226,224,156,169,186,5,
+125,68,81,177,7,28,245,147,142,7,56,3,130,58,243,82,171,198,188,147,108,216,24,193,154,17,159,168,94,78,125,51,158,70,49,217,194,104,8,0,65,102,196,142,166,120,178,122,243,200,207,191,82,122,14,224,208,
+2,9,155,181,217,0,113,254,166,60,100,17,215,15,143,110,49,147,159,197,254,105,35,254,63,151,158,194,56,84,143,110,92,96,242,58,30,157,179,147,77,50,69,211,236,246,164,14,15,239,32,57,3,29,55,17,158,61,
+206,127,3,64,150,223,36,253,150,28,251,201,111,142,125,20,200,163,223,128,71,185,232,64,30,185,61,111,157,200,227,3,236,220,123,15,222,244,31,81,144,61,122,74,177,111,36,253,170,95,251,234,33,211,156,
+156,93,46,113,233,156,99,190,58,9,44,32,241,29,177,29,193,107,110,255,0,77,199,175,108,224,242,115,210,166,91,140,112,177,70,71,28,171,197,220,241,235,199,182,63,196,128,34,68,193,143,250,75,156,127,179,
+11,147,255,0,125,92,144,79,185,231,140,99,210,194,196,123,220,200,0,28,252,144,46,122,231,147,57,232,123,242,62,188,212,34,225,250,24,34,227,156,153,162,207,92,127,112,115,130,125,126,134,134,153,128,
+221,228,67,131,131,247,212,156,227,190,19,147,219,185,198,122,140,100,2,210,198,164,18,47,27,62,152,183,39,211,168,108,224,28,242,61,200,53,34,162,117,23,50,17,142,198,48,15,29,70,1,252,248,36,12,231,
+154,162,183,15,145,186,8,129,231,128,143,184,241,235,179,29,7,94,184,224,116,53,39,218,31,140,68,158,185,88,228,110,189,49,152,240,123,100,231,156,116,231,20,1,163,30,7,252,180,98,125,68,177,169,224,145,
+221,8,207,168,167,239,78,51,43,241,199,252,125,70,123,244,59,83,235,239,220,246,206,89,150,102,25,13,180,113,247,99,85,36,228,128,54,176,82,7,57,229,137,232,57,236,190,116,138,48,242,115,215,63,187,207,
+78,131,231,254,96,1,220,114,40,3,79,124,96,229,102,152,131,233,113,145,219,211,7,191,24,252,251,84,190,114,40,206,249,79,7,254,90,242,62,132,72,15,227,159,203,21,138,101,118,37,69,193,3,3,168,83,198,58,
+13,164,131,223,35,25,30,184,56,164,222,220,130,75,12,117,27,177,142,188,241,199,94,49,159,81,156,230,128,54,190,209,23,63,188,148,231,254,155,178,231,174,51,251,198,207,249,231,154,111,218,227,95,227,
+156,156,28,159,180,176,24,244,234,1,62,217,231,61,241,88,155,114,114,24,244,39,44,179,100,15,108,99,61,122,0,62,189,41,235,176,224,25,87,57,237,231,43,119,56,255,0,91,144,123,116,61,0,226,128,54,5,240,
+25,42,215,67,175,31,105,152,246,233,195,224,119,25,233,233,236,225,124,216,45,155,195,244,119,192,252,76,235,212,14,222,252,103,174,72,11,211,115,156,103,248,230,29,178,113,151,0,251,30,122,117,39,147,
+48,72,198,50,91,61,71,239,101,94,152,231,253,104,239,159,81,193,224,226,128,52,133,236,135,181,223,253,247,41,237,200,200,184,192,193,250,142,217,39,56,121,191,117,255,0,150,119,36,146,114,65,153,143,
+76,116,89,159,142,153,35,235,205,103,108,136,158,83,36,158,127,210,88,103,36,244,197,194,147,201,63,79,106,65,29,185,57,49,145,193,63,241,247,33,227,158,8,251,106,242,6,71,227,158,104,3,68,106,5,142,76,
+55,44,122,127,168,185,60,142,220,201,159,196,140,115,211,181,73,246,166,110,150,210,30,57,221,107,39,29,51,157,204,73,228,231,140,131,200,200,29,115,150,59,110,64,137,57,238,110,103,61,113,215,23,77,248,
+130,123,244,169,22,40,57,253,220,61,255,0,229,226,78,62,164,203,156,125,120,57,32,250,144,11,190,115,247,180,29,120,255,0,70,148,224,100,244,10,141,207,182,79,94,152,3,50,9,228,198,69,146,245,224,181,
+148,184,255,0,209,106,58,251,231,143,74,170,139,7,79,38,17,142,223,104,113,206,57,60,207,208,245,207,175,28,2,5,76,2,143,249,97,6,120,228,221,156,28,227,24,6,239,4,115,219,56,232,72,160,9,196,179,18,7,
+216,45,198,59,189,145,32,103,167,38,65,219,190,51,75,151,7,6,210,208,28,96,147,167,144,51,208,144,90,92,117,200,253,112,13,68,74,15,249,117,182,99,232,110,209,127,3,186,239,167,39,175,98,126,149,25,104,
+114,3,89,217,130,14,14,235,152,8,207,99,205,199,83,158,152,245,224,119,0,176,93,215,56,177,179,99,223,253,16,32,62,228,137,191,92,241,232,49,77,14,205,128,214,54,121,39,254,120,2,48,113,253,233,151,31,
+145,224,138,135,116,36,145,246,91,63,108,75,110,79,94,121,51,158,196,156,244,207,56,29,221,182,216,145,155,75,63,112,210,90,242,71,184,144,142,156,244,25,199,29,50,0,30,119,144,113,99,102,158,133,96,67,
+235,233,112,49,131,207,95,174,9,166,252,228,243,111,100,49,193,253,200,227,39,60,226,233,187,250,250,250,12,83,130,90,115,155,59,54,25,232,12,13,200,201,63,117,128,193,253,62,135,52,237,182,100,18,182,
+54,163,39,60,71,105,143,199,121,36,123,252,192,40,233,158,128,2,32,236,27,254,61,236,199,57,194,171,140,30,189,5,207,177,60,156,103,183,122,144,75,235,13,184,62,207,32,24,252,110,135,94,157,127,62,148,
+21,181,7,254,60,173,15,253,179,179,3,185,200,42,224,245,224,118,35,30,162,154,223,102,35,2,202,223,25,236,109,72,224,130,49,153,79,127,167,226,122,0,13,42,159,249,103,107,156,99,2,65,159,124,15,180,150,
+236,123,31,78,134,162,105,99,207,205,10,14,188,171,177,232,79,253,52,61,242,48,0,237,233,79,219,104,217,205,180,42,123,241,101,131,159,247,155,31,207,212,113,130,79,46,207,159,221,65,211,28,54,158,113,
+239,133,46,112,15,109,191,143,20,0,209,44,92,226,3,131,208,249,174,15,108,127,17,60,96,224,30,57,232,5,33,184,182,25,6,24,199,39,172,147,176,32,240,50,120,61,251,16,122,28,212,227,236,120,192,17,47,83,
+196,182,171,248,12,39,167,167,83,154,107,11,94,138,241,14,189,100,180,96,122,116,204,71,32,118,57,250,3,158,64,33,243,173,15,85,136,115,233,43,0,122,117,8,73,233,158,73,57,200,200,167,249,246,184,198,
+99,0,129,192,251,70,7,28,244,136,158,61,0,39,166,40,17,194,121,18,91,227,56,235,107,184,28,246,194,3,145,244,227,184,2,152,208,197,212,75,22,120,3,43,102,125,48,121,143,233,211,147,64,18,249,246,68,96,
+44,71,131,157,166,232,224,129,198,114,128,228,31,115,144,125,120,166,249,182,220,253,193,142,128,199,57,247,24,249,78,62,110,126,158,157,12,65,24,19,182,104,253,57,54,191,134,0,183,57,206,78,70,127,159,
+15,2,66,6,217,99,60,158,209,126,36,31,179,228,228,31,127,215,52,0,121,240,3,195,219,245,35,230,138,99,219,36,96,194,123,241,215,60,118,28,209,246,168,192,200,123,96,1,255,0,159,105,177,142,50,126,72,114,
+113,199,7,142,113,140,138,95,43,251,239,31,183,238,225,110,216,234,109,242,125,121,0,251,208,82,62,239,19,114,113,152,163,207,39,143,187,7,7,142,160,99,219,212,1,69,236,64,28,93,89,169,3,128,246,183,24,
+252,246,117,200,250,245,231,208,55,184,255,0,151,171,3,199,7,236,179,47,61,137,30,81,61,250,30,14,58,19,147,72,86,30,126,239,177,22,231,7,147,142,150,184,247,235,200,193,207,106,143,100,103,254,89,198,
+121,7,34,213,216,130,57,231,247,32,118,231,177,247,233,64,18,125,177,243,143,62,204,128,78,74,219,56,28,253,70,127,0,59,114,6,121,119,218,9,27,188,251,63,198,213,248,250,18,170,58,245,201,206,125,115,
+80,109,141,49,251,152,143,127,248,244,117,60,99,141,194,62,249,231,142,217,2,156,38,128,112,208,198,163,191,238,165,199,127,250,103,237,211,7,60,246,160,5,107,169,51,196,182,108,58,144,214,204,126,184,
+195,48,0,240,48,42,19,116,227,25,123,19,198,127,227,212,227,61,123,171,17,140,227,159,81,247,115,138,155,237,54,189,68,80,183,166,98,186,234,50,70,118,198,0,237,212,103,63,157,47,159,1,233,28,62,228,45,
+200,57,7,25,249,227,7,4,127,128,35,36,208,5,79,182,28,116,177,60,241,182,221,1,56,250,198,14,51,215,156,117,39,182,83,237,210,2,49,21,145,235,247,109,98,7,158,49,194,127,136,63,133,89,50,219,145,146,16,
+14,164,134,185,31,170,129,233,142,128,115,131,128,104,105,109,151,133,145,65,192,36,9,174,135,185,228,143,92,116,199,25,237,197,0,86,251,113,108,147,12,3,25,200,22,136,7,161,3,247,93,136,207,92,227,158,
+122,211,77,208,57,31,100,137,187,113,111,26,142,61,51,16,227,158,113,212,245,207,105,30,85,57,219,58,0,49,193,184,152,243,156,142,8,56,252,71,231,198,99,50,183,240,207,111,156,243,186,119,0,31,124,1,232,
+7,78,57,29,168,1,134,234,33,144,108,128,60,143,150,56,198,57,237,182,46,70,123,241,219,61,120,70,185,135,167,217,95,158,114,32,66,6,57,207,250,174,158,227,4,227,191,90,118,249,79,252,189,89,169,244,23,
+82,96,17,235,146,184,244,24,254,117,9,107,131,128,46,44,216,103,143,244,169,115,215,253,239,64,125,123,241,234,0,239,181,192,71,252,123,73,248,91,228,103,3,191,146,71,36,30,159,150,71,10,46,160,97,159,
+34,81,199,31,232,142,192,115,219,54,167,56,244,250,227,61,106,38,142,233,191,229,165,177,199,0,125,166,110,157,57,43,48,32,250,18,59,116,199,53,31,147,120,58,73,108,64,36,12,92,77,156,14,159,122,124,142,
+71,94,59,254,32,22,197,202,17,129,20,167,31,245,15,99,140,241,143,248,245,97,237,145,140,230,159,231,32,201,17,204,59,113,166,72,121,207,7,139,50,62,159,207,156,85,33,5,201,206,227,31,29,127,210,159,185,
+227,230,18,159,195,219,240,203,90,222,67,206,34,108,255,0,211,105,8,245,61,101,239,219,174,70,1,235,128,1,119,207,140,240,119,168,36,227,58,108,195,184,56,56,179,94,185,231,57,31,81,154,97,123,114,122,
+51,99,254,156,103,30,191,244,234,61,249,207,113,211,165,80,48,206,164,226,40,200,193,7,14,72,235,140,243,48,237,211,3,63,142,5,56,90,185,229,173,80,250,115,32,207,185,43,56,199,182,127,62,244,1,119,108,
+71,128,64,233,133,54,147,228,19,199,241,66,191,143,92,115,199,53,11,219,171,103,14,87,143,249,242,152,254,166,44,224,127,147,212,85,111,177,177,4,253,139,39,190,26,110,58,145,207,218,199,230,7,30,167,
+140,163,90,245,197,130,158,163,230,55,31,159,203,120,79,227,183,30,212,1,32,135,214,68,206,120,38,202,96,64,224,118,143,229,39,32,244,200,237,147,72,96,110,79,157,27,96,228,15,179,200,7,35,29,74,130,122,
+126,64,103,165,87,107,104,199,91,12,48,228,176,107,156,119,39,31,233,3,61,61,78,57,4,158,149,25,183,139,63,53,155,12,246,41,120,127,81,119,211,211,229,3,223,212,2,127,179,49,228,200,188,19,207,151,58,
+115,211,60,74,49,237,242,129,208,224,241,136,205,175,25,222,249,207,240,73,50,15,204,78,152,227,169,12,15,76,147,142,91,229,192,1,31,97,144,251,159,182,129,215,60,255,0,166,175,25,199,65,130,58,30,42,
+38,8,51,182,211,103,3,248,175,151,175,169,26,130,146,61,135,124,116,35,52,1,35,91,202,56,18,200,0,239,246,155,128,71,126,191,108,35,144,57,60,117,39,28,129,76,22,147,255,0,12,247,24,56,39,110,161,112,
+163,212,140,125,183,142,216,244,0,84,44,155,191,229,217,136,245,18,106,1,65,246,35,80,207,39,25,231,143,206,144,174,6,86,213,219,4,103,13,122,192,228,244,7,237,223,135,78,222,185,160,11,38,206,232,103,
+19,94,14,122,255,0,104,207,233,140,15,244,224,49,211,249,243,138,129,161,187,76,255,0,164,223,100,103,149,191,220,48,122,100,181,249,207,127,240,244,129,242,1,38,204,130,71,82,215,156,244,63,244,17,252,
+50,122,231,3,61,226,201,92,226,208,114,121,4,222,14,122,28,31,237,3,159,168,206,59,227,20,1,35,61,226,146,62,213,122,15,161,188,82,123,15,249,250,207,226,6,7,83,238,227,61,216,255,0,151,139,252,142,226,
+229,120,207,115,251,227,159,231,207,126,5,86,108,128,127,209,88,117,251,178,220,28,254,15,123,142,131,185,250,241,210,34,239,156,11,25,8,238,90,92,118,227,229,55,100,17,255,0,214,160,11,127,104,187,207,
+55,58,135,61,9,187,80,61,243,137,136,35,3,24,39,211,183,86,253,178,227,4,181,213,255,0,184,23,65,179,232,56,153,184,231,156,14,61,184,170,251,143,95,177,56,207,92,220,162,243,143,95,180,250,245,192,207,
+81,207,38,163,124,176,35,236,77,255,0,129,16,159,231,115,158,253,121,63,141,0,74,215,247,35,118,46,111,201,7,128,110,128,207,79,86,31,225,248,230,163,58,140,234,112,215,119,153,255,0,174,232,61,123,177,
+35,29,49,147,211,240,168,68,67,156,216,201,198,70,124,248,71,94,199,247,253,78,59,12,19,212,103,25,137,161,140,245,211,223,143,73,109,72,250,225,167,83,245,228,122,208,4,146,106,47,222,234,233,186,228,
+53,204,44,8,233,218,76,250,31,81,248,226,162,254,211,28,131,61,216,224,114,37,86,233,140,96,111,35,160,24,207,24,199,106,12,49,17,147,99,32,28,103,18,90,224,113,131,200,185,57,227,168,207,79,65,73,228,
+91,3,145,101,40,60,115,230,218,125,121,38,224,242,120,251,217,63,78,224,17,157,74,30,166,107,162,114,78,89,212,12,99,146,112,184,246,192,62,228,96,3,76,58,132,4,96,77,57,233,198,88,140,159,238,182,207,
+203,229,198,58,3,210,172,136,109,71,91,121,0,236,60,251,48,123,28,140,207,206,112,120,25,239,199,52,194,44,134,71,148,195,62,178,89,146,51,212,156,78,58,247,200,160,8,77,245,177,224,79,40,207,172,178,
+3,237,194,168,233,207,94,121,199,66,112,159,107,180,45,147,51,18,58,252,242,156,250,158,67,14,252,119,227,189,88,85,211,248,202,50,240,122,201,103,193,201,232,12,227,143,94,156,14,189,41,197,44,27,145,
+38,58,240,94,207,62,195,253,121,28,117,199,31,210,128,41,155,168,78,118,185,199,35,37,152,116,238,55,66,203,142,190,167,160,239,74,183,113,99,137,0,29,199,202,113,215,185,182,239,199,113,143,94,42,224,
+130,200,3,251,211,158,128,249,214,99,161,31,221,4,158,189,243,159,166,105,161,45,129,230,228,129,232,39,179,193,28,130,72,198,115,215,35,175,60,28,208,4,31,105,182,60,121,193,137,7,143,145,79,3,60,145,
+10,228,123,244,56,199,81,75,231,91,231,146,216,28,229,64,97,211,158,136,122,115,200,45,244,169,127,226,94,58,220,240,48,48,243,89,145,158,189,134,123,254,28,158,14,105,172,250,112,228,220,68,115,144,67,
+75,107,129,211,166,34,44,63,3,158,61,40,2,54,185,128,131,181,152,122,238,133,24,224,14,219,144,3,248,255,0,74,96,158,30,205,146,61,97,139,215,211,96,199,191,60,122,147,154,151,117,134,114,110,109,0,239,
+186,120,6,56,233,197,190,127,64,51,239,213,132,233,249,202,220,90,55,39,164,177,48,199,7,128,182,192,156,28,14,222,249,193,200,2,139,144,49,180,41,201,201,62,68,74,15,92,142,33,39,158,253,249,198,120,
+169,13,222,209,130,6,70,79,203,2,158,126,166,0,59,142,58,122,245,6,161,41,102,252,44,246,139,219,1,240,125,241,139,108,12,123,115,223,184,168,205,189,179,116,158,19,129,252,51,63,110,78,49,109,199,60,
+131,145,207,167,34,128,36,55,174,115,180,202,70,58,172,48,103,175,0,254,224,122,245,200,244,239,81,253,181,134,119,52,224,3,208,69,17,228,245,24,0,115,199,182,122,117,168,205,180,57,63,191,64,123,129,
+52,195,234,50,45,186,159,175,7,142,122,212,109,12,11,201,144,49,24,233,53,201,253,76,0,113,245,63,136,52,1,100,93,146,50,77,195,12,0,115,107,223,219,104,7,158,157,79,83,156,247,132,220,190,78,35,185,96,
+79,36,89,146,127,12,134,32,31,126,184,235,214,161,2,215,56,46,196,131,129,137,46,155,147,238,35,24,7,142,195,190,121,163,203,135,179,73,142,167,230,187,207,110,226,48,125,121,39,142,50,8,6,128,3,122,23,
+134,91,181,57,235,246,57,58,3,158,118,160,231,216,18,58,118,226,153,246,241,147,205,232,28,224,253,157,193,24,35,185,65,201,244,24,199,190,57,127,151,17,232,242,231,168,6,91,145,244,199,238,122,246,192,
+56,29,176,70,105,68,64,112,39,159,131,247,67,204,199,159,64,66,158,255,0,94,72,56,35,144,8,222,244,145,242,11,204,99,28,194,249,227,168,35,28,28,142,196,147,147,146,121,204,70,231,57,200,188,238,56,18,
+174,7,3,144,165,127,51,254,57,159,202,147,140,60,231,3,130,90,96,112,62,146,169,207,168,35,3,179,115,72,82,97,142,46,122,227,253,115,243,207,161,144,156,129,158,164,19,232,113,200,5,95,50,50,120,23,103,
+63,195,254,146,121,228,100,13,227,169,199,110,115,193,228,211,188,216,7,222,138,232,159,82,183,61,51,200,25,7,57,250,241,212,85,144,210,2,114,111,1,0,228,6,36,231,223,247,158,128,228,145,145,249,210,153,
+27,0,237,212,27,253,214,108,113,211,164,153,32,118,249,143,110,125,0,43,25,96,57,31,102,147,30,167,207,28,14,135,47,25,255,0,14,56,226,143,62,216,15,154,209,201,199,121,118,253,1,5,65,61,125,120,228,158,
+79,47,121,28,255,0,203,43,225,207,82,179,49,62,153,33,207,39,142,228,103,143,64,24,21,152,31,146,232,244,251,201,38,120,206,6,75,28,12,28,103,175,94,104,0,91,155,97,156,192,195,147,128,110,56,29,186,2,
+61,58,147,158,57,244,167,125,166,212,144,62,204,189,71,89,114,125,179,151,233,192,193,231,185,24,235,76,41,180,157,209,203,206,51,144,195,241,231,243,62,180,205,170,57,17,74,65,224,16,189,187,253,210,
+190,188,228,118,199,106,0,178,39,183,63,242,235,17,24,198,90,224,47,242,110,8,228,103,183,173,56,92,91,41,24,180,135,158,198,224,227,191,112,65,232,59,147,143,78,5,85,40,24,127,199,165,203,123,249,114,
+18,121,233,208,140,31,207,129,223,20,44,106,50,13,149,232,228,99,9,39,3,31,238,19,142,58,96,250,19,140,130,1,119,237,150,231,254,93,45,243,220,9,131,3,239,243,72,56,207,28,253,64,165,251,77,185,255,0,
+151,56,207,126,37,182,207,228,92,159,207,145,223,168,197,19,20,120,255,0,143,93,68,118,255,0,86,237,235,255,0,76,184,235,215,143,168,232,35,251,48,36,255,0,162,95,159,102,137,198,58,231,36,169,29,200,
+201,7,31,142,0,6,151,157,110,79,252,122,68,15,253,125,90,1,198,65,200,50,174,51,232,73,30,148,211,37,182,127,227,222,63,108,220,219,159,195,137,71,35,31,76,116,172,225,104,50,49,107,118,185,227,13,27,
+54,58,243,204,36,126,60,117,31,90,147,236,219,79,22,247,4,227,156,198,6,71,60,114,138,1,255,0,56,57,228,2,209,150,221,184,251,58,122,12,206,0,233,129,210,95,94,190,184,235,154,102,228,0,129,4,76,78,58,
+92,110,7,61,6,55,28,28,31,94,73,244,28,183,200,192,255,0,143,27,130,120,199,16,143,230,135,235,154,105,128,145,129,101,114,167,144,51,28,45,143,76,1,24,245,247,29,51,201,228,1,252,228,98,222,17,156,255,
+0,203,195,100,96,123,50,241,158,58,119,28,156,230,144,239,25,38,40,15,214,102,98,0,206,113,180,156,28,250,147,142,6,7,74,69,130,81,145,246,89,248,231,253,82,0,57,233,247,113,215,25,227,168,234,105,194,
+9,193,4,91,74,167,39,146,139,219,161,251,171,248,242,123,251,80,4,37,155,254,121,68,51,193,249,152,126,4,143,126,153,238,14,0,56,166,128,249,206,213,252,29,253,240,50,24,122,122,12,246,230,173,148,156,
+2,124,144,56,232,80,231,175,233,192,235,252,179,195,63,210,127,231,159,28,245,133,155,39,158,120,71,227,174,48,122,243,158,104,2,16,27,63,126,53,228,125,231,159,35,167,63,40,63,211,191,113,69,88,85,156,
+144,54,14,228,230,9,143,79,251,99,147,244,31,143,124,20,1,204,178,55,121,162,94,189,24,100,231,175,38,108,231,191,78,185,226,152,80,183,221,186,140,54,78,121,127,161,251,174,71,98,15,61,115,207,81,81,
+73,117,0,201,220,231,176,255,0,73,41,211,60,255,0,199,198,209,211,234,49,147,233,80,125,170,44,140,74,227,254,223,112,126,160,155,173,191,231,242,0,178,209,76,127,229,186,14,195,13,50,231,191,35,120,30,
+253,105,190,76,227,254,90,12,123,249,236,63,244,102,223,167,7,165,64,111,45,200,25,222,126,183,177,28,247,200,205,193,31,161,239,208,26,97,187,139,144,10,231,209,238,173,113,130,123,126,244,156,142,189,
+59,113,233,64,19,249,18,143,249,109,130,123,109,156,250,140,129,230,131,211,252,71,115,78,91,119,255,0,158,192,96,140,124,151,4,122,158,12,128,99,57,199,31,92,140,85,117,188,137,127,137,8,29,133,221,184,
+252,114,31,156,123,228,99,39,160,193,148,223,71,128,67,40,7,147,139,216,114,58,14,20,75,142,113,201,244,224,140,243,64,19,27,121,58,249,137,248,164,160,244,244,207,60,17,198,49,144,14,51,64,130,228,31,
+189,16,198,113,254,176,19,237,134,110,73,224,112,1,30,213,88,222,68,121,243,6,70,120,107,216,63,145,144,250,115,200,63,206,158,47,33,35,153,16,30,51,254,155,109,149,35,174,9,147,61,115,211,30,249,160,
+9,241,63,95,49,71,80,121,144,2,114,122,1,38,58,1,212,117,207,106,143,19,2,73,152,12,255,0,183,62,114,58,17,137,186,15,95,99,201,232,90,110,99,199,203,44,96,17,247,141,252,32,254,56,206,61,115,211,232,
+105,191,105,67,131,246,149,252,53,8,91,191,60,21,207,29,114,78,123,103,154,0,178,30,111,249,236,167,232,103,32,227,32,243,231,15,207,62,188,140,114,155,156,183,55,97,78,115,144,211,176,57,227,145,231,
+224,140,144,71,233,77,243,20,142,39,4,128,15,252,124,70,122,158,121,29,253,15,76,145,216,84,12,206,199,2,78,57,207,250,84,126,132,242,7,204,114,57,198,78,58,0,104,2,225,201,224,234,17,131,199,6,57,114,
+121,255,0,106,96,7,215,36,240,73,224,98,156,19,57,205,226,57,231,129,19,118,224,1,251,243,220,159,95,214,170,163,73,156,111,57,192,31,37,203,12,159,124,73,159,78,160,115,207,122,151,230,35,5,174,27,142,
+127,127,32,3,241,243,178,121,245,4,30,73,2,128,39,242,78,9,23,49,140,250,143,78,63,133,183,119,7,168,56,239,212,83,124,140,114,110,98,44,120,249,68,249,231,156,255,0,172,193,246,200,231,191,56,204,120,
+144,28,127,164,1,211,254,62,64,244,25,249,166,231,242,207,175,56,52,242,36,56,218,36,35,212,220,114,114,61,86,67,130,58,14,65,24,233,138,0,4,7,254,123,43,100,246,142,99,131,223,172,216,237,192,60,245,
+237,154,120,182,200,36,200,184,227,172,103,63,67,186,92,244,192,0,242,15,95,74,66,28,3,144,196,224,117,189,115,215,211,47,144,79,233,248,17,80,239,145,49,148,81,199,4,78,197,187,227,32,147,248,244,250,
+231,138,0,180,176,149,63,235,50,122,2,96,36,19,233,144,237,207,61,185,199,211,20,214,71,201,207,144,72,206,11,68,71,94,153,249,115,200,231,185,244,36,241,85,218,121,176,49,1,96,56,202,202,196,250,123,
+115,245,227,223,29,98,51,92,22,255,0,80,71,126,95,28,122,28,177,231,223,174,123,245,52,1,120,111,83,145,228,17,142,65,133,0,207,167,36,28,117,233,235,207,160,119,155,48,193,88,237,51,220,237,132,116,244,
+195,118,234,122,254,29,170,164,183,44,57,137,151,158,126,124,128,59,28,129,131,142,120,56,227,169,52,133,166,32,238,76,117,0,151,113,211,215,17,55,127,94,190,226,128,45,25,238,1,63,185,181,63,68,143,129,
+208,103,13,248,231,243,239,76,251,100,202,112,97,183,30,225,33,254,102,64,71,81,198,61,50,51,85,113,41,28,8,151,61,78,242,15,94,56,54,185,198,120,36,156,251,245,160,37,193,192,12,156,116,199,205,145,212,
+30,109,198,79,28,112,61,168,2,224,190,112,63,212,70,56,192,43,246,81,131,208,112,101,239,223,212,147,210,157,246,249,6,65,137,113,234,26,216,113,239,130,220,122,129,158,157,51,214,160,134,118,228,23,56,
+198,118,192,196,117,224,228,194,0,239,144,0,235,239,204,134,9,186,121,110,113,129,145,110,199,29,207,69,83,215,240,61,142,7,32,18,29,68,114,74,39,61,78,232,243,156,114,9,84,29,241,158,125,250,154,13,251,
+147,128,2,241,156,180,129,120,199,251,68,113,239,199,108,123,185,44,238,28,143,221,205,245,242,92,3,158,159,194,7,229,223,191,53,39,246,100,228,228,137,23,177,253,217,0,246,35,151,4,118,207,24,198,63,
+0,8,133,227,147,147,142,114,73,89,34,124,122,227,50,140,143,108,243,158,224,228,188,77,35,146,0,147,104,200,220,4,32,159,110,37,44,50,15,126,190,131,0,85,129,165,73,193,46,185,198,72,0,143,169,56,39,145,
+142,1,245,231,208,167,246,91,117,222,65,235,192,97,215,156,243,180,243,239,140,143,65,64,16,151,144,96,129,63,39,147,184,126,132,62,14,125,115,212,116,20,244,121,9,225,165,95,171,225,135,230,248,192,250,
+231,212,145,154,144,105,164,247,39,29,246,145,158,189,219,184,246,247,25,205,72,52,201,20,12,121,184,233,194,142,123,112,4,139,215,184,60,142,56,235,64,9,182,224,142,36,152,243,253,252,231,233,181,251,
+156,125,49,78,11,115,198,25,248,201,203,23,252,190,249,233,255,0,214,237,128,245,176,96,62,127,61,64,61,8,101,7,175,60,77,216,99,166,71,108,138,81,103,26,243,243,140,255,0,124,184,207,66,112,124,194,73,
+234,121,233,146,58,116,0,114,37,219,103,228,102,35,57,200,115,207,28,253,225,245,28,159,231,82,173,189,238,70,216,72,4,119,92,19,211,39,230,149,113,212,242,121,250,103,53,15,217,148,231,4,142,59,75,47,
+36,96,14,114,121,245,234,57,25,237,73,228,32,4,153,8,232,70,100,124,123,140,136,128,57,239,215,147,215,154,0,181,246,75,246,57,107,96,71,161,88,73,62,224,52,165,177,200,207,242,224,84,203,101,118,78,126,
+196,189,0,251,144,228,99,211,50,140,103,156,227,60,100,86,105,137,1,57,103,35,217,231,238,115,218,3,206,48,56,244,228,113,79,80,163,159,223,0,125,36,186,32,129,192,60,91,247,61,143,67,233,64,26,63,99,
+184,25,38,197,72,28,28,236,83,143,80,86,64,71,126,50,70,79,25,197,6,210,94,159,217,228,12,129,242,180,124,142,253,89,129,60,254,30,135,53,76,48,201,59,100,252,230,228,122,243,1,231,140,156,142,58,99,138,
+153,118,119,71,29,51,147,41,231,191,34,53,207,115,247,79,29,123,208,5,165,176,144,255,0,203,140,192,119,3,236,196,159,193,182,250,14,126,191,90,26,198,66,114,116,251,130,61,115,106,188,115,216,18,7,63,
+207,138,139,205,141,84,15,221,129,212,254,238,109,221,56,5,182,99,35,169,198,6,71,78,185,112,154,14,63,120,160,245,251,178,227,142,127,138,35,156,126,94,188,80,4,159,96,39,3,251,62,228,18,71,221,123,69,
+199,82,62,191,142,125,115,222,148,105,199,189,149,216,227,32,249,182,217,29,58,30,7,124,103,168,250,158,35,243,208,127,203,76,2,58,42,0,195,147,213,182,99,145,128,120,252,41,69,194,0,127,120,87,131,212,
+64,88,231,216,128,123,96,14,190,231,168,0,148,88,149,227,200,187,25,4,227,125,179,30,163,25,195,3,143,231,223,154,127,217,87,186,92,227,140,2,98,0,242,120,249,73,201,25,206,14,58,84,2,104,191,231,168,
+36,240,65,88,121,244,7,50,168,56,245,192,193,231,57,193,169,4,214,227,7,124,96,15,239,37,161,4,250,241,118,132,147,215,167,90,0,112,181,76,156,11,190,127,186,3,140,246,60,35,31,66,120,250,247,52,162,208,
+147,242,181,216,199,80,18,76,244,255,0,102,17,239,216,158,62,132,168,158,220,255,0,203,72,27,216,65,108,196,247,57,38,244,2,121,232,127,31,64,158,108,88,36,8,57,56,193,181,180,57,239,192,91,240,125,9,
+25,31,94,48,0,29,246,89,71,2,75,176,14,48,90,9,155,4,250,147,26,159,211,241,228,26,127,217,164,4,102,105,137,200,224,219,92,158,216,193,1,113,207,166,14,115,158,79,52,207,56,40,200,123,126,160,96,89,71,
+187,156,141,195,23,207,144,63,1,156,119,200,169,22,121,15,221,218,79,170,217,132,7,168,206,69,250,147,158,216,255,0,17,64,7,217,229,25,253,243,142,51,205,157,227,127,237,3,143,110,0,227,235,82,172,87,
+63,195,116,113,223,253,14,244,122,99,141,131,61,242,15,175,225,70,249,201,228,68,126,182,129,184,233,255,0,63,172,73,239,212,126,61,105,185,156,242,33,140,238,238,44,216,116,238,8,188,206,15,212,3,199,
+226,1,63,151,54,7,250,75,100,113,242,216,92,103,241,44,135,219,61,61,105,68,114,116,51,72,73,233,182,202,117,36,224,242,78,198,201,193,231,3,143,78,185,135,253,36,47,49,149,61,192,176,145,201,207,3,145,
+115,207,169,247,198,73,233,78,18,92,128,62,86,3,190,116,247,7,191,92,204,222,221,15,175,3,176,4,130,222,113,208,200,221,242,109,36,111,195,2,49,233,223,25,56,244,169,21,110,192,60,201,248,217,72,0,233,
+192,60,99,242,235,245,53,16,123,204,227,203,36,103,31,241,227,33,253,85,216,19,207,24,233,219,52,242,53,19,130,32,148,251,139,50,131,25,30,224,140,12,112,7,61,192,236,1,42,253,169,121,10,207,207,65,105,
+206,127,9,71,126,185,200,250,98,156,30,232,147,152,216,103,176,183,85,32,103,57,99,189,185,200,237,142,156,103,188,75,246,252,28,193,54,1,25,205,180,128,243,142,6,99,62,221,14,15,28,30,50,240,46,199,45,
+109,54,1,234,97,32,243,158,159,32,61,50,113,147,211,183,80,1,55,153,112,160,31,42,86,56,39,136,151,244,244,231,220,12,113,238,28,46,39,7,13,109,117,223,254,89,175,226,112,36,92,140,10,174,203,55,63,187,
+148,96,246,140,47,29,7,222,70,206,61,199,185,160,43,117,49,202,196,224,242,16,16,127,27,126,62,153,237,215,36,228,2,234,201,144,11,90,92,144,122,22,183,13,192,60,0,55,176,60,250,19,192,198,78,57,118,240,
+115,182,202,224,251,139,82,195,62,225,92,96,244,233,84,151,140,145,20,222,152,196,7,4,119,31,184,36,242,79,4,15,90,151,12,192,1,11,144,57,201,142,220,103,174,70,225,15,94,184,24,207,161,3,20,1,117,103,
+61,172,229,234,7,22,146,14,123,131,137,243,215,176,31,142,57,169,5,216,39,6,205,212,142,194,222,69,36,255,0,224,64,3,211,166,7,61,56,172,243,31,173,170,30,160,252,177,103,56,234,113,17,199,126,131,60,
+243,219,46,216,131,0,91,34,241,215,96,99,158,249,34,223,31,166,121,57,199,20,1,164,179,66,195,155,105,55,28,103,42,227,28,224,255,0,203,193,231,241,227,245,169,195,38,6,45,238,0,245,30,96,207,254,69,244,
+231,175,62,152,53,145,140,96,24,215,140,245,140,156,115,193,230,212,244,239,129,159,115,214,165,85,12,7,22,202,163,251,200,137,158,157,9,180,83,145,223,61,125,125,64,53,212,32,3,49,204,185,207,30,99,14,
+113,192,24,184,92,113,220,128,51,140,243,129,82,17,15,25,142,76,241,157,205,159,95,91,178,113,215,144,7,235,89,97,16,127,21,162,250,19,42,140,240,0,193,242,49,192,227,129,244,200,235,42,194,255,0,120,
+27,82,48,57,19,167,60,244,230,17,248,208,6,144,142,220,231,228,199,65,150,101,4,144,65,193,6,228,129,142,249,233,193,244,20,241,26,40,56,12,122,227,19,69,215,158,121,156,227,7,35,29,71,95,115,64,44,152,
+4,125,144,142,156,24,27,169,61,202,47,110,228,113,143,92,226,69,73,79,37,172,192,7,56,34,34,121,235,202,142,63,63,95,92,128,11,219,71,117,144,15,67,44,108,7,191,51,28,114,50,112,0,253,41,167,111,77,167,
+129,143,149,225,61,58,127,203,99,206,49,198,1,199,175,90,131,202,147,25,45,100,220,142,64,35,219,24,0,242,79,108,99,219,21,34,7,24,195,66,61,2,144,6,122,100,19,3,31,108,100,241,142,157,40,1,4,17,185,60,
+72,167,29,205,187,3,130,58,1,41,199,94,156,119,39,217,254,94,23,229,44,71,35,38,32,112,6,58,98,64,7,113,245,29,70,49,78,8,231,0,200,160,143,226,0,147,131,208,238,104,144,31,192,99,145,142,184,50,52,89,
+207,239,84,243,212,8,179,192,199,36,161,238,51,145,193,207,80,49,64,16,8,212,227,32,145,198,73,130,62,163,215,51,131,143,160,238,121,206,69,59,203,131,190,226,121,227,236,233,250,98,110,184,199,32,125,
+56,169,252,156,147,153,250,14,8,120,135,191,32,67,143,212,210,8,23,63,241,243,140,241,128,177,18,121,198,9,242,88,103,142,156,125,71,74,0,136,44,99,149,67,159,250,247,78,61,58,75,211,232,71,110,157,68,
+203,156,112,189,7,120,48,51,159,79,56,159,196,231,175,74,26,217,112,24,221,145,245,142,28,116,233,159,178,183,111,78,122,227,24,197,51,236,241,112,90,229,143,115,136,227,31,202,200,158,167,235,207,32,
+28,224,1,229,128,251,202,188,255,0,211,23,29,143,117,159,3,156,241,205,56,24,184,59,208,48,57,230,38,199,94,153,55,29,64,207,60,115,159,97,76,22,241,115,251,233,137,255,0,174,103,175,97,149,178,10,113,
+232,48,57,201,164,48,71,255,0,61,164,0,129,203,39,110,153,226,212,14,59,112,125,40,2,218,121,77,143,156,158,223,46,236,14,51,143,248,248,56,206,49,249,14,181,58,249,99,63,188,219,236,94,64,71,99,255,0,
+45,186,145,244,29,179,197,102,136,162,28,121,228,145,159,188,173,199,28,116,136,14,127,19,199,110,160,242,80,114,179,160,199,57,198,15,94,50,90,50,114,59,123,30,188,112,1,169,186,221,177,186,71,24,227,
+2,82,6,61,191,122,123,119,250,12,117,34,64,214,138,191,235,36,3,213,103,57,252,64,86,24,206,71,4,158,190,213,140,184,206,26,224,100,251,177,7,174,49,242,14,163,175,78,158,166,164,204,121,230,104,91,131,
+131,178,102,28,140,2,112,23,39,129,235,64,26,139,60,29,154,82,6,64,253,228,172,112,61,200,201,250,0,122,26,112,184,183,232,124,236,19,212,121,188,244,193,63,186,113,142,189,121,254,153,139,34,130,115,
+36,68,114,78,213,185,247,236,19,244,207,174,41,255,0,104,136,96,147,30,1,201,200,191,36,130,125,48,63,44,227,147,158,185,160,13,19,53,169,193,45,54,6,120,11,35,100,246,235,0,35,3,140,19,143,96,122,183,
+117,169,57,47,40,231,254,121,51,96,227,147,143,43,31,153,246,172,243,113,107,206,246,136,28,228,150,143,84,198,9,246,43,192,245,201,192,224,15,71,36,246,120,56,146,212,131,158,10,106,163,166,73,36,153,
+49,248,103,161,228,118,0,23,207,217,136,202,188,132,227,147,246,126,120,250,64,71,126,56,3,219,213,135,236,231,159,54,108,30,164,91,251,1,158,34,4,253,70,15,21,10,203,107,145,243,90,118,56,7,83,82,79,
+212,146,189,187,123,117,169,68,246,124,147,246,67,158,159,62,165,248,231,166,127,47,235,64,14,31,102,236,93,240,49,143,178,2,121,239,254,160,250,122,228,28,98,144,37,185,60,35,147,198,63,208,144,228,246,
+199,238,14,127,207,78,13,42,201,96,123,89,231,60,227,251,76,251,117,24,39,35,175,35,3,25,30,142,221,166,147,196,86,185,56,203,1,169,99,166,122,144,73,237,252,67,168,244,160,4,217,25,233,27,245,232,108,
+163,3,219,170,1,220,147,198,58,245,164,17,197,212,160,200,198,63,209,98,228,241,215,49,183,3,241,227,183,170,131,167,96,182,203,113,206,115,254,157,252,136,4,30,157,243,156,247,166,179,216,1,209,27,140,
+97,99,190,110,188,245,44,189,125,134,58,231,29,72,2,136,99,60,108,249,120,193,251,52,68,31,94,4,31,253,124,244,160,195,26,245,129,136,231,31,232,136,58,253,97,61,243,206,48,112,113,210,160,19,218,130,
+8,85,28,244,22,151,132,158,158,172,220,243,244,227,175,21,56,158,2,56,219,142,159,241,237,56,62,184,193,113,239,145,143,113,64,9,136,212,146,32,99,199,65,109,17,3,212,17,246,92,14,132,227,212,115,146,
+13,53,136,206,124,137,73,24,255,0,151,120,65,236,48,1,180,24,234,63,136,114,115,156,145,137,26,100,3,27,1,24,254,24,31,24,252,73,29,191,12,241,199,53,1,158,35,247,153,198,59,139,55,39,7,140,130,88,3,142,
+59,2,115,216,242,0,36,13,200,38,221,177,199,222,134,216,231,147,129,197,177,0,251,246,231,165,52,239,63,48,132,130,8,198,35,128,123,142,62,202,6,120,57,56,245,227,165,87,50,64,78,85,166,35,254,188,152,
+115,206,7,86,239,234,114,127,42,103,153,30,120,150,113,234,62,198,23,212,113,144,57,238,73,35,3,244,0,182,124,206,165,15,167,49,161,207,168,249,109,198,59,14,216,227,20,214,50,156,230,38,57,7,129,26,130,
+57,200,224,219,54,73,207,212,156,244,226,170,249,241,131,255,0,31,87,74,49,130,22,220,5,250,252,163,36,246,224,227,61,206,78,99,123,152,193,39,237,119,121,237,139,73,73,39,61,190,92,117,36,228,117,239,
+64,23,0,152,231,247,50,5,29,115,10,144,51,219,6,216,241,158,157,113,143,201,141,191,39,17,100,255,0,215,188,100,224,158,185,251,47,127,161,28,100,154,166,46,80,242,46,47,71,4,143,244,57,48,126,163,203,
+45,140,115,201,207,94,15,34,158,46,34,24,38,246,236,18,57,31,100,149,122,129,253,216,186,250,224,245,253,0,28,194,231,144,34,126,61,34,140,30,114,6,21,160,82,61,184,31,133,38,46,143,30,68,196,16,51,251,
+184,248,207,184,136,28,247,246,244,237,81,52,240,99,155,187,204,114,127,227,222,235,28,158,79,202,189,61,128,61,57,168,76,176,100,127,166,93,3,142,158,77,242,140,243,146,14,220,231,143,161,29,56,160,11,
+97,39,11,143,179,76,231,145,196,96,242,126,137,215,167,224,61,77,56,121,203,255,0,46,115,130,65,231,200,155,220,31,187,14,56,239,156,245,199,126,42,164,150,224,2,215,183,24,238,113,168,2,123,224,146,0,
+206,79,168,234,122,115,75,231,90,140,226,230,92,255,0,120,189,254,127,16,8,201,206,59,255,0,76,0,88,18,78,8,205,165,192,235,131,229,58,231,254,250,139,215,220,3,129,207,114,223,58,65,255,0,46,151,67,253,
+232,84,247,224,114,23,241,99,128,59,158,106,47,54,217,143,23,115,243,199,31,218,7,147,235,251,206,65,231,4,227,219,173,70,126,206,73,197,196,140,15,64,201,169,55,190,75,121,152,198,63,195,56,205,0,89,
+243,192,56,107,105,134,122,102,206,34,78,51,212,8,143,231,233,199,174,20,206,156,126,226,83,142,57,178,181,4,116,56,32,160,56,35,161,232,59,115,140,85,22,241,146,8,117,60,17,147,29,250,156,119,235,112,
+15,226,50,122,123,10,13,162,55,6,88,198,72,56,219,168,231,182,58,92,158,120,61,115,235,142,1,160,11,2,116,206,124,137,200,235,197,181,146,244,250,129,131,193,206,6,71,90,127,219,45,192,249,160,157,15,
+60,249,26,113,56,4,117,203,113,198,49,199,127,173,81,251,28,4,237,45,11,28,1,130,151,227,175,185,184,62,152,228,31,228,104,54,16,31,225,183,35,208,37,235,100,231,143,249,108,71,167,94,180,1,108,222,91,
+63,59,101,0,112,79,217,180,241,131,212,99,231,28,115,206,73,28,241,211,20,198,187,131,29,101,24,244,181,210,200,199,94,242,31,204,144,120,231,60,26,175,246,56,7,72,87,60,112,35,185,32,127,192,75,55,230,
+114,7,31,74,70,183,136,15,245,11,248,218,204,79,231,183,31,150,79,112,77,0,61,239,35,61,37,113,158,49,246,77,48,158,188,103,51,17,201,233,193,3,31,90,174,215,72,122,60,128,142,237,103,166,156,158,123,
+43,142,8,239,207,126,153,25,81,10,100,109,129,84,30,194,214,83,219,156,254,237,120,233,199,61,58,129,72,99,69,227,200,31,95,179,72,164,145,220,124,132,12,125,51,207,168,201,0,96,189,32,28,100,140,129,
+159,177,88,166,48,57,193,18,156,241,232,14,15,65,232,198,188,97,211,112,200,35,253,85,160,250,240,37,31,92,241,199,161,21,47,238,129,230,216,140,30,49,11,174,112,15,39,42,135,130,122,28,242,41,11,168,
+200,88,231,92,103,24,141,191,1,146,27,3,142,71,61,207,94,104,2,171,94,201,145,151,35,142,165,98,39,31,68,152,140,96,14,159,142,49,154,105,212,39,36,237,153,135,161,17,150,0,231,183,239,58,115,253,73,169,
+158,64,221,35,185,98,56,32,32,92,158,188,229,65,39,184,200,237,205,71,189,143,72,110,115,212,237,104,147,0,123,0,15,94,158,156,251,80,5,118,190,184,39,254,62,91,39,177,183,57,61,186,137,7,208,158,185,
+166,253,170,99,214,118,0,12,28,195,40,207,228,220,115,140,96,224,116,227,154,178,103,155,254,121,221,12,115,204,176,99,140,227,4,146,62,190,152,192,29,77,70,215,51,238,251,178,168,227,254,91,90,119,4,
+143,186,20,140,119,193,36,19,248,80,5,86,187,124,255,0,175,127,202,116,206,125,128,97,143,115,147,237,158,41,62,209,147,147,113,47,176,18,78,49,159,172,120,233,198,0,247,61,6,108,27,185,129,57,121,6,63,
+233,188,25,199,29,139,174,121,255,0,57,205,33,184,152,243,230,78,122,143,189,11,99,242,97,206,58,224,12,117,206,40,2,3,114,14,127,210,167,25,29,167,127,76,247,135,219,142,127,58,67,44,68,231,237,55,0,
+224,30,102,13,201,199,63,234,178,71,29,253,120,227,154,144,205,62,14,37,153,71,96,2,113,212,128,62,115,207,167,29,70,125,106,6,154,236,103,247,178,183,166,229,13,237,208,177,92,244,233,239,193,205,0,41,
+150,44,96,221,203,201,0,225,192,60,244,254,0,121,198,121,3,182,14,58,39,153,0,251,211,92,30,223,241,240,6,127,60,247,237,201,238,61,12,102,107,172,242,224,250,230,40,56,199,25,229,125,51,201,201,227,158,
+244,195,45,192,25,18,243,235,229,192,49,219,24,242,152,227,223,142,77,0,57,222,209,135,222,186,245,249,174,255,0,251,16,115,156,14,185,3,62,244,207,220,28,225,238,123,140,253,178,78,184,198,112,21,134,
+70,57,254,124,211,124,251,156,28,220,17,238,96,66,15,174,113,8,31,81,140,1,140,14,121,129,165,184,110,126,211,142,191,242,197,84,140,247,4,65,208,125,123,17,64,19,145,14,115,230,78,220,103,31,106,231,
+235,254,172,103,144,15,25,201,193,227,56,14,82,153,24,107,131,142,131,206,44,125,186,160,7,243,25,198,122,115,84,203,78,57,55,110,9,244,137,249,244,233,107,131,199,126,153,239,81,19,59,18,126,218,249,
+206,64,194,116,207,25,38,208,30,220,12,17,144,50,123,128,13,18,196,114,22,228,142,189,95,160,62,160,255,0,46,79,76,26,141,190,124,15,42,98,61,252,210,7,175,37,187,143,110,164,244,206,107,56,155,129,255,
+0,49,4,92,118,102,141,120,39,140,129,106,48,125,123,103,60,122,51,253,39,140,95,70,70,58,137,163,29,186,225,172,88,125,14,239,74,0,208,218,195,1,96,112,113,200,253,255,0,175,95,149,191,44,116,245,245,
+133,209,129,201,134,92,243,209,174,177,131,223,3,118,79,224,70,125,42,190,203,160,57,191,141,120,234,102,131,249,155,1,223,211,20,195,246,174,127,226,99,19,12,28,230,104,201,244,207,252,122,128,15,56,
+192,24,35,140,80,4,172,27,60,196,253,184,43,116,223,150,232,191,66,113,145,207,113,71,239,70,48,160,140,30,12,114,245,30,128,168,207,24,233,239,193,192,53,0,251,80,255,0,151,228,63,222,34,116,224,100,
+245,31,103,80,59,117,192,235,201,228,211,203,92,15,249,126,140,250,238,158,15,211,247,39,7,3,174,121,244,226,128,37,99,40,57,192,30,131,201,184,32,15,66,126,85,28,118,250,143,90,65,230,143,225,147,184,
+226,218,83,207,56,251,178,3,131,142,224,251,228,212,121,156,146,90,254,33,159,250,111,16,57,252,45,241,207,94,163,30,244,210,113,131,253,161,17,60,103,38,221,201,57,255,0,174,32,159,124,251,241,198,40,
+2,199,151,35,96,231,30,132,219,74,8,7,234,217,198,7,233,138,104,142,76,224,203,16,13,215,54,239,156,3,223,123,14,64,227,159,203,184,139,126,7,252,127,68,216,201,199,146,164,1,238,85,8,193,250,117,207,
+122,107,73,140,31,181,198,114,127,134,46,56,231,238,236,207,60,250,100,123,80,5,197,132,130,27,205,132,125,45,98,227,167,36,151,250,244,43,237,158,148,246,77,223,242,218,28,3,213,173,35,108,241,206,9,
+148,143,195,147,89,230,228,12,3,113,140,228,12,70,121,246,225,71,229,207,215,176,140,221,32,24,105,114,115,212,70,251,177,207,92,108,206,114,58,99,168,231,129,64,26,68,40,224,204,9,61,0,182,128,14,135,
+36,12,228,227,219,36,117,57,192,168,202,41,97,153,87,158,128,90,91,177,199,184,222,9,35,167,38,168,9,208,240,90,79,80,118,203,130,115,208,253,226,0,206,115,237,192,192,164,251,68,71,172,174,163,158,78,
+243,220,240,112,163,130,49,201,29,72,246,20,1,161,177,9,27,158,92,122,141,62,213,184,28,2,14,247,0,116,28,246,236,13,39,147,111,156,180,146,55,94,182,22,105,140,103,251,220,99,142,189,58,251,227,37,167,
+64,114,28,48,245,43,47,78,125,186,113,158,0,206,121,199,104,218,230,62,0,66,196,142,72,23,3,32,241,198,221,189,125,49,250,1,64,27,37,32,28,6,62,184,54,182,43,158,50,112,64,62,222,231,168,24,226,152,68,
+10,48,119,15,97,5,134,121,235,193,81,250,119,207,189,97,155,134,7,229,178,115,207,80,117,12,156,250,16,72,3,232,125,121,34,144,220,73,206,44,228,231,251,211,93,130,59,131,243,30,189,207,52,1,178,255,0,
+103,60,115,207,115,6,154,8,231,60,242,63,244,28,254,60,213,119,104,65,192,7,142,235,22,158,164,244,239,229,16,71,115,219,28,250,99,40,207,114,56,22,210,128,127,233,189,198,15,185,25,29,113,199,94,157,
+105,165,174,15,63,101,112,123,17,115,48,7,7,31,222,30,185,227,36,113,222,128,52,131,71,146,72,115,206,63,213,216,14,132,117,38,223,30,248,207,167,62,134,98,99,196,108,123,114,44,73,61,191,231,136,206,
+120,3,142,123,117,197,101,249,151,3,63,232,228,28,247,189,156,12,158,231,50,143,108,244,60,140,226,134,150,231,24,54,193,79,168,191,186,253,63,210,15,183,57,253,51,64,27,72,16,129,201,7,156,13,150,61,
+135,78,97,7,244,63,239,30,148,141,144,112,36,149,72,232,11,89,160,228,28,231,101,177,218,79,112,91,145,193,172,65,45,223,65,9,0,31,249,255,0,185,245,28,241,49,206,123,103,208,143,66,102,19,93,28,6,143,
+0,99,165,253,202,246,227,25,152,247,25,228,159,99,64,26,69,229,95,227,153,199,95,146,230,216,244,206,79,252,123,145,235,142,79,78,58,212,97,165,61,90,240,117,207,239,225,199,126,133,109,135,67,158,58,
+118,60,245,174,166,99,140,200,84,240,63,228,33,49,28,14,112,90,124,246,207,60,30,71,165,78,11,17,131,48,83,255,0,97,19,250,3,62,70,121,231,158,221,197,0,52,137,24,130,30,232,145,158,62,210,138,127,49,
+0,233,220,117,224,112,104,223,32,232,215,32,14,255,0,108,25,7,182,127,112,223,83,250,145,79,10,249,207,157,219,175,219,137,61,242,6,46,115,142,184,201,61,15,169,169,20,18,48,110,80,19,211,55,114,55,0,
+112,57,152,140,158,48,112,221,177,223,32,21,247,200,120,51,93,175,3,165,247,29,123,129,109,223,240,28,82,23,144,103,19,93,15,115,122,49,223,213,23,61,251,125,106,208,69,92,127,165,149,245,219,59,190,127,
+2,113,245,238,123,156,243,82,4,70,28,93,142,156,240,164,231,232,126,99,207,108,31,202,128,51,129,156,255,0,203,221,200,250,94,70,71,67,223,7,235,142,51,142,180,52,115,183,252,183,186,113,223,253,49,58,
+131,236,7,94,58,3,199,36,14,181,164,177,67,215,237,100,224,119,133,27,211,156,50,16,115,238,127,160,46,16,66,199,155,196,233,199,201,18,158,189,199,150,49,237,158,189,6,49,64,24,166,222,126,205,114,7,
+125,215,164,255,0,76,30,122,103,28,131,248,40,182,110,55,25,242,115,199,156,28,130,70,120,224,19,234,120,35,208,18,43,101,160,143,7,19,70,199,215,101,191,108,227,56,66,195,140,140,228,241,245,32,161,182,
+82,9,89,83,31,238,64,49,128,123,236,252,14,50,115,206,61,64,50,69,169,231,247,179,96,117,27,240,113,211,3,12,49,248,14,189,65,206,41,226,5,25,203,77,219,39,124,71,61,71,241,56,235,232,79,229,87,154,54,
+7,111,155,31,208,197,3,103,57,235,152,177,212,100,231,211,158,180,207,44,175,222,150,17,199,7,203,181,24,207,61,162,0,30,157,112,14,15,64,40,2,175,144,27,238,155,175,65,182,43,99,239,212,76,57,227,140,
+115,232,15,57,122,219,144,15,203,116,123,19,228,64,196,228,117,63,233,64,227,61,120,252,249,165,48,140,100,73,1,56,60,129,107,215,169,63,44,121,39,234,113,234,105,4,4,112,12,89,239,145,14,49,234,73,92,
+116,7,168,20,0,8,151,60,249,231,29,1,134,30,249,231,30,115,99,241,227,34,157,228,38,51,228,206,196,115,204,7,159,78,18,92,126,92,241,211,154,141,163,112,120,22,227,177,193,131,32,19,199,11,25,29,57,244,
+206,121,233,81,152,164,254,31,36,243,233,107,248,2,25,56,63,129,245,30,180,1,55,200,8,34,6,3,29,76,46,59,123,204,112,73,247,234,49,198,77,21,15,147,39,4,164,71,60,241,246,82,121,245,253,216,193,24,29,
+40,160,14,60,218,202,164,147,33,245,36,92,56,227,233,187,57,0,147,211,215,29,105,12,115,39,73,24,113,201,51,201,245,29,100,24,28,145,247,78,73,199,94,182,205,165,143,241,60,67,211,48,74,0,63,248,16,63,
+153,32,244,235,138,97,177,178,113,148,146,30,120,24,183,144,128,125,78,235,140,31,124,3,200,29,114,104,2,184,91,178,112,178,159,167,218,113,233,219,127,28,231,156,243,249,129,40,142,244,227,15,158,127,
+231,237,6,59,30,174,72,255,0,129,112,59,158,148,211,167,194,15,18,64,224,241,205,177,231,30,184,114,120,35,158,127,30,180,239,177,91,140,144,45,9,63,222,182,151,156,227,35,5,136,30,156,112,8,246,160,7,
+148,187,4,12,71,156,156,147,117,9,228,247,231,33,122,156,227,142,152,53,25,134,232,147,187,203,250,11,184,148,245,235,249,247,192,61,49,140,112,195,98,135,128,150,44,9,224,121,46,184,35,234,91,240,43,
+220,211,63,179,200,0,249,112,99,213,67,174,79,110,54,145,199,76,116,29,115,198,104,2,111,179,203,222,38,57,231,34,237,73,192,3,213,202,146,121,231,29,248,207,52,229,138,76,96,195,35,12,227,6,120,137,56,
+200,0,17,32,245,238,6,127,148,2,198,78,209,69,219,63,59,117,238,73,242,192,231,223,167,173,2,206,65,143,220,66,79,114,103,149,113,159,97,183,167,168,24,199,227,64,22,124,146,163,152,36,92,30,134,226,35,
+159,252,141,199,233,206,57,28,212,138,2,224,24,121,199,24,150,30,56,255,0,105,207,25,61,129,29,251,213,47,179,200,62,236,17,14,220,79,113,198,56,206,68,131,167,227,223,182,105,68,51,129,242,170,14,192,
+125,170,115,140,14,56,50,156,142,57,227,57,35,175,34,128,52,49,142,60,137,123,28,172,150,185,207,126,185,57,56,199,57,245,7,213,68,106,122,197,57,207,115,37,183,126,127,129,192,31,136,7,7,138,203,43,58,
+140,149,207,177,184,147,244,195,100,147,142,132,159,214,148,59,117,120,92,143,250,239,58,175,211,59,240,125,177,232,115,156,154,0,212,242,144,1,155,121,254,133,161,35,140,158,237,158,14,78,115,143,106,
+8,25,255,0,143,121,71,76,157,240,3,131,215,164,128,142,253,207,78,158,153,62,105,199,17,16,59,19,117,32,239,238,223,160,237,158,188,83,132,163,157,202,188,142,247,14,227,158,231,231,59,191,2,8,244,160,
+13,64,87,60,71,114,59,16,36,140,227,25,245,144,253,9,201,207,191,90,112,96,220,121,119,4,116,220,205,22,120,231,251,199,35,168,24,28,126,60,103,44,171,192,34,54,7,57,102,108,117,237,203,177,32,100,117,
+231,29,71,20,241,179,4,143,43,63,48,206,99,199,224,73,35,7,29,249,39,219,56,0,188,73,3,43,28,196,128,64,249,200,39,60,17,201,192,200,250,103,25,28,113,77,243,36,192,2,9,207,32,144,178,96,156,116,228,73,
+131,201,57,206,7,182,13,84,27,0,24,242,72,207,113,110,113,198,114,50,143,235,142,7,94,7,4,144,224,232,15,38,63,94,5,178,142,71,60,249,24,227,3,168,235,216,99,20,1,104,53,193,28,91,94,99,183,207,187,174,
+58,229,250,119,224,17,215,216,83,27,237,29,26,222,240,103,36,100,73,144,15,191,156,191,143,0,15,76,113,80,172,138,126,92,198,115,140,124,208,114,120,238,45,72,7,245,206,49,131,86,81,178,126,84,139,254,
+5,36,7,167,167,250,39,25,28,250,127,42,0,143,19,247,182,186,36,119,194,244,61,62,252,188,245,206,63,1,158,238,243,36,0,3,111,116,61,50,98,35,167,253,117,28,156,14,56,63,143,21,109,68,187,127,229,130,241,
+142,102,182,82,56,28,255,0,199,144,7,25,207,66,123,96,14,134,201,186,153,45,212,30,64,55,22,131,142,216,6,217,114,63,151,242,0,173,230,22,7,48,221,130,59,237,200,231,184,219,55,61,58,246,198,14,72,163,
+204,56,230,27,179,234,124,166,207,230,37,193,207,227,223,142,134,173,132,147,140,180,36,12,253,217,172,240,71,212,219,159,174,50,1,199,60,96,151,2,234,0,44,132,116,255,0,143,139,60,142,127,216,180,233,
+207,36,156,241,220,116,0,170,178,113,144,151,0,19,198,3,169,207,213,142,127,47,212,138,62,208,163,57,251,80,237,146,10,254,108,83,62,157,253,42,231,152,6,114,97,7,166,77,205,166,72,234,14,62,203,199,3,
+147,219,158,152,165,23,8,167,5,162,7,169,38,242,213,78,114,57,199,144,8,200,239,211,57,227,3,52,1,80,92,43,116,123,149,199,35,57,199,79,250,226,115,244,233,210,164,23,8,164,6,184,117,221,156,238,64,49,
+208,242,124,131,212,247,200,250,231,138,159,205,133,201,253,228,89,57,255,0,151,187,98,48,49,206,12,35,31,151,242,53,32,49,1,143,50,46,185,255,0,95,108,125,49,255,0,44,187,125,6,59,244,205,0,66,46,19,
+162,221,18,123,169,44,27,223,254,93,155,140,96,244,245,169,5,203,228,98,224,119,254,39,254,150,57,250,247,237,208,83,183,66,199,239,219,116,234,103,183,7,182,63,132,117,57,0,31,90,99,27,96,114,205,110,
+79,125,211,192,65,31,131,128,65,233,211,61,123,245,0,127,218,100,35,6,100,207,124,173,195,28,100,245,197,152,192,224,113,144,112,77,53,166,148,244,150,38,60,140,186,92,128,127,242,81,134,121,29,248,234,
+57,234,208,32,254,229,185,231,160,100,35,215,144,36,199,175,97,142,58,83,139,192,188,8,160,200,231,63,38,7,127,225,96,59,19,215,62,131,212,1,190,116,231,7,48,19,143,75,142,222,198,199,235,215,183,38,151,
+237,19,1,140,67,140,99,33,39,200,233,156,17,108,50,79,126,158,163,56,167,6,70,198,82,223,28,112,85,186,112,7,11,39,174,51,207,61,121,165,43,25,198,60,156,159,238,66,216,239,253,217,6,113,235,201,199,227,
+64,13,23,23,25,192,242,51,254,236,224,159,196,162,254,61,7,183,65,79,89,110,240,50,150,237,200,57,204,234,51,245,10,121,237,144,5,52,194,158,177,168,255,0,175,105,24,30,78,63,229,176,56,207,92,96,119,
+234,41,162,28,159,151,105,56,29,45,92,100,114,51,159,56,158,64,3,167,79,90,0,159,206,190,63,118,8,143,60,17,52,184,61,129,0,70,0,56,245,35,62,162,163,105,53,21,39,16,15,251,252,203,211,160,57,124,145,
+211,28,143,126,56,45,242,88,227,247,104,221,135,238,36,231,158,113,135,25,3,142,9,237,198,41,124,160,57,104,64,199,253,59,200,126,135,30,102,121,228,116,246,237,64,14,89,181,0,114,97,4,115,210,102,35,
+243,91,133,232,121,193,61,64,233,78,23,55,227,33,109,249,28,127,174,81,144,123,228,221,19,130,65,24,231,142,213,23,200,164,101,48,120,233,109,42,241,216,253,214,250,146,50,15,183,103,131,9,39,43,34,244,
+207,238,230,207,228,99,29,134,58,245,29,250,208,4,191,105,212,206,2,219,159,108,93,47,39,254,5,46,7,176,201,231,166,58,84,139,62,166,112,76,19,12,14,247,10,64,207,24,207,155,192,234,58,242,113,131,80,
+143,40,116,89,179,144,115,229,205,129,208,127,116,1,239,142,78,122,142,41,225,99,25,56,147,61,50,97,155,61,178,78,64,7,158,56,39,175,83,216,2,200,125,81,249,242,152,125,103,136,159,108,230,224,99,161,
+244,232,120,169,213,181,53,225,163,81,156,2,124,248,119,113,199,36,92,30,120,3,215,243,197,81,216,167,156,57,4,247,181,111,203,4,245,199,175,92,14,196,138,112,17,140,230,51,198,70,62,199,248,28,112,127,
+30,61,9,4,80,5,242,218,128,234,160,17,233,113,10,129,140,241,254,188,243,233,143,240,202,134,191,193,44,24,15,93,246,204,58,251,220,17,248,224,99,211,2,170,70,200,57,242,66,231,161,54,184,29,120,29,50,
+49,142,220,31,81,192,169,86,88,71,252,179,92,158,255,0,102,4,159,166,93,70,125,120,63,212,128,76,190,123,100,178,166,49,156,148,181,108,31,124,72,216,207,29,15,29,79,60,84,224,74,126,244,113,147,215,139,
+123,98,15,83,212,54,71,7,191,63,149,85,18,198,62,238,49,215,254,61,87,249,153,2,227,190,49,252,168,220,141,201,56,228,255,0,203,170,158,192,15,148,92,0,61,184,234,122,146,69,0,94,30,103,247,23,3,160,48,
+219,126,60,6,206,220,14,112,65,169,4,121,238,128,117,226,222,223,25,200,24,230,85,35,7,158,54,142,195,60,103,61,34,4,229,75,224,19,131,246,2,115,249,204,65,246,57,61,51,128,114,106,111,37,250,121,133,
+58,231,54,91,127,14,141,211,183,39,140,231,52,1,116,32,245,143,254,252,64,164,17,206,65,23,29,122,99,7,31,133,63,24,35,231,85,200,200,2,222,51,232,78,118,204,192,253,122,112,112,106,136,132,129,205,206,
+71,167,217,66,246,231,254,88,244,4,103,147,215,6,144,68,203,210,87,108,96,124,177,136,201,227,177,49,16,113,223,166,121,207,28,144,13,22,98,120,243,83,36,127,207,178,156,142,253,37,227,183,29,232,216,
+252,17,44,107,208,252,214,128,231,232,60,241,147,220,247,30,192,85,32,36,61,26,98,56,228,202,16,112,49,255,0,60,240,1,227,166,61,137,57,169,148,72,184,220,243,40,39,156,202,27,140,228,242,16,30,248,63,
+48,227,57,205,0,91,204,131,24,158,219,39,251,214,75,140,244,255,0,158,196,142,56,232,15,161,244,153,30,117,198,103,181,199,251,54,161,8,36,127,215,198,59,251,228,254,153,197,9,193,243,101,30,167,120,201,
+227,142,72,25,224,143,167,29,106,65,11,227,230,158,76,28,0,76,202,15,60,242,118,131,143,195,249,10,0,209,15,57,57,243,160,94,249,49,0,15,78,255,0,105,4,15,124,224,103,165,41,146,115,192,184,179,224,122,
+49,252,177,115,233,129,208,122,85,52,128,1,147,59,115,131,196,237,146,125,115,242,129,200,28,251,245,199,53,96,33,219,143,55,35,61,12,234,73,56,30,141,158,156,158,120,231,222,128,37,18,92,160,207,157,
+104,121,227,104,110,222,191,233,31,161,57,56,7,165,60,220,220,99,137,173,179,234,55,17,219,156,121,196,96,159,114,49,233,85,113,130,78,243,140,243,135,86,252,191,210,80,227,63,204,241,212,82,249,132,140,
+40,121,15,32,13,155,184,237,199,219,212,125,57,237,200,193,34,128,45,11,187,128,127,214,217,147,223,57,67,237,156,204,127,67,253,104,23,147,142,246,167,215,18,100,126,94,107,1,253,42,178,201,38,3,24,36,
+61,242,98,80,58,116,3,251,68,159,110,78,122,242,15,21,47,159,39,65,19,174,7,63,185,94,59,99,230,190,97,199,183,182,72,236,1,96,223,206,49,251,187,102,227,156,21,221,142,123,146,220,116,231,29,79,183,42,
+186,132,132,147,228,69,158,57,89,202,254,3,110,8,231,235,223,181,87,243,101,127,249,103,41,228,28,121,35,128,56,227,109,206,222,15,185,246,35,165,59,204,184,249,112,146,128,56,199,148,122,118,227,206,
+62,249,231,245,34,128,39,254,209,29,10,57,57,237,116,202,58,246,38,50,48,63,222,252,58,81,253,162,1,4,163,231,145,147,118,65,30,223,241,238,222,252,12,31,94,49,136,154,121,128,193,18,134,247,129,177,206,
+49,255,0,45,199,81,199,83,212,245,205,55,237,51,1,149,142,114,122,252,182,196,126,4,137,241,238,65,20,1,33,189,93,223,234,102,227,191,218,178,14,59,115,102,79,56,30,163,223,209,255,0,111,76,28,69,55,60,
+146,110,84,131,131,193,226,196,130,57,199,191,173,64,102,184,32,19,20,224,247,205,187,99,175,180,184,239,235,147,233,198,42,69,150,92,240,175,129,129,243,69,32,57,227,60,137,207,175,57,3,28,142,104,1,
+226,243,190,217,64,233,254,189,23,208,245,254,206,60,118,231,175,214,166,91,166,96,9,19,118,200,23,132,243,220,99,251,47,4,116,227,215,241,168,213,164,35,6,34,114,49,200,156,14,249,233,40,24,56,29,143,
+62,180,236,156,12,144,190,217,185,3,159,117,151,183,175,78,125,243,64,22,22,119,228,34,54,120,228,220,0,7,28,114,116,156,245,192,60,113,140,228,129,75,230,200,57,98,203,235,139,196,7,144,65,225,116,129,
+147,144,7,94,120,207,106,173,128,72,253,234,15,172,183,99,183,112,178,146,15,124,244,29,248,226,148,170,146,7,155,3,122,101,239,78,8,238,115,116,6,127,12,31,169,4,128,92,18,191,81,43,0,7,79,180,140,159,
+197,180,140,246,239,206,70,51,216,188,73,55,4,73,146,123,155,148,30,227,25,210,215,182,125,79,38,168,156,131,242,181,177,3,191,250,99,103,28,112,77,216,244,227,24,250,246,164,235,212,91,48,4,31,191,116,
+185,24,24,224,221,16,113,211,158,156,253,8,6,160,154,228,1,137,33,206,122,153,198,225,147,232,186,98,231,175,98,48,63,33,58,77,116,56,243,34,206,1,56,147,63,152,54,60,227,29,72,3,158,131,154,201,70,198,
+62,72,64,238,76,178,143,94,255,0,104,57,250,17,234,6,121,196,187,241,200,72,1,3,32,125,166,101,57,233,222,227,142,199,39,7,215,210,128,53,252,235,142,62,100,61,255,0,214,133,60,115,142,108,187,128,51,
+211,175,97,131,78,18,202,115,184,70,220,28,230,226,60,253,49,246,117,247,198,56,207,94,122,98,253,161,192,192,137,49,144,73,91,185,70,115,158,9,55,7,249,99,175,94,180,159,107,144,112,16,131,147,255,0,
+47,46,195,234,9,152,142,7,94,8,30,180,1,183,230,178,15,155,202,3,60,126,245,8,233,145,209,7,124,231,167,79,205,139,112,14,114,99,232,120,19,71,145,233,159,148,103,212,14,13,100,11,171,174,202,228,3,192,
+23,82,99,255,0,70,30,70,125,179,249,211,190,211,114,114,74,203,199,80,46,38,99,248,144,206,0,35,29,64,250,142,180,1,178,46,71,101,37,143,35,18,65,211,175,67,32,56,207,168,235,206,104,55,79,192,242,88,
+244,206,100,181,245,235,143,53,71,94,185,224,243,220,241,144,39,152,54,76,115,125,124,217,185,35,182,74,30,113,215,230,29,15,28,112,243,119,54,64,97,114,61,133,196,234,57,234,112,35,7,161,253,78,59,96,
+3,83,237,82,114,124,158,125,51,103,142,157,247,79,192,247,233,145,220,241,77,55,18,31,249,98,122,246,251,17,60,129,216,207,131,142,128,255,0,74,206,251,75,156,109,251,78,71,60,92,222,123,245,249,66,158,
+157,115,199,124,115,133,243,165,35,134,185,95,92,79,126,79,168,251,172,7,61,115,192,61,65,224,208,5,211,51,54,7,144,71,190,219,28,28,115,158,36,98,49,215,239,118,166,249,205,192,242,14,113,215,109,150,
+112,121,228,239,207,60,116,244,170,69,174,65,36,201,116,125,140,151,236,14,125,113,184,245,228,128,64,29,133,74,36,156,15,189,40,207,168,212,79,190,63,151,60,114,71,3,138,0,155,237,14,191,242,239,38,0,
+224,8,172,187,112,8,218,196,227,142,152,232,120,197,56,93,76,195,253,84,163,147,199,149,103,144,115,215,158,120,236,114,115,250,84,2,87,56,5,157,191,240,98,58,140,112,74,49,235,216,227,158,221,41,89,213,
+112,91,112,233,201,146,248,115,206,122,192,71,63,143,30,249,20,1,96,207,47,120,46,50,125,33,178,227,145,216,2,120,200,237,140,19,206,113,134,125,161,142,65,142,225,120,255,0,158,54,195,63,80,35,57,35,
+62,157,49,199,83,80,9,163,7,32,185,235,255,0,45,174,151,63,66,97,224,254,128,30,217,167,139,133,61,84,146,123,181,205,216,246,28,252,153,29,243,192,224,246,232,1,58,62,238,173,40,60,255,0,203,43,109,195,
+233,152,136,3,167,61,127,17,204,130,72,193,201,55,32,142,63,213,219,96,244,233,136,20,231,175,65,235,218,171,18,15,92,134,244,51,220,183,115,140,3,48,227,175,160,244,7,130,23,18,96,99,36,112,113,230,75,
+156,114,48,67,92,142,56,31,116,154,0,183,230,70,15,2,224,227,28,24,99,39,7,220,71,130,8,227,130,113,249,208,37,140,244,89,215,61,65,134,48,72,62,204,131,57,233,215,234,61,106,2,6,1,142,79,127,158,64,7,
+94,1,251,71,62,188,103,167,225,74,101,140,16,4,68,48,0,103,124,167,215,147,251,204,116,244,232,49,146,64,224,2,209,149,1,249,132,138,65,0,22,137,23,63,77,189,70,78,56,199,211,24,194,249,240,116,46,217,
+24,234,0,237,142,57,199,124,231,223,21,69,157,78,127,120,23,175,2,82,8,199,92,110,115,211,208,99,169,227,173,55,10,220,11,131,158,216,149,250,250,28,17,156,254,30,220,208,5,195,44,56,36,74,252,103,186,
+128,78,123,96,17,140,131,147,158,51,223,187,68,232,79,250,206,0,28,22,79,94,189,15,126,135,131,219,158,77,84,9,180,231,237,42,9,61,25,153,179,158,220,200,167,245,30,184,206,72,83,156,115,117,14,73,231,
+112,144,228,231,254,187,28,100,115,193,35,61,184,160,11,94,114,31,189,42,12,116,253,224,29,51,207,4,117,233,142,188,143,194,7,149,48,79,154,15,112,22,119,30,190,133,136,224,242,59,10,140,142,55,125,174,
+12,245,1,99,144,112,7,253,116,245,62,248,39,191,4,38,249,70,113,113,17,39,129,145,34,142,231,130,29,152,241,254,25,36,112,0,130,85,234,38,60,103,32,220,76,51,234,50,27,156,224,255,0,15,167,66,69,48,178,
+2,9,36,231,63,242,243,32,60,99,36,150,96,48,7,99,232,113,197,72,38,108,96,201,22,113,128,113,49,231,174,58,14,61,249,36,102,145,157,152,97,110,45,199,29,27,204,92,119,206,66,158,253,137,36,115,144,56,
+160,8,139,67,215,204,148,123,45,210,158,167,31,196,249,239,147,233,207,56,21,25,120,137,63,190,148,17,200,2,253,65,60,119,249,155,31,83,199,35,131,83,111,152,228,125,170,216,125,13,193,199,99,206,87,130,
+79,28,251,142,9,167,153,25,64,197,204,36,241,144,36,184,207,229,231,0,7,127,187,238,104,2,169,116,39,239,202,199,131,206,160,157,176,63,133,63,19,200,250,138,114,24,143,62,100,228,114,15,250,98,251,99,
+0,128,113,239,199,78,122,28,203,246,153,70,118,201,9,206,70,75,201,199,175,250,215,35,156,115,140,228,130,79,90,79,182,92,1,141,209,55,32,18,25,115,200,28,252,178,12,103,169,36,117,39,128,79,0,15,11,108,
+87,150,186,62,128,220,33,224,243,207,65,142,56,227,29,0,233,154,104,22,170,120,23,35,158,8,154,19,238,49,187,208,130,78,50,122,30,184,203,190,213,49,254,231,110,172,188,253,51,39,25,57,192,207,174,5,56,
+77,114,122,52,35,142,132,197,208,14,217,144,224,115,206,127,173,0,31,185,228,98,98,6,63,231,155,12,246,1,148,112,78,125,121,232,123,230,64,208,128,64,11,140,96,135,218,15,208,128,58,142,252,246,234,72,
+21,23,153,63,123,139,97,220,131,228,158,158,191,54,14,9,228,99,30,249,28,1,230,0,236,185,181,193,235,251,187,48,11,16,58,100,30,189,243,244,227,173,0,74,26,47,250,100,131,36,114,192,28,103,25,24,137,185,
+199,35,62,135,159,89,3,197,147,182,120,248,227,7,131,145,254,208,132,30,190,160,131,216,103,147,64,188,253,26,123,124,112,14,207,177,12,99,167,1,48,14,125,176,49,198,49,77,223,46,6,219,149,228,103,254,
+92,151,156,142,3,24,242,64,7,191,233,198,64,53,85,148,231,247,129,129,254,234,59,12,31,251,102,7,175,78,131,129,233,72,23,156,2,122,115,139,119,97,235,215,104,30,135,190,71,60,14,107,25,222,102,192,251,
+66,156,156,114,108,88,119,193,39,102,0,36,127,76,231,138,104,137,216,159,244,136,193,237,134,181,83,158,188,16,21,123,99,130,1,36,98,128,55,118,146,62,103,7,140,252,214,199,25,235,211,25,28,28,114,115,
+238,49,85,94,32,50,68,240,41,56,63,52,101,88,16,127,218,7,24,199,110,135,25,59,107,37,160,117,56,55,112,169,4,140,179,68,73,198,115,214,101,95,168,235,215,32,138,143,203,110,65,188,182,60,127,126,217,
+122,227,214,227,60,251,14,223,74,0,210,109,231,129,121,0,228,244,96,15,29,134,34,207,78,123,231,216,98,161,216,228,143,244,235,108,14,254,110,48,113,143,226,80,51,143,113,248,113,89,237,17,4,230,234,22,
+60,231,19,218,244,24,244,185,7,158,157,63,94,145,178,184,255,0,150,145,144,63,233,226,19,200,250,221,227,191,28,125,48,104,3,69,163,98,121,189,183,247,34,100,60,96,114,73,239,244,63,83,77,41,180,12,94,
+199,158,128,11,136,248,7,32,227,56,29,63,44,254,121,197,164,29,92,96,143,249,238,152,245,3,229,189,83,159,175,190,125,3,196,142,6,1,25,61,205,208,110,56,61,22,248,250,250,142,220,80,5,150,103,39,2,241,
+78,58,230,239,107,103,61,64,94,163,233,199,176,234,35,218,135,37,175,35,224,114,126,222,195,156,244,194,185,245,231,143,194,163,47,46,0,43,9,92,227,45,114,224,224,122,143,237,1,158,122,240,7,182,105,8,
+145,178,86,59,78,49,214,114,114,64,24,251,215,135,235,144,126,190,148,0,252,91,157,192,221,161,192,237,170,56,235,212,156,56,81,211,212,224,28,116,170,206,45,84,144,111,20,158,160,255,0,107,57,227,177,
+255,0,92,113,140,119,201,233,197,76,77,192,206,35,181,235,218,101,227,176,224,220,144,64,250,224,254,52,208,211,144,65,134,219,60,100,139,136,208,241,192,24,107,144,121,239,250,30,121,0,175,152,56,197,
+195,177,32,99,110,170,249,30,157,37,28,254,167,32,154,81,26,30,4,179,140,227,254,98,115,159,196,5,152,114,61,127,60,138,176,77,200,221,136,173,215,254,222,151,174,15,101,148,143,94,217,231,214,154,30,
+236,19,197,185,250,204,205,142,156,113,46,123,241,250,158,153,0,136,67,24,57,223,38,51,206,47,231,36,115,207,30,97,36,227,234,113,74,34,132,127,29,193,236,79,218,167,97,199,80,127,120,1,35,158,135,191,
+90,144,203,114,14,68,150,234,113,145,251,216,207,76,129,247,217,136,207,233,249,83,26,107,220,18,179,91,113,192,45,34,96,251,228,30,163,219,169,30,153,52,0,24,225,199,34,67,234,94,73,143,67,147,201,126,
+127,3,142,122,246,166,24,162,236,6,48,56,18,55,78,79,27,164,227,156,231,29,106,187,203,121,201,105,236,199,64,112,119,99,156,99,59,192,255,0,42,14,70,106,61,247,108,63,215,218,129,216,140,28,250,145,243,
+128,51,245,200,252,57,0,152,198,153,225,28,14,248,144,99,158,248,33,242,72,30,190,191,130,121,32,131,195,100,115,157,241,16,78,71,95,144,99,63,135,176,200,168,11,221,142,183,112,128,7,64,200,188,241,254,
+218,144,121,24,193,207,57,56,224,6,249,211,247,188,140,253,102,7,7,62,159,105,24,35,166,71,235,64,19,136,119,12,124,140,57,229,146,51,220,116,253,209,206,7,176,57,31,141,70,240,1,140,52,96,227,3,247,81,
+156,142,70,64,104,179,143,112,0,25,224,83,12,179,227,139,152,113,211,153,185,62,184,2,225,178,120,224,19,252,206,26,207,46,48,211,196,78,56,253,234,147,156,100,16,62,208,113,211,29,177,207,34,128,19,102,
+210,70,232,142,63,233,148,99,233,214,219,25,31,159,191,57,46,221,24,27,73,140,169,234,68,112,40,233,237,2,146,115,220,231,140,241,80,150,63,199,36,39,212,52,170,61,123,121,251,122,30,59,231,24,28,12,65,
+152,134,114,240,144,15,64,202,222,188,113,115,144,51,223,29,121,233,64,23,11,69,208,34,176,231,12,62,205,215,142,153,82,79,110,54,240,8,192,168,92,47,76,109,206,58,27,98,121,244,30,79,242,245,227,146,
+42,12,218,142,89,163,201,25,192,108,2,78,115,140,202,248,60,14,8,29,125,185,105,251,11,113,184,19,211,59,226,233,223,239,224,125,7,25,231,142,78,0,38,41,25,32,22,108,143,239,45,190,56,235,147,228,129,
+208,19,235,238,113,194,8,160,39,239,175,32,156,50,64,122,117,60,68,167,245,29,249,29,106,6,22,35,5,143,208,134,181,231,160,25,33,14,61,201,207,7,241,168,139,89,30,54,41,198,113,243,219,177,250,146,34,
+60,116,235,159,110,244,1,97,163,132,28,25,34,29,249,133,125,49,213,49,199,176,61,121,227,179,126,79,88,64,7,1,150,55,12,114,49,158,135,61,50,57,57,35,175,21,1,123,30,64,141,125,114,198,216,17,158,188,
+181,185,60,255,0,95,113,80,180,186,104,31,63,202,59,97,237,71,61,48,9,183,25,254,189,185,38,128,45,249,197,113,181,135,4,127,207,85,207,28,140,238,32,14,217,0,123,30,105,194,82,123,12,145,212,202,223,
+251,52,138,7,211,235,210,169,253,163,74,61,4,217,227,4,53,159,61,177,143,37,120,238,50,72,233,154,12,218,119,247,167,0,112,121,177,62,221,76,126,189,243,234,57,52,1,59,103,39,45,24,7,57,204,184,235,206,
+56,156,231,0,103,191,211,165,70,209,177,255,0,150,209,168,198,114,39,35,35,156,127,25,228,244,233,233,206,115,77,23,22,7,33,102,156,99,28,7,177,80,61,190,232,56,3,191,30,185,193,165,243,236,79,89,37,231,
+254,154,90,28,242,123,6,0,127,250,184,160,8,138,75,156,11,168,70,73,224,220,168,247,198,12,131,234,50,79,3,215,160,22,65,214,250,223,221,126,212,71,76,30,112,196,113,142,126,156,26,151,253,9,177,251,201,
+120,207,73,45,193,206,120,4,137,199,244,245,200,233,82,7,180,199,250,203,147,198,7,239,213,187,231,7,19,224,12,224,227,36,103,39,140,154,0,172,171,48,111,150,241,7,78,183,50,237,200,56,28,134,198,7,78,
+50,49,206,77,25,185,39,63,107,136,158,121,91,166,36,128,120,4,48,63,78,191,128,235,86,196,182,253,12,215,24,207,35,126,59,246,63,106,0,245,244,35,212,28,83,127,112,78,86,73,136,28,115,54,78,73,56,251,
+183,121,206,114,79,229,158,70,64,42,17,114,78,126,209,16,198,6,4,200,65,62,164,146,115,250,142,199,160,169,4,87,77,210,226,31,160,154,32,113,233,134,83,252,253,179,86,194,197,131,254,180,3,140,3,43,100,
+254,6,228,228,117,228,109,28,2,122,114,221,171,247,183,21,61,62,125,228,227,61,6,217,31,140,115,201,252,205,0,87,251,61,223,32,92,219,47,166,246,133,179,156,227,5,65,25,25,246,206,7,165,39,145,113,159,
+248,250,131,56,231,107,170,247,244,56,231,140,96,113,236,79,73,203,32,3,118,24,142,251,167,24,201,250,15,207,39,175,20,210,224,156,136,216,140,30,143,32,24,224,250,231,31,83,147,223,181,0,68,214,243,142,
+126,210,164,158,128,42,55,183,240,202,48,125,56,250,251,179,200,186,61,39,79,169,76,3,212,228,252,237,158,120,235,248,84,134,83,255,0,60,156,127,219,118,0,241,200,59,129,62,185,231,191,3,165,52,206,203,
+192,142,65,156,156,173,195,144,14,56,232,64,39,211,129,215,25,226,128,16,193,121,211,205,140,145,236,160,99,158,237,129,207,98,1,7,212,119,105,130,248,116,145,64,193,254,24,112,0,192,224,238,80,120,250,
+231,241,205,6,105,24,228,249,128,245,57,149,179,249,146,70,57,228,115,233,129,71,153,33,4,0,205,143,89,227,35,144,65,192,102,7,63,151,115,201,160,4,107,107,179,159,223,237,56,193,32,66,113,215,63,50,204,
+56,246,237,248,112,139,105,112,114,126,214,72,25,227,124,120,250,12,206,79,228,123,140,12,102,130,243,0,62,82,7,56,229,24,247,232,119,127,78,156,117,53,25,153,193,229,136,234,24,109,66,121,199,109,195,
+160,239,212,118,20,1,41,179,159,36,253,160,147,236,81,143,63,75,175,124,12,228,12,14,153,168,141,156,164,156,220,148,234,112,8,92,255,0,228,195,12,244,207,56,244,197,55,205,112,127,141,136,28,0,49,232,
+113,247,177,248,19,248,102,151,205,156,12,168,152,122,225,78,127,3,230,103,142,131,166,51,201,201,228,1,230,198,94,49,118,217,237,186,85,61,122,3,251,209,142,248,3,243,20,213,180,149,56,23,49,158,112,
+115,115,179,235,144,25,134,63,94,120,227,170,25,46,9,220,126,208,51,212,231,57,63,247,240,142,120,231,211,161,228,211,212,202,115,197,209,62,201,33,3,167,24,80,192,231,166,79,182,120,234,1,40,183,151,
+189,204,3,156,231,237,91,191,12,6,94,58,118,207,94,105,124,162,14,60,248,219,25,233,60,195,156,117,5,102,29,128,253,71,90,143,115,1,157,151,128,156,28,136,136,24,199,171,66,113,211,161,236,125,205,2,86,
+7,38,43,146,167,169,49,161,246,255,0,158,24,238,71,95,206,128,36,17,28,143,223,68,79,171,93,221,168,192,237,197,206,15,83,234,125,251,212,158,83,224,98,75,98,59,159,182,220,12,159,114,103,193,60,118,234,
+79,56,233,80,11,158,78,97,184,56,232,10,21,250,3,182,14,190,228,15,198,148,92,129,201,181,184,114,61,114,164,117,206,51,8,252,178,59,118,52,1,62,36,3,27,173,15,76,159,181,206,221,58,158,38,227,32,243,
+129,216,100,84,101,164,60,172,182,235,215,24,185,184,81,199,64,11,56,250,224,30,167,56,25,193,81,118,71,252,185,221,227,161,195,46,113,238,54,28,30,49,140,99,177,20,125,164,30,69,149,210,228,103,230,104,
+207,57,234,119,32,245,228,126,25,52,0,192,95,56,51,90,147,131,144,215,82,19,145,237,231,243,156,231,130,51,207,165,56,63,32,19,102,123,3,230,220,159,208,220,224,117,56,198,114,113,210,143,52,30,182,115,
+183,92,150,48,228,14,7,57,78,120,199,78,188,122,211,210,88,255,0,231,207,10,123,148,139,56,193,238,16,231,161,193,227,145,205,0,38,213,198,118,91,116,25,249,174,200,57,201,63,118,235,145,207,94,121,250,
+224,130,52,32,97,97,228,244,6,243,7,233,254,151,193,207,227,215,158,77,41,116,193,34,210,60,115,196,161,27,191,81,144,6,61,56,108,116,7,61,25,193,36,173,173,170,130,49,254,174,61,191,136,94,158,248,235,
+236,8,20,0,241,26,131,204,113,129,207,59,175,14,113,208,225,174,115,131,254,29,184,162,152,208,51,255,0,203,165,151,126,145,129,238,122,166,113,215,167,60,231,222,138,0,228,21,123,172,68,127,192,7,92,
+131,142,46,50,63,14,156,10,156,239,0,126,238,80,65,234,177,158,189,191,229,244,19,219,168,32,159,94,41,134,114,8,36,176,207,115,19,30,113,211,38,93,217,60,143,226,61,249,28,209,231,43,3,150,85,56,4,150,
+133,112,65,239,243,56,206,125,114,123,126,32,14,243,38,254,17,63,166,124,144,126,191,242,252,185,63,92,246,193,24,163,125,208,192,84,148,14,227,201,201,245,237,121,156,250,224,143,110,42,179,79,24,200,
+55,3,35,56,219,109,3,12,30,59,201,192,250,145,200,237,81,27,155,113,157,210,175,124,255,0,161,217,30,65,30,178,175,39,39,29,57,207,30,160,23,204,151,88,35,202,186,110,153,197,169,245,61,1,187,231,56,233,
+250,227,146,228,251,75,96,27,121,207,214,216,14,121,235,186,249,114,123,245,7,169,170,2,242,204,47,250,208,58,30,45,44,79,110,132,9,114,51,130,58,145,234,13,42,223,90,117,243,136,60,244,178,178,207,233,
+32,207,110,0,233,145,146,104,3,79,108,228,100,91,72,7,188,96,126,64,234,27,65,252,251,243,205,30,84,205,247,173,152,0,48,72,72,249,231,0,159,244,182,237,238,79,232,42,154,221,91,177,36,74,72,57,251,214,
+118,235,207,78,161,137,232,79,167,94,6,57,167,125,162,215,167,218,19,39,60,8,109,215,3,158,184,4,142,121,207,61,115,158,153,0,187,228,75,145,139,126,231,56,138,18,217,233,146,12,252,125,120,232,51,211,
+144,164,202,120,182,44,122,115,29,176,199,124,140,74,126,189,207,235,154,191,105,181,32,22,184,66,0,232,97,66,7,215,11,140,158,61,248,228,116,166,155,139,13,217,51,65,145,142,182,255,0,76,28,133,30,163,
+169,199,245,0,178,68,164,140,216,101,184,193,81,108,8,235,128,6,78,57,238,120,244,164,217,40,36,173,131,18,122,159,220,117,201,235,242,48,61,79,78,15,166,13,71,246,171,46,9,150,14,51,194,195,42,243,238,
+20,242,49,159,203,165,56,95,89,99,229,120,143,94,2,74,8,250,31,56,99,3,60,30,71,64,104,1,199,237,11,199,216,92,15,247,224,29,14,51,145,16,244,234,56,199,227,73,190,82,74,155,54,30,132,202,139,252,162,
+207,28,117,39,36,227,35,52,163,80,131,35,108,137,142,7,31,104,13,207,61,68,205,158,122,116,61,120,206,65,83,123,16,94,100,78,73,225,190,211,215,29,14,37,83,142,227,212,138,0,6,252,12,218,28,99,251,253,
+6,61,4,76,58,142,164,158,152,235,154,104,14,9,63,102,32,100,103,159,152,112,121,249,162,3,167,94,167,29,1,230,158,111,97,193,193,132,17,199,203,246,130,58,241,192,185,39,255,0,29,233,237,154,132,222,219,
+242,90,88,249,35,24,73,251,115,156,25,249,199,3,174,73,236,1,160,9,25,230,83,196,18,224,12,2,25,49,248,143,45,72,227,169,228,123,119,168,77,205,202,158,98,156,115,156,6,24,199,64,72,0,28,115,223,175,28,
+145,77,55,150,221,67,51,14,121,251,51,56,239,235,116,50,70,126,131,29,49,81,53,229,171,14,101,3,156,109,254,207,44,125,79,252,190,31,167,35,57,227,166,40,2,194,221,92,127,118,80,14,63,190,88,30,122,97,
+199,76,244,228,231,140,83,190,209,115,158,37,144,99,57,202,77,192,236,1,50,129,158,78,123,253,123,84,19,195,213,101,237,255,0,62,91,122,103,156,27,163,158,159,207,131,138,144,74,135,165,204,189,137,11,
+103,156,30,156,102,102,31,158,58,117,245,0,152,93,220,103,153,164,29,137,27,143,167,92,220,14,121,227,7,250,211,62,212,251,176,215,78,71,108,238,3,39,0,224,11,146,114,62,184,245,39,6,163,5,206,79,159,
+57,231,169,211,211,143,108,249,132,129,212,113,129,234,5,74,21,142,51,51,156,145,214,195,159,78,192,147,142,163,12,115,212,80,2,9,137,192,251,72,28,231,56,25,247,24,55,71,241,201,198,58,123,60,92,50,240,
+110,201,39,29,163,29,8,236,110,65,57,224,96,30,57,56,167,139,116,42,127,120,65,227,159,176,21,62,131,31,33,198,123,146,49,223,220,41,182,83,140,75,46,70,9,2,199,32,242,65,207,250,51,103,184,0,251,15,106,
+0,5,211,241,139,215,228,17,242,136,199,111,81,116,65,244,252,72,7,213,194,234,101,251,215,114,114,15,252,177,118,31,67,182,227,212,112,71,211,183,45,22,241,142,72,99,234,223,96,57,250,100,90,129,239,211,
+175,168,160,67,16,254,4,36,243,159,177,176,57,245,56,181,60,244,237,252,134,0,39,23,45,128,90,234,86,239,129,109,46,78,63,237,224,14,125,66,247,29,136,20,121,249,59,132,211,122,127,199,180,217,61,186,
+153,191,92,122,243,232,197,183,136,131,200,35,60,98,218,81,207,62,182,99,167,98,127,19,200,169,86,56,148,245,246,199,217,217,184,35,159,189,0,233,211,130,58,250,208,3,55,177,255,0,150,183,0,103,254,120,
+202,61,184,6,66,114,127,167,184,37,193,142,78,30,224,246,32,198,228,19,192,234,24,99,211,61,105,204,150,237,130,99,86,3,63,122,205,155,28,115,143,221,145,219,169,255,0,235,83,66,89,128,127,117,25,231,
+0,27,119,92,117,207,221,140,127,60,247,201,160,5,27,243,242,164,164,117,229,101,62,157,183,15,126,167,191,81,210,158,90,81,143,146,97,158,48,22,85,36,30,128,124,199,219,156,251,224,10,136,139,48,112,214,
+241,145,140,143,220,204,79,60,100,15,148,240,56,224,244,235,235,76,50,90,175,11,110,163,159,249,227,116,63,16,60,193,131,211,29,61,40,2,215,155,39,67,13,193,235,130,29,135,39,234,114,122,31,110,220,112,
+41,158,100,160,243,13,217,35,25,38,97,200,207,190,79,67,223,240,35,140,214,55,48,134,192,129,70,48,57,142,236,18,61,177,50,228,254,7,183,124,212,235,113,110,113,251,181,83,158,126,91,149,57,60,243,186,
+228,103,62,152,228,159,110,0,30,55,183,222,183,188,207,161,153,113,143,108,131,158,167,255,0,215,156,70,80,131,255,0,30,183,67,61,79,218,35,0,243,219,43,159,67,208,85,133,184,136,246,85,255,0,128,220,
+28,142,249,43,117,223,233,156,30,189,170,65,112,156,225,162,28,158,72,155,156,251,53,225,227,32,96,1,212,227,131,138,0,129,99,35,147,13,218,244,201,91,184,185,63,240,40,201,227,143,64,113,143,106,120,
+81,218,59,165,231,36,181,228,110,79,78,63,212,12,116,231,7,158,156,246,144,220,240,112,214,199,158,233,47,76,251,220,245,252,113,237,220,52,78,70,72,146,14,157,10,48,95,205,174,14,113,223,29,51,193,160,
+5,43,145,129,13,193,237,205,198,236,224,227,248,98,28,231,175,211,242,4,101,127,229,133,199,79,249,236,61,184,63,186,39,7,174,49,193,224,241,205,56,92,205,200,47,104,192,244,5,92,149,24,193,7,253,35,183,
+99,140,243,199,65,64,153,143,252,182,180,82,51,193,70,227,216,102,87,56,237,198,9,28,250,80,4,139,19,28,98,9,249,232,60,195,156,125,5,185,29,49,140,112,57,235,147,79,48,72,112,4,87,3,60,114,24,254,100,
+91,16,120,235,216,114,121,227,16,111,153,185,23,118,107,206,127,213,238,35,158,78,60,209,158,59,255,0,81,154,122,137,156,231,251,66,211,28,231,253,28,228,246,28,239,113,249,140,241,218,128,38,16,76,50,
+124,183,7,56,25,142,82,72,237,202,219,96,158,221,250,242,106,81,12,139,201,137,178,57,0,195,40,62,224,19,111,147,158,157,123,117,170,251,37,39,139,251,81,233,251,140,117,245,253,217,7,62,131,7,25,7,169,
+160,197,56,207,250,117,161,238,7,150,71,97,147,131,25,95,78,63,49,64,23,80,79,156,44,68,96,31,191,20,132,99,31,245,196,140,115,207,3,191,175,19,4,186,60,132,143,130,79,252,123,134,4,122,99,236,188,227,
+159,76,99,147,205,102,168,152,113,246,187,124,159,91,88,152,122,28,31,44,146,113,235,208,140,113,216,2,99,210,226,220,145,147,145,109,26,119,206,9,17,30,220,123,250,30,114,1,176,162,228,116,138,12,240,
+115,246,100,82,121,224,243,111,24,207,176,237,201,56,52,110,185,94,177,71,140,14,145,91,156,231,235,15,227,158,64,53,153,155,145,247,110,96,3,254,189,144,224,246,25,88,57,61,250,96,158,189,50,2,247,29,
+26,237,115,159,249,246,0,253,121,131,144,71,24,25,198,15,160,160,13,96,242,2,3,162,175,7,56,183,183,99,248,98,223,39,31,64,64,253,95,145,131,193,39,182,45,96,227,208,243,26,241,237,193,245,24,233,140,
+178,93,3,197,246,71,57,197,180,124,103,63,222,183,36,243,238,61,51,205,40,146,227,35,117,203,55,114,69,188,126,252,243,106,65,62,131,61,207,24,226,128,53,194,158,112,146,145,208,17,105,6,48,115,131,192,
+83,215,31,153,199,90,148,19,140,108,156,96,127,13,164,99,61,49,146,91,28,123,0,57,250,214,40,119,239,43,28,245,205,188,100,250,231,254,61,6,9,57,227,61,62,163,50,172,140,57,51,156,96,124,191,102,83,128,
+61,71,217,192,201,29,48,71,94,72,230,128,53,128,39,63,45,222,59,126,230,5,35,30,251,129,250,115,158,231,214,147,201,45,195,61,232,231,166,33,31,145,18,96,122,251,243,146,122,156,225,51,140,98,225,129,
+35,238,139,36,39,61,7,63,101,246,228,231,167,168,197,52,205,43,14,110,92,140,231,63,102,85,235,199,31,232,216,36,122,12,125,61,0,52,252,152,194,146,205,168,31,83,185,8,199,82,112,178,140,147,236,114,120,
+224,118,67,111,104,70,88,94,147,146,48,31,105,201,224,224,155,174,125,240,8,237,89,203,43,255,0,207,105,248,238,45,198,15,191,250,144,15,94,1,56,199,76,116,169,65,99,130,110,46,48,71,104,2,241,207,63,
+234,156,31,76,227,241,160,11,203,111,98,127,130,239,39,57,44,192,183,79,123,149,63,158,121,206,71,173,132,181,180,7,131,114,61,188,192,160,126,87,139,248,224,231,220,129,89,64,2,114,90,229,200,3,162,0,
+216,245,226,17,206,112,64,238,79,24,24,171,42,136,221,126,212,113,215,116,46,72,234,120,196,59,129,0,250,246,235,210,128,52,68,16,175,105,72,237,190,99,223,25,199,250,110,73,30,248,244,207,21,32,142,46,
+50,64,29,70,233,144,158,57,32,255,0,165,146,7,76,228,118,227,142,153,233,109,25,201,219,113,131,206,76,18,28,245,199,252,177,39,174,14,7,81,212,224,130,44,172,74,6,23,206,97,235,228,76,160,115,234,33,
+29,176,61,59,19,200,160,11,10,145,3,247,151,57,60,121,241,128,121,234,115,116,59,119,236,122,212,192,68,50,60,197,7,222,68,60,227,182,46,58,113,249,12,246,230,155,66,113,192,152,227,215,205,24,63,65,24,
+35,31,159,62,153,53,31,217,216,255,0,203,57,78,113,198,233,250,126,56,62,227,244,56,197,0,105,43,198,7,51,39,98,1,145,115,142,189,124,194,58,31,226,60,246,29,169,237,50,1,129,34,131,147,159,153,79,30,
+185,18,99,39,61,134,70,59,214,114,217,244,253,220,192,147,131,134,184,61,61,50,121,7,24,29,62,163,20,255,0,177,191,252,242,151,3,185,121,249,227,146,71,152,167,215,176,3,142,167,160,5,241,49,227,100,164,
+19,211,46,112,113,236,73,28,246,3,60,119,237,79,243,231,198,62,210,192,30,14,209,33,35,140,227,10,156,247,29,251,246,197,102,253,144,166,1,70,29,24,101,230,60,122,127,173,199,124,224,159,175,178,136,56,
+56,218,48,78,1,18,28,143,127,244,128,0,199,208,251,14,5,0,105,11,178,62,245,204,173,238,86,126,79,185,242,191,253,92,115,72,47,192,39,247,239,146,65,63,44,197,136,28,103,254,61,201,255,0,61,115,205,103,
+136,80,99,230,139,32,100,141,191,64,122,220,116,236,78,127,26,110,226,189,12,56,57,234,80,18,114,14,121,185,237,129,192,35,211,166,114,1,168,53,52,28,52,242,142,112,15,149,48,233,216,17,102,0,201,235,
+200,7,60,147,154,127,246,164,56,203,77,33,206,48,10,48,62,191,197,7,28,246,227,242,25,57,66,114,120,38,44,15,66,135,159,238,140,222,1,198,57,227,250,138,60,195,220,161,30,184,128,140,227,158,13,223,62,
+221,0,245,235,64,26,127,218,48,146,127,124,228,143,81,32,32,3,236,128,131,248,241,239,79,254,209,182,239,60,185,233,198,230,231,215,230,219,215,39,32,228,142,7,81,89,235,49,3,131,25,244,202,219,140,125,
+79,218,201,228,116,39,168,239,210,165,251,76,157,20,194,58,245,72,155,61,142,49,113,237,212,116,193,193,160,9,255,0,180,237,129,201,157,134,122,146,178,14,65,198,50,172,171,128,57,233,142,163,3,146,101,
+93,86,220,231,108,168,216,255,0,98,102,231,232,100,4,118,206,1,200,31,157,85,188,148,100,22,139,7,144,118,71,244,255,0,159,147,142,253,63,3,158,142,55,239,247,73,141,134,70,50,20,142,253,188,255,0,166,
+113,159,199,38,128,44,29,82,217,177,184,168,235,144,82,227,131,207,79,223,99,24,238,6,58,142,0,193,13,245,185,251,166,37,231,25,255,0,72,233,142,227,206,83,208,247,254,184,168,69,236,196,12,164,109,180,
+12,16,29,112,63,239,249,28,251,99,61,169,255,0,218,18,16,2,196,50,51,158,100,192,252,86,65,206,57,228,245,227,189,0,59,237,113,183,6,88,193,108,12,255,0,164,14,184,192,200,155,113,3,212,31,166,78,106,
+69,154,22,227,237,16,96,1,252,87,131,105,206,115,129,113,142,79,61,7,56,25,206,9,132,94,202,64,44,140,48,123,125,160,3,212,116,243,49,215,182,238,122,228,244,166,155,153,155,56,71,60,224,18,102,244,29,
+1,144,253,7,36,131,223,138,0,184,37,132,1,153,224,39,174,12,151,199,39,175,65,59,103,131,158,185,231,215,172,235,52,71,7,206,181,244,4,139,226,71,76,130,124,226,127,167,63,83,89,190,116,188,3,8,246,220,
+179,143,196,159,59,28,103,211,147,200,199,100,105,165,57,30,74,100,12,130,5,215,230,62,99,143,83,211,140,115,64,26,158,109,185,39,18,89,54,71,37,133,247,92,17,212,74,113,207,110,135,142,113,140,40,146,
+223,159,155,79,29,49,180,223,115,142,78,1,98,57,255,0,116,122,228,138,198,50,63,25,67,211,140,36,224,19,245,222,59,103,168,61,249,237,73,185,216,127,170,126,123,101,143,94,49,201,56,244,245,207,30,180,
+1,184,4,12,73,51,88,14,132,225,238,134,121,199,57,36,143,92,224,253,14,114,38,86,140,227,109,205,144,199,92,207,115,207,39,29,87,167,60,142,135,57,60,228,86,2,249,153,255,0,82,235,129,198,20,145,237,144,
+88,116,244,7,175,90,152,158,132,134,227,29,64,29,15,188,131,220,99,60,123,158,128,27,193,216,112,183,22,94,248,154,98,49,244,192,35,159,175,96,71,21,42,200,120,30,101,158,78,113,251,249,136,60,14,128,
+199,198,126,189,59,247,60,240,145,73,225,115,207,36,184,30,253,174,1,61,136,193,199,166,112,5,76,178,198,7,33,192,39,144,36,31,161,243,199,231,131,193,3,56,60,128,116,33,219,31,55,144,217,233,137,37,252,
+249,64,7,175,94,135,169,29,84,161,99,202,195,159,99,55,35,142,119,0,113,250,140,245,172,49,37,183,12,195,146,14,127,121,150,237,215,247,199,30,220,147,199,126,181,47,159,104,58,179,140,99,4,77,54,121,
+3,209,200,224,28,99,159,110,69,0,107,109,96,121,104,185,234,4,151,35,30,217,11,199,94,131,223,61,232,102,233,134,128,113,156,180,215,31,136,31,186,32,116,207,57,246,206,50,51,5,205,137,56,50,202,61,188,
+217,249,246,255,0,89,147,220,130,49,200,197,73,246,141,59,168,146,108,147,147,153,101,235,233,143,48,146,125,115,156,99,189,0,104,102,67,210,75,117,235,255,0,45,38,110,252,129,149,7,25,206,50,57,235,129,
+192,14,2,66,120,123,102,39,175,250,243,192,227,168,76,14,227,175,126,149,64,92,105,164,114,239,255,0,2,121,206,57,245,14,112,59,116,227,129,158,244,158,118,147,252,114,160,7,179,73,117,143,108,130,78,
+9,246,7,3,211,184,5,230,44,58,139,64,114,115,196,189,48,59,158,127,63,113,235,138,178,74,195,171,90,119,192,34,111,81,232,9,60,96,96,243,146,61,48,107,23,210,72,37,100,143,175,24,146,235,131,147,200,62,
+157,125,126,184,205,56,127,103,21,200,144,15,163,76,115,208,158,10,228,247,198,51,210,128,30,101,97,242,137,108,84,255,0,180,147,103,62,227,104,192,234,126,157,123,212,102,102,193,255,0,75,176,25,56,25,
+134,94,223,81,142,152,232,8,231,169,52,22,211,215,56,146,50,48,64,220,146,28,231,28,253,204,147,143,80,113,235,138,97,154,208,19,178,91,113,142,131,236,242,177,206,56,39,32,3,147,223,167,191,4,208,0,183,
+46,14,62,217,167,103,61,4,100,115,211,184,35,61,62,156,123,81,246,137,27,33,174,44,8,61,194,224,244,245,242,142,79,61,113,143,99,214,144,75,19,30,36,183,224,113,251,156,126,25,99,140,118,227,208,140,17,
+192,93,241,228,102,75,76,28,129,152,212,117,60,240,8,61,250,250,147,138,0,136,60,189,18,123,34,51,158,17,79,232,109,199,56,207,167,92,247,205,52,188,135,32,201,108,79,0,98,55,24,227,182,216,199,94,9,199,
+113,158,181,55,158,153,11,230,91,122,127,18,40,199,169,83,208,30,131,169,198,79,108,200,39,29,158,203,29,49,230,76,27,191,28,22,231,25,201,250,251,80,5,35,191,0,238,132,14,153,192,29,58,224,52,92,103,
+234,48,79,25,239,30,93,184,19,168,28,0,49,149,56,255,0,118,3,140,227,174,65,227,36,113,90,70,237,64,28,219,156,255,0,114,71,62,252,157,167,56,35,131,215,63,90,13,234,46,119,109,36,246,89,91,60,227,145,
+152,152,125,57,239,129,218,128,51,149,27,63,235,183,100,127,10,63,242,242,1,62,188,103,145,210,164,49,175,10,210,200,217,224,12,72,189,185,224,68,216,250,14,125,248,53,100,234,96,116,82,59,113,35,231,
+36,250,34,119,25,237,159,215,13,254,211,7,28,144,58,99,205,159,250,69,156,28,158,167,185,201,205,0,64,81,71,1,38,252,30,81,156,122,1,15,175,35,61,58,123,210,2,112,70,219,192,48,65,196,147,156,224,245,
+226,217,134,59,140,224,12,2,0,226,165,251,112,63,120,96,12,231,247,210,140,245,231,13,22,56,236,115,199,4,142,212,134,238,220,100,187,224,100,229,126,209,33,199,62,161,57,238,112,58,112,61,104,2,47,49,
+177,247,238,151,131,156,180,164,245,28,31,244,117,200,199,224,57,39,20,130,225,241,131,45,193,3,248,65,233,206,57,38,48,121,198,64,199,185,239,151,27,251,65,143,158,66,115,208,77,112,195,175,3,32,100,
+231,60,144,6,49,249,183,237,86,239,209,167,7,161,253,236,231,57,244,221,17,198,61,1,252,248,160,0,92,184,32,137,46,248,198,48,228,143,124,143,32,130,58,224,243,208,112,59,191,237,178,116,243,174,79,24,
+234,6,127,17,110,163,57,232,115,207,67,223,48,53,212,96,144,94,232,0,113,242,188,189,15,67,204,105,215,220,138,137,174,147,56,89,238,134,9,234,239,212,30,115,130,20,250,122,146,57,244,160,11,127,107,145,
+136,220,243,182,56,0,220,237,7,3,140,238,139,175,126,126,185,197,6,240,142,15,218,73,3,254,127,162,235,238,76,68,250,156,118,237,223,20,77,204,135,24,158,224,244,3,13,51,12,231,145,195,5,232,48,121,198,
+73,207,178,121,210,49,195,73,49,29,241,231,183,95,248,17,224,246,252,198,58,208,5,175,182,227,248,102,207,111,244,251,79,94,251,224,224,14,113,158,113,145,146,50,41,166,240,150,32,180,221,248,23,246,68,
+118,231,136,128,3,234,6,125,5,86,37,123,249,205,220,141,178,130,120,231,25,56,32,247,36,100,231,35,39,20,224,202,79,2,232,17,143,186,207,233,254,240,250,28,127,133,0,72,110,87,169,50,241,215,117,229,137,
+4,99,61,227,233,215,242,168,90,233,9,206,29,190,151,154,119,255,0,26,56,253,115,130,120,236,226,210,3,242,219,234,44,59,17,231,99,158,249,243,6,49,219,5,113,158,152,230,130,243,30,13,157,251,31,246,140,
+185,237,145,243,78,71,32,231,166,127,145,0,139,237,9,143,245,78,126,183,150,28,100,228,224,136,135,242,252,169,4,246,255,0,121,149,251,112,47,44,134,61,114,48,156,117,61,241,199,94,42,87,107,144,56,180,
+188,0,231,33,148,16,61,137,51,12,96,147,245,25,29,9,168,252,199,63,122,218,225,120,25,220,171,233,193,230,232,1,145,211,229,247,198,40,2,7,154,211,188,12,253,243,246,219,67,130,48,112,64,99,237,144,71,
+4,242,1,234,209,61,153,233,110,85,176,120,55,86,196,99,240,67,145,223,140,245,28,228,243,49,101,207,54,178,158,127,231,153,28,31,251,120,35,29,8,199,229,211,13,97,30,62,107,51,145,212,180,50,3,206,123,
+155,141,190,156,142,152,231,189,0,86,51,219,19,129,25,224,144,72,120,8,56,237,144,1,24,238,15,7,167,52,44,182,227,170,63,224,241,224,14,253,27,63,207,128,50,71,52,236,195,206,109,48,59,16,174,6,56,207,
+63,104,228,250,129,159,79,162,22,131,160,182,231,177,223,39,78,7,221,251,78,49,215,183,31,160,0,112,150,216,140,52,79,235,212,146,9,199,35,50,224,99,216,99,175,224,172,246,167,147,22,236,122,147,212,30,
+65,34,97,144,49,208,19,207,110,245,11,60,63,243,197,7,212,57,253,126,210,71,169,236,120,250,84,126,101,167,241,37,168,29,126,117,199,60,142,134,70,207,168,193,25,254,64,22,63,209,9,201,135,28,129,247,
+165,198,1,200,225,110,199,3,145,142,216,198,13,51,109,145,200,100,96,113,207,239,38,36,117,245,185,235,234,57,31,206,170,183,216,207,79,177,246,254,14,56,233,140,253,58,251,122,244,99,37,158,65,45,102,
+122,28,109,42,121,246,231,211,167,175,28,80,5,182,75,33,159,191,223,31,52,163,243,253,241,39,62,184,35,176,238,105,2,89,228,30,114,122,19,44,184,29,135,124,112,71,126,63,76,231,178,90,228,109,107,49,140,
+224,101,115,206,7,25,13,142,112,121,3,39,220,10,96,143,35,229,146,216,245,233,36,10,15,224,240,253,125,61,48,120,160,13,66,182,185,207,154,1,60,127,173,144,14,132,16,7,57,63,207,249,39,250,40,198,36,35,
+39,35,116,210,133,246,4,134,239,142,152,32,231,167,64,114,196,47,130,119,91,103,57,207,218,45,83,174,63,189,24,24,232,125,253,207,89,4,44,66,131,45,178,227,149,255,0,74,179,97,239,140,195,156,119,227,
+243,224,80,5,230,40,1,249,211,158,0,243,31,158,56,198,224,78,115,206,71,62,199,161,174,118,96,228,197,207,76,205,146,121,61,140,68,142,123,128,79,3,189,67,228,92,158,22,226,200,131,158,178,217,177,227,
+147,255,0,44,9,228,15,175,226,41,166,222,240,147,182,107,54,61,56,158,216,182,8,232,113,2,129,192,246,207,167,106,0,115,52,127,40,9,15,185,243,220,54,51,131,200,139,60,116,252,121,164,33,79,241,32,227,
+181,211,227,159,67,229,18,57,199,115,219,36,117,49,180,26,144,233,45,168,28,112,38,128,117,237,133,140,99,35,240,238,106,47,39,81,193,38,91,101,192,28,155,136,253,122,224,33,61,184,206,8,28,103,130,40,
+2,80,72,39,107,140,227,145,246,137,27,130,61,173,242,15,124,19,156,142,115,145,152,216,202,121,235,233,139,139,145,147,130,59,90,144,51,206,123,113,211,181,70,235,168,2,127,210,109,143,31,195,58,1,236,
+56,69,39,241,61,79,229,9,75,226,63,227,226,3,159,73,212,227,7,160,193,56,31,76,28,231,158,57,0,123,121,221,24,15,76,25,231,108,28,115,157,208,28,143,160,24,36,30,8,197,68,99,152,146,12,101,178,63,190,
+231,143,92,121,10,120,227,7,143,195,138,49,122,185,38,72,201,61,113,57,56,237,141,161,143,244,228,250,154,60,219,164,28,237,29,6,76,164,126,3,175,67,200,255,0,14,40,1,141,19,174,63,112,189,122,49,252,
+177,152,178,78,113,206,125,177,233,17,86,36,131,108,172,122,227,124,96,125,57,136,158,159,157,78,211,93,245,103,110,58,21,99,130,59,99,10,51,208,114,57,60,19,201,230,51,117,115,208,153,155,158,210,227,
+129,236,219,72,233,223,63,224,1,31,144,72,221,246,56,134,121,198,240,88,99,35,168,80,122,115,211,128,57,60,210,139,80,64,255,0,67,108,3,201,73,227,7,24,39,128,99,110,156,12,241,245,228,211,197,212,231,
+131,246,128,48,127,229,178,224,115,220,177,32,15,66,114,125,41,13,196,188,98,89,71,28,255,0,164,91,224,126,12,65,235,220,250,245,160,4,22,168,14,13,163,176,32,28,25,224,60,113,215,17,100,100,142,184,239,
+233,82,45,178,100,15,177,122,28,25,98,28,30,122,136,71,4,103,147,245,30,148,207,62,231,60,73,55,29,188,235,82,123,244,5,199,229,211,156,159,100,102,184,32,115,33,7,159,154,91,80,7,36,99,6,101,39,156,245,
+24,252,232,2,97,109,14,120,179,61,250,220,91,224,227,175,5,7,78,57,193,24,199,56,224,63,236,240,117,54,138,79,82,26,107,124,131,248,70,121,31,95,166,106,37,123,193,200,65,206,127,229,226,213,120,29,137,
+14,64,250,231,35,175,25,24,155,117,227,12,21,132,15,70,189,182,227,235,151,206,57,3,183,94,71,82,64,26,97,143,36,11,120,212,119,31,104,136,30,156,14,16,129,142,252,115,76,242,144,103,9,23,176,55,72,120,
+246,196,99,145,232,78,15,110,56,165,49,206,114,68,182,201,147,211,237,144,31,196,133,151,31,92,117,29,134,41,166,57,215,254,90,218,231,128,9,185,136,103,233,254,146,61,56,192,32,244,192,200,160,7,8,20,
+245,137,14,122,126,245,78,57,238,4,123,128,60,115,199,215,6,143,42,48,114,118,140,145,129,144,192,3,143,88,207,235,235,223,154,111,217,238,88,228,155,51,144,79,51,199,235,207,75,156,254,127,78,212,134,
+206,224,255,0,203,91,21,4,244,251,76,131,215,251,178,28,28,228,250,227,235,128,0,243,26,14,119,64,14,50,75,70,88,156,243,142,16,18,71,126,221,7,90,118,20,1,243,192,126,150,210,99,234,74,174,79,212,245,
+244,192,226,33,167,93,145,144,246,108,0,63,242,218,102,24,35,158,132,118,235,216,114,7,65,78,26,125,222,115,186,213,113,215,247,215,3,63,136,255,0,57,39,57,236,0,210,216,36,110,70,30,162,19,140,12,244,
+5,114,71,61,241,142,188,142,160,148,114,112,188,30,73,181,94,120,56,233,30,127,151,81,158,212,255,0,176,222,28,225,237,200,200,3,253,38,96,70,121,35,230,66,122,142,7,92,103,30,234,214,23,152,230,116,81,
+254,204,243,19,235,211,203,29,62,163,30,227,20,1,27,76,135,180,96,224,117,128,169,60,251,40,7,191,111,94,148,171,50,142,50,184,24,201,16,43,19,249,142,184,207,112,57,192,197,31,217,243,129,147,57,97,212,
+5,50,49,237,198,79,7,28,228,254,92,83,126,203,58,242,37,102,31,237,23,245,201,28,123,122,100,227,158,188,80,5,133,154,60,247,39,175,252,122,196,15,231,187,36,241,219,142,65,53,32,154,223,0,50,147,158,
+205,109,207,211,229,97,158,122,114,115,223,167,52,254,207,48,206,101,0,1,208,135,60,118,224,176,228,103,61,51,199,79,68,48,74,63,229,226,37,201,28,124,235,142,189,246,130,78,57,193,245,160,11,235,61,160,
+94,83,144,48,55,40,92,254,75,147,234,6,79,225,205,71,246,155,83,192,135,174,14,55,58,246,233,201,62,188,12,28,251,103,154,126,89,28,155,148,61,57,216,92,12,114,115,153,23,233,201,0,231,241,166,151,41,
+214,101,30,191,232,199,167,65,200,184,201,25,250,103,191,106,0,189,246,139,48,65,48,33,207,63,52,174,51,245,200,24,247,3,142,152,35,20,134,123,3,214,8,87,168,57,146,66,49,211,177,0,250,224,30,152,236,
+106,136,96,192,255,0,164,30,57,194,194,252,241,219,23,29,185,234,73,231,183,112,178,115,153,206,59,147,12,195,62,128,1,114,79,212,118,231,57,61,64,45,52,250,104,83,152,237,193,235,145,52,227,142,231,2,
+81,130,112,71,56,193,61,51,81,25,180,195,200,183,137,179,207,19,72,120,232,63,140,227,166,64,207,214,162,14,184,226,76,147,206,124,185,243,207,0,0,102,57,224,246,224,100,251,18,245,117,224,103,175,127,
+46,126,184,198,114,100,24,244,235,197,0,72,36,210,249,38,2,51,206,3,204,65,252,85,250,251,226,152,70,153,247,133,176,236,127,214,220,119,31,238,241,192,231,142,248,62,129,68,145,174,112,114,73,228,237,
+159,35,24,244,118,39,128,113,193,239,211,138,83,44,99,187,177,227,24,50,228,123,144,220,250,103,167,234,104,2,13,182,7,56,183,11,207,79,52,2,15,78,178,38,127,51,129,129,237,147,253,8,14,85,23,31,244,244,
+121,57,56,198,208,49,142,248,228,247,169,183,130,6,12,199,29,0,105,7,225,206,113,235,211,25,63,146,101,185,56,156,129,208,249,140,0,56,62,217,57,60,118,207,81,214,128,24,13,159,95,49,70,113,193,157,78,
+51,238,123,159,167,231,77,45,104,114,4,160,113,218,104,189,1,31,121,91,31,82,61,69,60,180,135,170,205,199,31,235,143,110,51,131,25,235,142,221,177,70,0,255,0,150,19,30,231,253,33,20,119,63,197,19,99,182,
+50,120,233,193,160,8,73,180,201,196,221,15,123,136,78,56,231,147,26,227,168,35,167,56,235,197,59,247,36,96,72,252,14,159,109,84,24,28,240,162,19,142,59,19,237,78,96,135,39,200,144,99,168,55,72,91,175,
+56,197,182,122,140,245,39,30,253,83,247,100,16,99,145,78,58,25,199,190,15,54,234,59,250,131,215,158,40,0,5,7,43,57,67,129,214,251,56,35,36,159,245,35,211,3,212,147,130,58,135,52,210,128,54,220,179,103,
+210,232,103,25,199,83,25,56,247,39,143,92,242,89,136,251,70,192,123,221,38,79,7,128,124,161,239,158,9,252,49,77,32,146,2,199,129,234,215,49,183,212,227,202,83,129,219,158,5,0,60,92,76,167,6,89,122,228,
+237,187,92,144,71,95,186,15,190,8,25,254,69,64,200,199,36,66,11,30,135,206,135,182,9,206,91,241,231,142,163,28,145,69,0,101,27,43,113,255,0,46,246,203,215,254,95,47,72,227,57,0,125,143,29,123,138,13,157,
+183,104,173,199,94,179,221,183,191,31,232,128,1,237,200,253,106,47,34,0,115,183,145,233,37,215,184,24,45,63,167,92,250,227,28,212,158,85,185,234,178,28,14,205,57,35,211,25,156,244,255,0,62,224,13,251,
+44,64,255,0,169,183,111,67,190,228,131,215,25,205,159,174,126,157,133,41,183,128,15,154,11,126,58,110,19,19,207,161,54,107,248,144,58,14,69,32,180,183,111,187,12,173,215,5,183,159,209,165,25,252,255,0,
+250,210,165,156,107,129,246,98,70,56,200,233,207,56,205,206,49,249,99,158,188,228,2,6,75,113,207,217,160,108,12,128,161,241,235,193,251,25,28,231,156,129,138,103,238,187,89,218,240,122,50,149,56,63,246,
+238,58,112,121,252,7,74,188,45,226,7,254,61,88,119,7,203,45,200,232,64,19,115,129,206,65,252,123,210,249,73,145,254,138,199,25,28,192,223,94,14,246,198,65,198,79,183,76,80,6,121,11,255,0,62,86,173,201,
+35,1,137,244,32,133,181,62,131,129,211,214,147,114,14,182,182,232,78,114,74,190,7,169,203,91,14,157,201,247,236,107,72,162,224,226,218,81,206,7,4,1,211,213,186,158,217,207,210,163,100,56,35,203,153,64,
+199,30,107,241,158,7,221,227,159,99,198,120,52,1,72,34,182,6,203,92,117,25,25,61,63,135,54,196,96,113,142,253,254,143,249,56,30,93,183,215,29,253,115,246,108,140,243,249,242,113,197,90,242,128,249,137,
+184,95,97,35,241,146,59,48,231,35,233,198,0,247,21,182,255,0,203,71,219,156,243,43,131,235,147,181,79,208,241,143,94,104,2,174,197,238,45,128,25,250,227,62,191,103,92,99,169,199,95,122,118,200,79,241,
+219,12,247,44,163,32,251,148,0,103,190,113,208,251,85,208,241,28,230,80,58,114,101,155,57,29,15,17,28,156,231,211,129,211,168,166,9,32,4,31,180,129,130,58,73,38,120,7,56,204,121,57,193,30,185,29,168,2,
+177,72,6,8,154,220,122,0,235,211,208,225,15,78,15,76,113,199,61,28,99,143,25,19,67,223,12,178,100,99,167,252,242,193,239,233,232,125,42,215,157,3,112,46,164,99,200,226,73,126,132,124,209,231,167,176,61,
+14,73,205,48,200,189,62,211,40,4,156,102,105,151,131,235,194,156,16,78,72,60,114,123,80,5,125,136,0,6,230,60,243,208,224,253,49,229,129,146,112,56,245,247,34,152,201,22,48,110,241,192,224,149,206,14,112,
+121,11,129,145,147,249,140,10,178,100,39,165,207,78,230,234,65,235,201,193,56,244,237,239,158,50,221,238,223,242,246,0,81,143,248,252,155,35,147,216,66,217,237,198,120,252,113,64,21,68,118,228,252,183,
+114,103,184,5,122,245,28,111,201,30,132,123,26,12,8,7,18,204,120,39,32,119,207,31,198,7,63,137,254,150,183,14,247,12,73,231,30,124,158,131,214,0,49,158,254,167,165,46,240,63,143,119,112,90,233,148,125,
+114,161,8,236,56,201,160,10,30,75,117,19,59,115,159,152,46,72,247,38,225,88,96,117,193,231,240,197,74,16,168,251,206,199,190,60,191,66,51,147,126,122,159,96,71,31,74,186,31,61,49,146,7,75,251,143,94,121,
+14,63,195,176,192,0,211,136,148,231,4,224,142,7,219,167,24,207,185,184,25,246,192,207,211,140,128,81,0,142,118,150,31,246,203,39,28,227,155,182,206,56,234,61,120,32,112,224,161,250,35,231,60,229,162,228,
+159,66,183,32,123,227,3,191,90,186,171,32,234,167,167,83,168,220,99,191,253,60,17,156,250,14,212,165,92,147,128,156,246,254,208,187,39,174,51,255,0,31,63,143,221,199,24,227,28,0,83,16,140,242,146,142,
+58,139,132,10,8,234,56,188,207,231,252,133,73,246,118,224,5,144,47,95,248,248,76,99,221,77,209,233,252,187,228,145,86,60,177,209,149,137,29,133,245,199,39,62,243,146,71,167,30,252,83,246,163,103,49,200,
+14,58,173,220,216,32,250,157,199,39,191,76,156,100,16,120,160,10,222,78,49,200,39,35,239,75,17,57,199,76,125,168,28,126,135,211,165,78,182,228,175,33,72,233,203,46,15,83,211,237,92,241,237,207,83,147,
+210,64,176,142,124,169,120,236,110,101,126,7,167,204,51,159,175,174,58,210,237,132,156,249,78,61,218,230,96,7,60,100,11,149,24,245,200,4,253,13,0,66,45,227,95,224,183,236,9,239,248,255,0,165,131,199,76,
+227,61,71,213,235,111,25,28,164,24,60,2,22,78,191,240,27,147,147,211,147,207,166,113,82,17,9,3,247,67,32,246,158,99,146,57,232,46,79,94,113,200,244,206,56,167,1,23,81,25,56,24,229,230,235,237,153,142,
+125,121,25,29,115,205,0,69,246,81,252,34,49,143,95,52,122,244,204,199,244,35,183,110,142,22,206,7,202,80,147,192,192,149,137,231,161,255,0,74,24,30,249,7,240,166,180,118,199,239,33,228,28,225,164,237,
+208,228,49,56,28,31,94,185,166,129,104,191,41,243,114,15,163,28,31,198,69,57,235,143,81,128,40,2,97,107,112,50,67,32,198,0,196,19,30,48,127,234,32,62,157,58,243,222,129,28,227,171,198,113,198,62,195,51,
+12,247,231,251,68,47,39,211,61,187,228,213,98,108,207,85,156,254,3,177,227,57,159,60,1,215,175,74,77,214,36,224,23,4,96,144,237,183,182,122,25,253,51,201,233,233,212,80,4,231,204,207,205,229,17,159,226,
+211,229,32,224,227,160,213,84,242,120,231,158,221,205,38,91,162,249,63,85,178,187,83,248,99,88,32,125,113,248,28,211,71,216,91,56,98,115,193,195,40,198,49,198,12,227,234,7,28,99,156,112,31,139,38,224,
+137,123,15,148,142,126,128,222,174,0,199,255,0,174,128,0,205,216,242,57,255,0,143,107,177,235,208,29,87,4,118,231,63,90,95,54,101,224,62,1,28,109,134,110,63,1,171,147,250,127,90,140,173,153,192,31,105,
+235,222,72,176,56,25,56,251,97,206,125,11,122,242,121,164,31,99,63,243,247,199,113,49,28,113,233,57,3,28,113,198,48,61,70,64,37,243,165,237,50,169,29,15,150,235,159,193,181,65,215,191,92,115,199,162,253,
+162,124,1,246,165,199,92,24,178,59,231,63,241,54,31,79,166,56,168,188,171,38,229,133,232,239,205,203,244,238,0,19,231,142,192,17,248,241,132,91,125,60,99,11,121,156,119,185,124,115,235,155,147,192,60,
+158,70,49,208,241,128,7,249,243,19,131,52,71,235,11,46,122,129,130,53,22,7,25,228,100,224,253,77,6,105,151,130,241,18,1,198,48,61,249,221,116,249,25,239,248,113,220,16,89,144,2,153,193,206,50,215,44,79,
+254,142,63,129,252,122,84,171,109,16,229,90,67,207,25,159,56,192,62,174,113,250,14,114,6,122,128,49,102,98,62,105,71,208,60,75,212,122,153,198,64,201,207,242,35,172,129,156,227,116,239,212,99,108,200,
+71,62,159,191,35,159,112,51,252,166,16,160,254,54,32,142,64,159,39,3,215,0,100,231,167,94,63,10,120,183,140,174,119,75,198,48,76,236,49,131,156,100,128,7,112,72,32,19,215,173,0,48,59,114,5,196,184,199,
+0,79,22,7,30,134,92,115,232,78,59,115,78,50,184,255,0,151,137,72,60,99,207,183,25,198,114,48,102,25,245,207,76,118,238,99,251,56,255,0,158,204,7,56,204,223,208,161,207,166,114,113,211,154,114,194,120,
+6,225,58,100,151,157,187,125,33,57,57,63,133,0,42,206,199,32,201,112,203,208,98,123,80,6,115,211,23,3,167,241,103,158,122,212,235,52,128,2,13,225,237,242,77,110,199,28,228,255,0,199,207,80,61,51,248,247,
+103,146,252,98,116,32,247,243,242,58,96,253,232,71,61,123,254,121,205,40,141,147,147,50,117,237,50,231,244,140,158,112,70,61,65,239,138,0,155,237,89,192,100,212,78,56,230,88,7,166,14,5,193,61,241,201,
+207,215,138,149,110,163,206,91,251,89,78,71,34,107,96,48,58,1,251,245,228,159,94,167,212,226,170,151,101,28,77,15,79,239,130,125,121,253,217,60,251,144,125,41,86,105,201,31,234,164,227,32,121,164,113,
+212,14,35,255,0,61,240,13,0,92,23,246,192,157,211,235,73,142,127,214,218,1,207,166,235,173,195,216,18,123,113,216,181,181,27,97,210,109,93,241,208,155,155,124,142,249,199,218,143,97,254,121,204,30,116,
+195,173,188,68,147,198,103,97,156,14,184,84,200,247,228,103,166,71,64,121,179,103,30,68,39,158,191,105,149,115,233,206,208,15,235,250,80,5,129,170,192,163,30,118,171,158,217,158,220,241,245,50,247,245,
+206,71,111,90,6,165,27,158,100,213,8,228,140,92,91,143,167,89,120,199,29,200,245,224,226,171,25,110,84,15,221,192,48,71,91,233,120,231,29,56,42,0,207,24,7,158,131,161,81,115,117,212,8,51,232,47,38,36,
+127,228,54,207,190,73,201,246,160,11,98,254,19,144,199,83,244,230,123,79,215,39,129,158,58,159,165,72,183,118,248,255,0,89,168,129,156,224,207,109,143,168,11,25,237,245,53,84,92,93,144,120,133,142,49,
+197,220,196,14,122,227,201,3,191,126,15,112,122,83,5,205,192,35,114,168,207,113,60,135,24,62,240,241,219,24,252,72,24,160,11,223,107,180,31,122,109,64,123,155,139,78,61,62,253,177,60,255,0,159,90,95,180,
+216,182,115,53,233,56,206,77,197,161,246,232,182,227,140,246,24,25,244,200,170,98,242,227,145,192,199,60,205,63,191,60,64,70,71,215,28,30,164,82,137,238,216,224,54,73,232,22,230,97,239,156,24,115,237,
+207,76,129,198,40,2,224,158,204,224,9,166,4,14,3,220,219,174,122,242,72,135,159,126,9,28,227,56,169,3,71,206,36,56,60,115,119,1,60,96,242,68,0,129,235,147,211,57,206,42,152,107,192,50,236,235,147,203,
+125,174,82,71,56,60,108,62,157,112,72,247,200,169,4,146,119,158,76,156,255,0,203,204,152,200,28,242,96,4,243,158,156,228,129,130,113,128,11,99,203,61,93,199,166,46,96,3,25,39,144,109,253,126,163,234,121,
+165,101,82,0,24,98,122,17,121,103,158,121,254,40,7,3,0,227,24,207,124,138,170,29,200,230,87,36,246,51,76,125,78,6,209,201,60,2,121,25,201,238,13,61,103,42,10,146,196,227,169,107,146,222,164,143,144,30,
+115,206,63,51,216,2,93,129,125,62,141,123,101,193,235,199,238,135,169,61,79,126,122,82,0,165,191,215,42,117,63,241,249,109,223,57,233,22,59,241,207,227,156,82,125,165,198,118,164,141,223,134,186,3,28,
+123,140,122,18,15,29,243,130,104,243,238,15,34,19,198,79,51,95,12,17,145,207,239,128,7,190,64,254,162,128,2,84,97,124,228,35,35,173,212,71,156,158,127,213,131,207,168,239,156,18,77,59,229,236,240,19,200,
+7,237,32,17,223,168,76,240,120,198,123,123,3,66,207,49,56,48,14,123,181,221,242,253,57,19,16,62,191,94,120,24,178,166,83,129,246,101,57,25,57,188,189,57,252,228,39,142,221,240,59,241,64,20,247,48,60,77,
+110,15,63,122,234,95,82,121,218,113,156,118,193,61,125,106,69,105,56,204,214,237,140,112,183,82,115,159,92,171,103,142,216,234,14,50,112,69,224,238,56,54,81,14,6,73,186,187,61,253,60,209,147,245,198,112,
+57,244,121,152,127,207,156,89,231,164,247,32,126,7,113,60,241,223,220,80,5,31,61,64,32,180,68,243,201,184,147,28,231,24,62,71,108,14,217,252,232,251,68,96,245,181,201,233,186,230,224,140,14,14,64,129,
+121,3,7,28,146,65,62,181,115,204,108,241,103,7,60,100,220,221,19,249,103,211,156,31,196,122,5,159,130,45,16,115,140,11,187,132,227,158,198,35,206,64,35,36,159,110,112,0,33,23,49,96,102,75,97,236,179,95,
+156,15,248,10,12,123,128,56,169,163,184,181,110,12,150,121,206,49,230,106,89,227,176,253,217,57,231,29,61,59,226,151,19,54,127,209,194,243,142,117,9,143,7,186,230,46,61,113,129,234,113,205,57,97,185,56,
+196,11,142,49,141,68,147,142,115,214,34,65,3,175,95,111,112,7,249,214,192,240,109,159,234,117,60,156,15,95,36,113,245,60,244,237,72,179,64,73,2,11,92,242,55,3,169,129,206,121,230,223,43,158,220,254,84,
+245,130,84,200,54,234,70,56,45,124,27,167,214,223,119,60,103,7,60,245,238,94,33,144,228,165,188,99,235,117,147,145,140,17,251,140,147,237,220,1,220,240,0,211,44,99,159,46,217,113,208,131,124,15,67,207,
+49,19,142,71,61,253,141,61,30,39,60,11,98,123,228,95,41,244,193,255,0,70,108,159,207,35,128,58,80,99,184,31,242,239,24,28,245,158,92,224,113,212,91,245,233,208,247,206,122,84,101,110,58,24,208,123,11,
+166,60,100,113,131,3,122,142,163,252,40,2,200,104,0,57,75,115,233,242,221,145,238,8,251,54,14,112,126,163,154,80,214,231,33,97,182,224,158,66,92,241,216,144,10,100,112,125,63,46,49,88,37,192,233,9,201,
+228,19,113,32,0,1,207,91,62,125,121,7,218,164,11,122,58,71,30,8,255,0,158,204,79,212,159,177,2,123,99,131,223,210,128,44,171,67,192,9,24,35,32,237,138,114,57,57,254,36,206,49,142,128,113,198,8,163,204,
+80,114,35,24,7,144,33,148,243,158,192,194,71,175,177,237,156,17,80,22,189,207,250,184,79,24,203,75,41,35,220,129,106,160,122,15,127,122,148,53,200,31,60,112,126,38,78,123,143,249,118,62,158,158,216,160,
+9,68,234,7,10,123,147,254,140,79,63,79,36,99,158,61,7,65,211,20,191,106,92,99,13,192,32,102,211,158,156,227,247,93,186,130,122,1,220,98,162,51,78,163,27,33,198,14,0,243,72,250,100,90,30,122,114,127,0,
+50,105,86,226,98,120,17,15,64,12,249,247,235,110,8,237,207,183,165,0,88,23,81,140,110,119,25,36,156,217,162,243,236,74,128,63,47,83,138,149,111,87,140,75,43,17,131,255,0,30,241,40,231,167,240,126,100,
+147,207,76,119,167,230,206,6,74,196,71,31,242,210,78,167,142,63,114,8,29,59,123,244,206,87,204,102,228,164,124,129,199,153,245,224,102,47,94,189,120,207,28,98,128,52,6,163,142,1,126,122,19,4,76,195,61,
+122,118,199,67,143,233,76,58,147,96,252,236,59,255,0,199,188,64,251,147,243,19,159,112,56,247,170,160,18,72,242,97,206,78,6,192,237,219,140,136,242,71,78,51,245,169,2,77,208,65,110,9,3,12,241,182,115,
+208,0,8,224,99,35,160,3,216,80,3,206,161,41,198,217,89,7,124,197,24,252,179,27,123,147,142,59,145,76,58,165,198,48,179,163,115,142,96,136,231,167,25,16,130,125,250,125,58,138,118,201,65,193,142,14,78,
+6,196,10,126,132,228,19,142,51,183,142,57,52,239,33,201,36,32,227,39,37,87,104,224,115,243,6,237,140,243,145,142,153,6,128,24,186,157,192,24,47,7,76,97,109,144,143,126,168,127,63,214,144,234,23,4,18,175,
+10,244,228,90,243,140,241,156,35,2,61,250,145,239,82,144,227,130,71,224,145,49,201,245,63,40,3,208,250,254,136,84,144,9,144,175,78,144,39,175,32,254,240,12,246,233,207,182,115,64,16,29,66,224,243,230,
+91,177,30,176,16,58,255,0,215,50,0,244,245,247,234,87,251,70,239,128,26,33,237,229,202,122,246,27,98,62,252,100,159,113,214,165,242,179,213,223,142,164,91,163,17,215,184,149,189,72,39,159,210,153,229,
+38,120,184,152,19,199,22,172,127,12,12,145,131,215,3,158,153,198,5,0,70,117,11,162,6,72,235,212,65,55,80,120,206,80,103,168,199,30,130,152,111,165,60,52,132,103,175,250,60,231,159,64,118,114,15,167,29,
+198,59,27,126,94,15,252,127,206,173,142,134,214,97,140,242,0,202,122,125,79,29,200,225,202,38,3,139,251,179,219,2,41,87,232,127,212,28,253,65,199,92,117,38,128,40,27,246,228,121,135,142,230,218,94,190,
+192,69,144,125,57,207,114,105,227,81,113,213,155,240,133,193,237,215,114,131,158,15,97,140,145,220,213,205,210,28,134,212,46,84,253,110,65,25,237,197,175,29,121,250,231,181,32,118,198,6,163,121,193,254,
+245,217,231,35,158,45,189,122,12,30,122,250,208,4,95,111,46,14,124,194,57,57,84,145,14,56,231,0,129,244,200,39,189,52,222,49,24,86,187,200,236,11,40,83,248,238,247,4,112,49,130,59,212,234,203,206,237,
+70,113,254,242,222,159,212,64,141,248,131,207,173,7,203,193,255,0,137,132,165,135,32,231,81,24,252,144,254,131,158,158,244,1,10,206,236,6,62,222,122,116,126,58,31,85,30,248,201,28,228,158,105,222,110,
+254,177,223,244,0,114,167,63,134,225,143,94,167,185,24,52,253,241,174,115,168,191,3,4,22,212,15,24,28,156,219,251,251,247,206,69,2,104,112,51,168,145,199,113,125,156,17,220,253,148,144,48,122,117,247,
+199,4,2,34,89,143,220,188,39,167,40,167,223,175,218,20,115,239,192,206,121,205,55,105,39,253,92,231,61,3,4,24,236,121,251,83,123,115,207,110,7,24,180,175,14,65,26,140,45,198,62,100,186,36,253,119,217,
+18,15,96,49,140,14,153,60,187,117,185,35,253,54,221,250,112,18,110,156,228,140,88,231,184,234,121,62,180,1,83,203,39,164,18,22,199,32,5,207,25,228,31,56,224,227,184,192,207,211,52,8,103,35,2,9,71,82,50,
+233,145,233,193,159,35,63,159,191,53,104,152,15,91,200,23,158,208,207,211,60,114,109,87,161,235,200,200,226,144,27,126,130,254,223,57,200,30,76,196,241,255,0,108,113,235,140,143,94,61,0,43,152,110,8,24,
+134,97,212,227,8,217,207,63,243,213,136,239,156,242,59,251,177,173,231,56,253,205,193,244,38,28,243,223,161,36,117,231,183,108,156,213,178,97,39,139,248,186,127,207,188,132,99,235,246,124,31,80,57,201,
+247,232,110,137,112,69,244,96,246,219,109,33,36,140,117,255,0,71,199,174,0,246,245,25,0,164,96,151,25,107,114,64,236,241,143,241,29,189,15,56,29,57,166,148,136,12,24,34,28,245,49,129,156,123,23,35,212,
+112,6,113,146,78,106,239,154,114,118,222,142,121,230,213,200,60,112,127,227,204,246,236,51,234,115,193,160,151,99,255,0,31,118,196,156,240,214,114,103,156,250,216,228,158,7,111,225,7,183,32,25,251,96,
+83,254,174,16,122,96,132,29,120,238,70,59,99,159,192,19,82,127,163,243,197,184,32,246,100,0,14,1,227,13,131,219,159,110,252,213,223,46,115,130,183,22,199,158,0,182,153,51,211,211,78,236,71,175,35,35,52,
+98,240,12,9,173,199,80,8,183,155,161,60,243,246,52,56,36,118,4,241,140,250,0,83,221,104,7,222,182,13,156,100,155,124,116,61,115,19,30,220,224,30,153,234,106,50,109,73,230,123,65,201,225,68,100,243,156,
+242,32,63,81,129,199,65,182,174,178,94,99,153,162,224,244,48,92,17,156,17,200,251,46,121,201,60,122,231,165,33,19,231,230,150,212,145,198,13,188,188,12,250,125,148,158,7,31,135,81,64,21,7,217,59,79,6,
+14,49,128,160,251,116,135,39,175,60,145,249,83,24,216,30,12,145,159,95,158,48,59,243,134,183,39,145,207,92,115,207,57,21,113,146,67,247,190,198,61,51,103,47,183,173,190,51,254,115,206,106,44,178,228,31,
+236,246,35,140,27,68,94,131,213,160,234,122,118,198,114,113,216,2,155,255,0,102,140,124,246,248,235,203,198,78,227,245,133,0,62,184,207,177,163,204,211,135,73,163,28,131,242,201,108,79,30,135,3,161,206,
+59,250,142,245,105,200,7,37,108,63,239,212,32,12,158,48,76,35,29,58,227,62,192,156,83,48,135,59,163,176,39,156,230,56,206,127,31,40,115,244,231,143,173,0,87,51,90,243,182,225,64,247,146,215,7,219,238,
+18,113,223,158,135,181,55,207,131,35,108,177,54,57,63,53,177,252,190,82,114,71,182,120,199,174,102,41,17,63,118,219,29,196,81,64,120,29,120,40,57,7,182,56,28,244,2,152,194,216,2,12,112,159,99,12,45,223,
+190,87,159,94,162,128,33,55,17,246,120,216,28,147,243,69,159,124,31,43,61,72,198,9,198,125,141,51,237,106,50,20,15,79,245,170,61,249,11,9,250,224,227,159,78,181,35,69,101,208,196,156,115,251,184,45,151,
+158,158,167,183,97,237,81,21,211,192,25,128,228,117,255,0,71,183,57,35,25,231,0,250,131,201,231,183,90,0,65,112,121,218,8,238,63,210,17,87,184,207,206,160,250,129,192,25,197,66,247,146,12,255,0,169,35,
+176,107,203,112,114,79,57,228,115,219,174,15,25,233,138,149,133,136,193,88,93,122,253,219,120,123,100,246,12,123,245,61,5,66,194,209,128,1,102,7,183,238,97,62,164,156,21,99,233,199,169,193,28,226,128,
+25,246,199,32,3,246,117,25,192,255,0,75,128,19,249,72,167,63,207,142,152,166,181,233,7,6,88,20,1,201,23,113,159,196,255,0,165,174,56,235,142,157,71,90,83,28,93,21,110,6,71,95,32,30,188,243,229,175,67,
+238,51,201,56,168,90,37,7,32,205,215,146,214,140,73,232,120,253,216,231,156,156,131,131,131,212,208,2,181,236,132,28,79,9,30,159,105,220,121,237,197,238,61,114,122,96,210,11,166,61,100,181,32,28,140,204,
+249,61,9,31,241,246,167,219,211,142,162,152,214,229,177,135,152,28,114,5,137,92,118,228,149,228,123,123,113,140,115,31,217,159,28,153,207,166,108,89,64,206,72,201,0,177,28,117,255,0,0,104,2,127,180,231,
+129,37,176,228,242,39,148,3,212,245,251,118,78,58,14,49,143,108,83,126,208,132,127,174,183,235,201,19,204,217,63,248,27,158,224,247,201,245,170,230,213,216,231,50,14,114,49,103,56,199,212,149,82,113,208,
+14,123,28,211,126,199,46,0,18,72,7,171,193,116,7,174,1,10,72,56,239,206,120,6,128,44,25,227,57,205,196,3,0,144,51,59,158,125,133,240,63,76,244,235,233,148,50,195,200,251,76,64,115,192,138,229,179,156,
+244,3,81,63,161,246,238,13,85,54,18,128,91,204,143,156,243,246,107,177,235,223,102,57,198,58,142,231,184,6,35,107,115,159,245,208,15,111,38,235,129,233,202,118,207,255,0,172,80,5,241,45,182,63,215,43,
+31,65,109,125,206,58,100,139,236,28,246,201,61,125,50,106,55,146,216,242,37,94,51,128,108,239,27,57,39,160,251,119,212,244,60,224,117,200,20,141,165,207,105,173,193,231,36,195,113,158,152,234,16,245,60,
+156,31,233,132,251,53,201,36,25,237,248,35,143,42,240,159,207,97,234,48,121,35,142,192,244,0,188,37,137,176,60,200,207,94,182,23,160,158,58,19,246,178,121,239,219,60,211,91,102,121,17,48,207,95,236,219,
+198,207,169,230,87,235,233,192,61,120,230,169,27,57,143,89,33,35,254,185,93,100,125,73,64,125,57,247,35,36,243,65,177,155,130,13,190,59,22,142,231,159,192,168,63,137,29,248,62,160,23,74,161,92,249,145,
+175,29,19,77,185,200,231,251,161,242,56,25,232,114,125,179,152,90,50,122,92,63,176,58,93,246,15,83,253,227,158,122,145,233,193,234,42,161,181,35,59,141,166,125,210,232,126,63,42,100,241,146,113,158,222,
+196,179,200,85,35,45,106,72,31,194,46,176,61,142,228,232,114,51,140,255,0,136,5,166,183,44,14,103,35,216,233,23,222,156,114,178,19,206,63,196,96,115,19,91,63,65,54,120,227,254,37,119,224,103,24,228,243,
+252,253,121,232,42,50,35,234,90,216,145,208,20,159,36,123,127,163,31,160,28,244,252,41,172,192,125,213,183,32,145,199,146,231,3,57,239,99,232,0,206,127,46,180,0,227,109,38,113,231,253,71,246,125,240,246,
+60,249,103,242,12,79,183,106,105,141,177,204,227,35,183,216,175,65,231,215,48,15,175,83,142,152,230,153,141,221,86,50,79,165,188,141,199,124,183,216,251,19,212,28,250,18,51,66,219,2,114,22,16,121,235,
+111,55,225,192,179,235,140,12,1,159,214,128,30,18,93,196,164,224,123,27,59,225,249,126,232,129,198,120,193,238,123,83,89,37,234,101,207,186,219,94,12,140,245,255,0,143,115,200,35,142,131,166,122,242,125,
+157,112,50,176,113,208,11,89,183,126,44,108,137,29,51,201,60,244,30,136,34,83,145,136,120,57,255,0,83,46,113,142,167,22,67,140,244,201,60,119,200,34,128,19,99,231,6,82,15,188,23,67,61,113,214,216,17,211,
+147,131,215,191,34,154,83,159,245,187,142,127,231,157,223,228,113,104,223,204,122,247,167,180,42,122,8,142,14,112,34,156,15,67,202,217,31,192,96,250,243,205,53,161,57,192,140,55,126,18,231,216,131,159,
+177,103,211,31,141,0,48,35,19,243,48,247,202,92,119,233,214,208,28,247,25,24,239,147,74,81,58,137,6,123,0,39,65,142,227,38,208,15,110,50,73,234,112,13,47,217,230,56,197,184,228,240,60,169,200,193,255,
+0,183,16,125,79,7,31,65,71,217,46,123,218,143,124,69,112,59,158,14,45,70,15,191,215,165,0,52,237,224,25,88,125,12,152,250,127,199,161,227,215,60,114,56,244,94,114,49,35,123,229,137,31,173,184,250,158,
+190,195,209,223,97,152,156,253,148,100,227,24,138,235,140,250,230,0,0,224,125,7,67,142,106,79,176,78,7,22,163,143,85,156,30,0,29,124,188,156,231,30,189,250,154,0,174,86,66,56,201,247,194,30,58,103,6,220,
+2,1,232,115,233,142,152,161,85,251,169,56,235,251,168,79,79,76,219,31,83,130,122,156,245,233,86,13,148,195,57,183,31,130,201,238,72,59,227,221,159,108,118,235,72,45,88,144,13,171,19,248,46,58,122,160,
+62,131,174,9,232,49,64,16,149,239,243,3,238,136,1,247,56,178,35,167,124,122,83,130,54,1,220,167,56,224,198,27,25,36,227,34,208,117,237,199,25,60,122,72,108,231,237,108,63,239,136,14,79,212,175,35,167,
+95,65,138,62,201,51,96,253,149,113,238,177,117,246,59,72,244,200,192,30,160,245,32,13,216,113,209,9,25,199,201,32,244,61,4,11,206,15,182,125,13,30,89,234,81,15,61,218,101,199,215,247,121,57,7,129,143,
+81,236,100,251,44,132,241,103,9,62,165,34,224,112,115,247,14,78,115,206,7,94,78,122,47,217,231,4,129,111,22,79,65,229,66,112,8,35,28,199,215,158,7,67,215,156,112,0,209,17,24,34,24,142,72,192,47,49,28,
+117,255,0,151,115,158,253,71,229,78,16,72,63,229,198,22,28,17,196,160,122,227,254,61,129,57,61,121,206,58,158,115,65,134,225,126,244,49,100,118,242,237,64,28,31,250,119,25,30,153,207,4,245,205,70,82,225,
+115,132,136,117,233,29,168,3,35,222,2,48,115,156,103,3,7,142,148,1,55,148,219,129,123,24,0,238,15,153,134,245,235,108,224,145,235,199,60,251,212,190,76,103,254,97,176,175,35,149,7,158,191,222,180,29,201,
+239,201,235,219,52,11,206,56,41,1,0,1,247,96,12,65,206,121,91,99,192,246,252,105,166,86,206,12,80,228,227,170,160,237,232,182,132,158,70,65,199,169,239,64,23,205,170,176,27,108,163,28,158,119,50,251,17,
+143,178,3,159,112,120,238,56,21,23,216,211,141,214,150,172,65,254,57,241,200,246,104,198,63,157,83,45,33,36,249,86,199,129,193,45,147,200,227,139,80,61,250,250,140,1,76,13,32,255,0,150,80,140,114,74,150,
+252,6,77,168,245,60,145,198,6,104,3,75,236,136,49,139,59,35,199,65,115,140,117,61,219,245,193,227,173,56,90,99,25,180,180,245,199,219,34,233,206,79,78,156,142,73,231,167,60,154,202,44,192,231,106,240,
+57,219,38,122,28,116,54,192,99,220,99,183,126,141,243,219,156,49,30,185,32,103,7,215,236,248,232,115,145,130,78,78,69,0,108,155,120,192,27,172,172,242,127,136,94,192,127,61,235,192,30,220,103,190,56,49,
+152,80,96,139,75,76,30,184,186,181,3,208,116,96,127,92,250,154,202,55,24,206,100,60,245,205,194,168,61,255,0,231,152,199,212,30,189,79,90,133,174,209,120,103,231,29,86,232,158,79,176,43,144,7,63,78,123,
+208,6,201,133,14,73,180,128,19,156,1,117,0,25,62,163,231,224,118,29,120,252,105,134,214,50,120,179,183,61,192,55,54,255,0,145,35,102,79,212,143,115,158,43,27,237,144,142,178,49,62,171,51,228,100,227,31,
+123,31,94,220,230,158,47,161,61,94,78,51,210,118,25,30,152,231,61,125,135,39,165,0,104,189,154,28,143,179,66,9,63,119,207,128,143,207,205,7,24,207,76,251,2,41,166,194,219,143,50,218,223,7,214,100,239,
+216,159,59,3,191,124,102,169,11,232,16,103,124,192,224,16,4,253,48,125,14,9,198,48,51,239,207,90,83,170,67,202,150,186,39,31,194,234,196,228,227,3,230,32,17,244,232,122,28,240,1,124,217,89,246,181,181,
+7,218,88,137,63,148,140,114,126,153,56,245,166,181,133,169,255,0,151,104,115,140,112,209,48,3,160,198,85,142,127,250,195,140,12,209,251,124,4,31,222,93,128,58,239,151,104,28,251,103,184,25,29,251,103,
+186,141,66,16,56,146,232,250,145,33,96,51,234,1,61,134,51,198,56,207,169,0,157,236,237,186,11,120,88,255,0,219,50,70,6,49,141,128,103,25,234,61,61,242,134,210,16,114,177,68,167,24,229,34,63,158,80,241,
+250,245,28,131,80,141,74,50,50,26,102,25,198,65,60,118,31,192,115,140,115,219,30,156,26,95,237,16,8,0,204,71,174,11,100,231,3,3,110,112,123,99,61,232,1,230,205,8,199,147,1,95,250,226,8,201,199,101,136,
+231,182,121,231,129,77,251,28,11,255,0,44,225,3,218,221,7,79,64,97,7,185,246,31,141,59,237,165,177,133,144,142,112,25,28,31,83,193,78,50,121,252,241,158,180,241,113,49,31,42,17,156,224,148,36,231,183,
+6,60,15,78,249,244,24,56,0,104,129,113,133,17,0,49,159,220,227,61,125,0,63,253,115,159,106,79,36,12,224,194,79,161,82,8,244,198,99,96,127,94,57,206,104,50,221,19,131,26,117,56,102,132,30,48,58,224,169,
+207,57,60,28,1,207,108,52,253,168,242,22,48,57,198,32,192,206,57,233,32,238,51,248,115,222,128,3,12,160,252,159,103,206,58,30,167,255,0,37,219,169,199,80,127,58,40,84,187,200,255,0,85,158,63,229,131,14,
+158,191,188,250,231,212,159,204,160,6,111,143,169,181,139,30,133,172,200,233,223,253,36,112,115,212,55,81,193,165,15,15,65,12,43,215,162,218,49,39,28,127,203,193,252,57,57,198,59,83,205,148,163,134,182,
+184,31,91,56,250,122,253,227,234,71,63,65,154,5,131,117,242,165,3,215,236,138,59,115,146,131,29,134,51,239,237,64,13,2,35,140,34,12,227,157,182,103,131,237,246,128,115,248,115,158,135,165,32,84,4,130,
+128,142,164,133,180,3,143,172,221,62,158,249,29,105,230,205,192,224,49,244,6,212,244,3,253,194,51,219,57,31,149,48,218,56,231,97,56,227,13,97,146,57,231,254,89,147,238,50,15,110,51,138,0,105,22,249,32,
+197,23,176,41,102,199,146,59,253,160,158,127,60,118,239,71,151,108,73,59,34,94,14,73,138,219,30,253,39,108,113,244,39,220,158,80,218,182,9,242,89,72,239,253,156,196,228,127,219,18,73,28,116,7,235,218,
+154,96,101,235,25,0,159,226,211,231,245,199,107,108,113,216,228,247,7,140,208,2,249,54,217,251,214,196,243,193,134,2,125,136,195,183,92,113,142,79,78,184,195,150,59,110,129,237,0,236,60,152,185,252,54,
+96,103,235,207,78,248,166,8,91,178,161,228,158,108,165,7,183,63,52,64,245,61,185,254,170,203,50,12,143,36,14,184,107,87,29,251,254,228,158,113,156,228,241,211,216,2,83,5,184,228,61,152,201,60,136,87,61,
+49,143,187,201,63,129,198,58,230,144,195,108,49,251,235,85,39,36,226,12,125,57,17,55,78,9,25,61,137,228,98,162,89,37,28,98,35,193,199,250,51,224,129,200,201,17,14,231,250,243,201,167,7,159,131,182,31,
+95,245,110,20,159,80,8,227,174,0,57,206,14,78,58,128,33,142,12,99,206,128,143,238,249,110,56,227,156,125,152,227,183,56,237,128,105,124,184,177,130,240,16,114,57,71,56,62,153,251,39,94,156,103,191,34,
+156,26,115,214,56,73,245,42,192,103,143,92,1,192,247,255,0,4,62,126,225,139,43,103,207,190,51,239,211,28,224,113,156,243,215,212,1,162,40,185,33,227,94,249,216,253,253,63,209,193,253,51,216,245,197,60,
+67,19,255,0,203,84,29,250,76,9,232,49,132,182,233,249,31,194,158,22,98,63,227,194,221,78,59,73,142,191,175,61,250,140,231,142,49,79,242,103,42,63,209,34,25,28,238,184,108,12,140,117,218,78,58,227,35,25,
+198,61,104,2,63,179,196,48,62,210,163,175,65,117,233,198,63,208,200,247,245,246,224,138,103,217,163,4,19,44,132,14,114,162,224,46,15,95,249,117,30,153,199,229,205,72,96,159,189,181,178,130,0,192,152,49,
+36,241,209,148,103,143,192,103,57,233,77,48,74,84,6,181,132,227,156,137,207,227,156,32,57,7,35,24,227,29,243,192,2,125,149,78,127,125,56,28,227,155,194,121,206,62,236,60,123,30,227,24,206,69,55,236,100,
+14,110,110,7,214,75,236,117,247,135,208,14,59,118,205,32,182,140,19,155,120,115,158,190,99,19,244,63,40,192,233,156,123,242,56,53,47,217,226,94,69,170,1,223,247,239,239,215,167,235,248,240,104,2,51,104,
+8,0,220,92,231,212,53,202,227,240,49,174,72,200,234,127,76,96,22,156,156,92,92,17,158,23,108,206,15,115,144,84,158,189,49,143,99,200,167,249,113,119,181,78,224,254,246,83,249,50,166,61,248,207,211,138,
+105,68,4,255,0,163,129,159,89,174,61,177,140,167,234,6,58,230,128,17,173,155,188,211,28,227,25,183,152,159,98,14,7,113,239,201,247,20,191,102,113,210,73,91,3,31,53,164,205,201,29,190,94,189,59,143,92,
+246,12,24,220,1,73,20,227,144,30,228,140,127,188,97,81,239,215,183,76,115,67,8,199,57,144,28,242,55,78,125,142,113,19,30,125,187,28,158,40,1,198,210,67,207,207,159,107,41,14,59,12,131,183,61,57,239,198,
+61,114,134,11,128,8,27,137,245,251,38,222,135,176,222,56,233,206,127,192,68,210,66,189,85,200,245,197,201,60,127,219,169,61,253,121,234,104,23,16,47,221,134,118,237,242,164,227,190,122,155,80,127,159,
+208,208,3,196,119,42,122,145,192,198,235,80,64,29,120,204,159,227,219,181,41,75,158,62,101,30,128,88,194,221,143,171,241,200,28,19,207,191,20,130,230,51,255,0,44,39,39,254,222,71,174,71,252,122,28,143,
+97,199,233,133,55,139,146,162,214,232,245,228,45,199,92,122,155,51,158,112,122,30,157,113,129,64,11,137,64,27,202,17,144,71,250,5,169,254,101,207,184,199,35,25,35,181,60,7,35,27,85,113,142,182,86,96,126,
+94,89,238,64,249,187,103,0,84,63,106,36,252,182,247,89,207,241,71,57,57,29,143,250,9,192,62,131,57,199,228,225,44,167,149,134,113,131,218,43,129,237,140,155,85,245,231,32,96,117,198,51,64,19,15,48,6,192,
+140,142,114,126,199,102,7,126,222,73,28,14,56,7,167,83,156,208,1,60,23,29,143,252,123,90,174,61,127,229,135,36,123,131,140,240,121,168,193,152,252,161,39,207,253,113,144,240,79,57,34,0,73,193,28,117,247,
+52,245,243,20,224,139,129,130,79,54,243,14,222,166,52,244,245,29,57,38,128,23,203,231,230,151,142,188,219,91,1,142,220,172,35,56,199,92,112,115,212,99,42,18,47,249,238,56,61,124,152,9,250,112,131,159,
+99,199,231,64,118,39,238,201,232,63,112,199,63,92,247,252,123,210,132,231,4,73,223,164,28,129,244,243,57,250,254,158,160,15,11,25,24,55,106,49,211,247,86,254,227,24,49,241,199,31,225,78,217,25,0,253,174,
+51,211,173,181,179,30,61,246,112,125,7,3,240,165,16,59,114,22,92,28,100,136,0,207,110,130,96,56,24,32,147,199,106,145,108,164,198,86,41,15,185,137,120,60,103,147,56,247,246,24,235,234,1,9,141,23,3,237,
+177,243,140,15,178,196,0,61,186,14,184,250,125,120,197,41,242,129,57,190,198,121,35,200,64,7,115,216,99,244,207,94,64,197,75,246,54,44,70,198,250,152,144,119,247,184,236,121,198,115,207,110,206,91,25,
+179,196,100,159,80,145,6,199,56,193,55,4,113,193,200,35,235,192,36,2,184,104,215,31,233,163,175,241,34,142,113,255,0,93,6,122,246,3,143,126,67,214,120,198,79,218,144,242,115,152,251,116,32,97,200,4,231,
+166,224,64,232,58,213,143,177,206,58,174,49,220,172,67,156,129,212,78,71,7,158,158,189,186,42,195,40,39,160,231,39,253,78,15,78,226,97,250,15,198,128,34,243,160,234,183,80,30,123,166,79,7,145,131,112,
+189,79,4,123,99,28,112,225,115,2,147,254,147,22,115,128,60,176,167,175,25,63,106,56,39,24,254,163,24,22,4,83,103,8,135,131,144,0,132,114,125,3,77,207,78,249,199,127,90,5,173,209,39,247,83,112,127,133,
+173,199,95,113,48,244,237,158,254,162,128,33,251,108,96,228,92,46,59,227,203,227,190,14,235,131,219,212,122,83,126,223,110,120,50,147,211,145,228,31,212,72,72,228,127,46,188,212,230,11,208,72,242,102,
+60,127,126,220,227,24,231,155,146,113,208,103,24,3,4,251,52,197,124,185,111,42,64,48,70,119,193,158,228,127,203,206,9,244,232,59,1,234,1,9,212,109,20,103,123,156,114,118,152,199,95,112,231,30,196,31,175,
+124,47,246,157,145,237,51,147,156,102,100,63,137,37,199,76,158,57,3,24,236,115,38,39,63,125,100,30,185,149,0,255,0,210,133,28,103,233,156,14,152,164,9,43,30,60,192,112,79,252,125,42,131,249,220,231,60,
+123,158,227,208,128,32,190,177,61,109,228,98,7,121,162,199,108,99,15,156,145,158,167,28,100,231,138,112,186,178,35,254,61,166,25,29,167,132,14,156,113,146,121,62,252,82,152,229,0,2,88,147,128,63,210,223,
+62,128,18,183,62,157,113,143,92,244,203,90,33,206,238,190,215,108,78,125,193,185,39,35,29,122,116,236,65,160,9,5,197,153,255,0,151,91,172,119,197,212,25,199,174,25,212,113,159,95,198,158,36,179,61,32,
+188,25,228,102,107,70,192,245,255,0,90,70,58,242,63,165,84,49,70,122,198,205,245,185,126,113,215,5,102,193,35,177,192,227,143,164,109,4,68,228,66,48,115,255,0,47,50,131,140,117,198,252,231,57,207,233,
+192,201,0,208,243,45,135,221,183,185,35,222,123,97,146,113,198,4,135,131,145,237,192,231,20,160,196,79,252,123,221,0,127,233,189,187,14,158,243,15,111,175,211,138,201,251,36,36,130,86,52,206,51,155,137,
+251,231,174,37,32,19,140,147,140,231,169,201,230,69,179,128,103,113,132,96,112,222,125,207,183,117,141,143,108,156,103,211,218,128,52,2,3,141,176,207,223,4,73,22,120,199,63,44,228,140,30,227,244,163,201,
+148,227,108,87,91,79,76,74,167,32,253,36,25,61,137,199,60,17,197,83,91,120,71,73,109,192,231,254,90,220,28,251,228,219,30,231,154,83,111,24,193,19,89,28,242,115,44,231,240,230,211,130,123,119,62,148,1,
+160,182,147,17,196,19,145,239,60,99,168,245,98,195,128,122,231,191,177,169,150,206,80,191,234,38,24,224,255,0,165,32,238,50,0,12,1,233,216,19,143,198,178,188,149,57,196,150,67,29,138,204,223,78,77,152,
+28,31,95,108,28,212,130,220,50,131,231,90,96,127,118,55,252,73,255,0,66,57,206,58,255,0,90,0,211,22,238,15,250,137,249,255,0,167,136,138,254,3,57,31,94,57,234,79,117,54,172,196,143,38,96,57,198,110,33,
+3,142,115,195,28,122,99,169,231,167,65,67,201,11,202,203,110,56,24,59,31,167,30,150,35,175,28,103,3,166,71,121,18,57,7,42,246,188,147,247,144,142,113,131,130,109,71,82,56,245,239,233,64,22,126,196,224,
+229,98,148,145,200,38,238,53,199,175,126,112,58,119,160,218,74,223,121,103,24,224,15,237,24,200,233,131,140,146,71,108,243,249,118,141,32,156,117,146,211,29,192,231,29,249,38,30,164,103,61,184,207,97,
+139,43,28,195,248,237,207,81,242,196,228,240,113,218,3,128,8,238,58,244,52,1,15,216,27,57,113,41,24,224,27,208,63,34,164,228,30,15,108,114,61,13,88,142,205,122,148,147,175,31,233,204,72,247,202,128,57,
+250,227,219,128,104,45,42,140,1,30,112,48,66,74,9,199,209,19,147,158,184,238,49,138,118,101,97,146,177,227,25,226,71,66,196,244,229,176,127,60,117,247,197,0,74,182,169,159,154,54,97,158,247,18,19,223,
+60,134,3,39,253,211,235,83,8,34,94,4,97,126,179,200,72,247,60,143,160,199,99,143,122,170,34,39,147,16,31,73,152,244,228,103,230,199,29,193,233,156,142,156,155,57,36,18,6,79,222,145,129,39,142,127,214,
+227,7,156,100,14,157,5,0,92,242,87,32,40,7,159,239,204,71,160,206,89,65,246,192,239,220,102,143,36,122,199,131,253,231,112,70,15,60,43,130,9,231,175,35,215,189,86,11,254,208,7,177,38,82,0,199,28,172,227,
+183,28,103,250,83,192,255,0,106,12,114,6,75,146,79,111,249,108,91,169,25,234,127,2,13,0,74,35,84,231,124,64,12,242,100,156,142,15,92,249,184,192,24,231,57,239,144,106,77,232,6,11,194,125,15,250,81,233,
+192,57,87,36,250,159,94,220,158,26,168,184,229,161,28,127,118,83,147,249,156,125,6,120,231,214,151,202,65,199,153,22,78,114,54,58,254,57,218,127,253,127,134,64,30,37,129,121,223,27,30,184,217,123,142,
+189,58,103,240,206,0,39,35,210,69,184,78,49,229,113,233,246,133,199,224,192,14,253,115,156,253,42,33,9,193,42,240,30,135,230,220,62,153,224,145,239,245,57,165,217,46,62,95,179,103,60,176,18,49,199,127,
+249,103,198,48,49,235,211,140,19,64,18,155,129,142,36,78,122,127,173,7,28,245,59,250,126,7,156,241,199,45,243,164,61,212,142,185,14,192,142,152,199,35,215,212,140,113,193,197,52,68,223,196,208,131,198,
+118,197,39,39,169,231,201,61,249,224,142,148,161,0,193,44,164,244,3,200,147,241,228,167,30,163,7,7,24,57,199,32,13,15,41,57,249,14,122,0,237,158,7,76,23,3,166,71,56,231,4,2,42,79,52,228,111,242,134,71,
+86,100,231,166,62,243,113,214,158,146,54,14,35,82,56,0,132,112,112,61,182,18,63,47,111,155,20,25,91,63,234,155,219,146,61,187,194,122,123,231,167,78,77,0,11,54,115,134,183,56,192,39,206,80,59,156,16,24,
+117,25,234,7,242,169,69,203,1,133,54,231,145,193,146,51,208,127,186,217,31,254,191,164,34,87,255,0,158,50,3,198,126,78,220,245,253,199,35,62,163,183,20,211,35,103,238,74,15,25,28,228,117,244,132,17,211,
+140,103,0,15,196,2,199,218,37,60,237,181,7,156,0,98,193,231,185,242,147,56,199,57,200,28,246,235,47,219,110,6,0,142,212,142,248,107,126,49,249,28,15,95,192,119,197,69,157,186,15,56,158,163,6,64,123,231,
+141,190,220,28,100,147,199,179,205,195,14,51,48,7,160,203,96,99,216,198,192,243,244,28,140,244,52,1,104,93,202,7,204,182,224,227,214,51,201,61,200,200,61,59,250,254,78,23,243,227,228,251,54,51,145,140,
+15,124,240,171,144,62,191,167,21,84,74,204,120,146,127,127,157,23,142,192,177,137,79,81,207,63,137,237,34,131,198,11,19,156,124,215,17,147,215,232,114,115,233,158,79,52,1,99,251,82,124,225,158,221,122,
+96,128,163,191,35,238,169,29,115,233,235,214,148,107,18,19,143,58,21,206,112,3,168,231,24,32,241,158,252,142,14,113,81,141,227,56,84,4,96,101,167,65,211,30,170,123,227,28,146,49,78,2,66,15,207,108,189,
+1,13,60,68,231,241,66,79,31,128,7,241,160,9,70,173,49,60,93,198,24,30,215,1,79,29,176,51,245,232,71,183,3,8,218,172,163,131,117,33,62,215,59,215,191,172,121,35,62,248,221,66,196,231,254,90,91,243,192,
+27,163,32,113,215,34,50,122,243,238,7,214,129,12,185,251,208,55,176,149,87,175,112,12,29,64,28,227,60,254,116,0,229,214,46,14,63,210,39,0,28,15,222,100,103,142,0,16,228,103,62,164,28,14,71,103,255,0,106,
+78,121,251,76,227,28,97,100,112,51,192,231,108,75,233,158,128,140,243,77,242,165,201,1,97,110,185,2,104,143,211,1,162,28,228,158,131,174,41,126,207,35,15,248,245,137,134,51,159,62,32,63,15,244,115,131,
+248,142,191,141,0,39,219,229,115,204,243,145,207,89,38,24,199,166,34,231,168,224,228,138,145,111,27,143,222,76,73,238,100,144,100,103,166,76,64,253,50,14,79,126,105,4,50,112,77,148,120,28,146,39,200,239,
+140,237,128,15,166,48,125,79,162,152,176,3,53,130,30,188,153,36,35,220,130,35,198,123,247,60,118,206,104,1,198,225,206,11,60,184,62,178,54,56,199,99,158,49,131,211,177,231,28,23,44,177,49,7,204,156,183,
+79,245,128,145,245,35,105,231,3,161,56,227,156,145,136,138,170,131,139,69,92,147,130,3,146,62,185,132,3,211,156,146,113,239,200,143,112,28,11,96,125,206,114,9,0,99,6,60,113,201,3,253,172,118,201,0,182,
+10,62,48,215,28,17,156,16,228,17,220,112,72,252,58,226,159,133,3,143,180,147,142,49,30,113,211,7,3,29,253,79,29,200,226,170,2,196,12,90,201,223,24,46,56,245,24,24,31,247,214,7,25,56,20,161,31,156,65,50,
+246,231,204,25,250,103,36,159,215,211,161,192,5,129,146,73,2,224,244,229,161,144,122,227,238,204,164,245,244,56,28,244,167,115,233,48,233,156,199,49,192,245,201,185,79,111,214,171,249,110,7,250,166,201,
+198,3,52,190,220,252,164,113,142,157,79,111,122,95,42,67,140,33,94,132,31,244,166,233,244,118,250,116,207,32,12,80,4,216,126,120,144,240,56,17,92,123,122,106,11,198,125,71,28,18,105,8,98,57,23,25,198,
+6,33,187,227,184,31,241,254,71,124,113,232,70,72,230,162,242,166,227,15,34,224,113,145,115,199,92,158,99,36,251,231,61,179,197,68,98,184,28,172,220,12,245,134,124,156,103,57,45,110,221,125,248,62,180,
+1,57,19,127,12,119,68,123,69,121,156,112,6,63,211,8,201,28,100,103,57,199,7,138,132,249,224,130,97,186,29,126,250,94,147,211,169,255,0,73,227,167,234,7,214,54,19,228,15,53,7,63,243,202,110,158,223,232,
+221,114,56,227,62,217,234,17,120,167,30,122,96,159,226,138,126,125,1,38,200,169,199,113,250,129,64,18,15,56,101,140,51,231,185,197,240,63,173,209,200,246,201,238,78,56,203,115,34,255,0,203,188,132,117,
+255,0,151,240,73,236,70,110,186,156,117,30,195,60,208,35,212,24,96,74,132,123,65,41,199,229,167,145,199,25,246,28,246,202,152,117,18,115,230,194,73,193,33,237,174,78,113,142,159,241,45,193,29,59,231,159,
+106,0,12,206,167,155,89,58,99,113,55,185,201,255,0,122,228,241,129,223,174,41,60,198,32,183,217,242,59,18,46,143,166,114,12,167,156,96,147,206,63,146,52,58,142,112,179,91,241,215,54,215,42,127,93,44,240,
+57,236,64,235,145,147,81,180,58,152,28,188,4,15,72,46,73,57,198,58,233,93,71,60,28,28,115,145,64,18,239,115,201,183,218,189,137,142,231,28,243,158,100,56,207,126,184,193,234,105,64,118,35,247,99,110,50,
+9,89,15,228,25,91,211,175,60,117,25,226,171,24,239,177,134,120,254,162,218,228,116,244,198,151,147,219,156,125,113,131,147,253,55,180,150,224,140,117,130,111,94,164,255,0,102,174,63,199,129,64,19,97,192,
+56,72,219,158,241,198,121,233,252,113,115,142,115,158,152,234,58,212,129,166,228,98,16,56,31,50,91,12,119,227,33,15,65,156,227,240,245,173,230,93,96,238,154,62,56,249,109,229,25,231,129,147,100,160,228,
+244,30,167,159,101,72,238,28,147,231,142,6,112,45,29,192,24,255,0,175,70,7,35,61,6,122,243,212,80,5,156,185,234,214,185,237,152,237,155,24,231,61,8,29,250,250,116,235,74,68,160,116,182,37,184,255,0,85,
+98,115,255,0,142,250,16,56,61,126,149,15,151,113,147,153,58,244,255,0,65,144,113,208,242,108,135,166,1,199,78,115,140,224,49,56,225,165,198,127,189,97,33,200,236,50,214,131,190,0,228,123,99,20,1,33,73,
+191,233,223,219,16,88,142,127,239,217,28,241,208,103,222,162,104,231,238,246,171,236,97,176,254,177,103,191,95,254,189,70,97,60,21,186,0,158,0,251,3,113,249,195,250,250,228,143,81,9,137,191,231,237,249,
+234,5,139,12,31,113,229,15,199,168,62,249,52,1,41,73,23,150,107,98,71,39,106,217,2,121,199,81,6,64,60,100,103,7,222,153,137,49,157,208,1,198,115,29,161,231,220,152,7,60,129,255,0,215,39,17,24,254,238,
+111,29,64,206,127,208,8,233,140,134,196,68,114,57,206,51,219,29,13,60,68,15,31,109,108,142,132,89,56,235,208,127,169,30,188,117,61,125,104,1,174,178,227,37,160,61,134,5,178,247,237,136,127,207,74,140,
+128,126,244,145,1,198,71,155,2,246,31,244,207,219,140,15,174,120,167,152,92,116,188,99,143,75,34,49,235,207,174,61,113,131,193,245,168,204,18,158,69,211,17,201,36,217,191,65,238,36,252,62,191,134,0,20,
+172,56,31,190,143,142,78,39,129,155,56,247,133,135,29,58,103,167,24,234,198,16,244,89,128,224,224,137,45,127,249,23,3,254,250,29,63,10,105,133,198,119,93,140,99,56,54,179,3,206,123,239,35,211,31,210,162,
+194,255,0,21,212,99,29,73,89,23,62,192,51,158,189,71,78,253,115,144,0,246,49,128,9,185,32,142,51,230,195,142,72,228,237,182,35,208,14,222,188,230,154,93,7,91,188,113,156,238,143,36,31,76,90,16,58,122,
+143,173,70,81,58,139,168,206,122,224,55,30,188,145,211,223,61,125,243,75,176,0,49,115,25,199,81,243,14,120,63,221,199,229,208,247,244,0,120,120,0,255,0,143,229,199,28,110,81,233,206,69,166,115,219,175,
+39,61,136,193,186,35,243,11,129,215,143,157,243,143,127,244,47,195,130,58,122,17,152,78,7,38,225,83,36,245,102,199,7,166,10,147,245,28,115,200,60,1,78,13,23,123,152,14,8,4,29,248,0,12,116,199,99,199,227,
+156,102,128,36,12,135,134,157,72,35,24,50,56,227,223,253,17,142,127,14,189,105,24,38,78,217,35,110,135,153,100,238,79,60,233,252,14,191,142,105,172,241,113,137,173,84,224,99,116,111,143,175,45,223,251,
+223,203,156,166,232,200,35,206,181,96,58,129,3,28,103,183,114,125,199,29,253,50,64,30,84,28,127,168,108,122,238,60,245,193,39,79,199,25,199,29,71,126,160,35,36,191,220,183,219,233,183,0,126,86,71,131,
+143,97,248,17,77,2,30,162,107,101,62,191,99,99,244,63,123,158,58,113,199,174,120,164,194,143,187,113,104,6,127,134,205,212,231,158,114,1,29,186,244,233,237,64,3,6,200,220,150,132,118,201,152,99,167,97,
+97,253,112,71,80,121,168,153,91,28,71,97,143,83,36,185,62,188,255,0,103,31,78,131,29,255,0,9,74,185,227,237,80,112,0,31,232,114,142,222,184,231,240,198,58,113,198,34,111,49,65,255,0,77,133,122,3,139,55,
+92,122,125,249,87,61,65,233,187,174,120,226,128,26,99,124,99,203,176,57,60,225,156,28,245,255,0,160,119,94,157,134,7,99,217,134,57,14,71,217,172,72,245,5,255,0,64,52,236,122,117,36,255,0,42,87,146,81,
+211,81,143,129,206,96,113,211,174,64,115,142,125,243,215,142,56,143,50,182,9,212,97,62,198,41,187,117,3,113,234,59,103,29,251,102,128,16,195,49,25,251,61,152,199,162,202,125,250,125,133,51,207,225,140,
+247,228,68,240,201,156,27,123,77,199,166,216,164,39,56,198,115,246,66,6,121,56,235,200,167,176,115,146,47,208,123,8,229,227,142,64,195,158,189,241,193,237,147,81,178,92,146,10,222,140,30,226,57,84,14,
+120,56,60,100,250,100,113,200,235,146,1,27,67,32,235,5,191,76,12,70,195,56,244,45,106,1,245,61,178,79,52,207,43,209,34,82,0,56,82,195,158,65,4,172,24,61,250,17,211,6,165,41,114,15,252,127,128,59,224,184,
+61,189,206,49,200,56,227,234,5,38,203,142,79,246,128,60,127,207,121,23,156,145,208,110,199,95,78,113,207,90,0,139,103,172,42,199,28,252,242,41,28,227,60,218,17,237,145,232,70,123,83,26,48,79,17,70,24,
+99,171,206,112,123,12,11,80,59,244,231,167,165,73,182,227,189,226,224,158,127,210,228,25,25,7,166,19,167,226,78,58,17,154,67,230,14,183,11,158,1,197,206,115,244,204,131,216,142,153,3,214,128,34,42,83,
+31,42,231,4,225,76,227,175,63,243,235,193,199,61,79,7,234,106,50,234,114,25,14,114,7,18,220,169,201,245,34,14,188,118,199,225,210,165,98,224,100,207,156,142,113,57,198,72,236,4,252,250,241,199,169,170,
+229,179,213,215,211,230,105,9,235,199,63,104,80,65,57,233,140,250,115,64,14,13,8,201,218,224,15,250,111,117,144,125,137,69,0,30,220,28,118,238,105,219,237,241,130,36,99,158,162,107,156,143,168,216,222,
+156,231,243,244,140,186,119,96,49,217,82,66,6,56,255,0,159,179,238,58,145,234,121,230,54,32,243,146,192,18,121,89,199,175,113,120,78,121,245,62,153,61,40,2,95,62,220,30,147,122,113,60,131,3,130,79,250,
+158,157,120,199,108,211,30,230,1,157,173,48,3,3,38,119,60,240,79,30,72,206,71,211,28,212,69,148,28,238,198,63,217,187,231,158,249,188,31,67,200,246,231,172,111,36,125,203,48,233,247,46,155,30,163,2,244,
+140,243,146,120,236,120,20,1,49,158,19,212,200,123,144,68,172,58,158,114,98,218,122,28,117,230,152,211,91,30,190,104,3,174,22,79,207,2,32,8,231,158,189,241,142,106,179,24,135,247,186,103,253,77,201,207,
+29,8,55,13,245,224,115,211,56,201,49,121,144,158,8,110,6,112,45,46,79,28,113,143,59,175,224,125,72,245,0,180,39,181,0,109,18,228,246,17,200,15,110,187,208,17,244,164,243,173,137,25,251,79,92,156,41,32,
+115,223,32,31,83,201,227,175,97,154,102,84,227,106,75,233,255,0,30,151,32,250,1,196,163,211,235,223,167,32,220,9,39,99,244,36,131,109,118,167,235,159,53,129,57,232,7,167,67,64,22,255,0,112,217,199,218,
+179,212,252,128,17,219,7,239,14,254,135,56,231,154,67,180,103,139,128,56,63,48,24,32,99,182,206,248,199,3,7,222,171,121,106,65,56,108,158,163,202,184,28,126,45,250,122,251,211,13,184,99,128,146,113,216,
+139,144,62,184,13,140,31,229,140,250,80,4,230,72,179,202,73,198,63,133,73,250,159,221,28,240,122,100,126,89,195,15,150,115,132,147,234,85,113,207,208,122,30,73,198,51,207,90,140,91,12,238,104,65,24,60,
+149,102,35,24,245,44,125,254,99,140,158,64,230,164,16,161,57,48,169,199,35,228,3,182,127,189,193,231,167,191,29,113,64,0,88,198,73,82,64,233,144,171,252,142,78,15,94,73,3,140,244,53,32,100,254,24,206,
+112,1,249,142,63,82,113,250,227,212,102,152,45,209,142,86,8,199,251,94,83,146,120,7,174,242,1,252,249,234,113,140,72,45,192,255,0,150,105,199,39,8,195,240,63,190,4,119,198,71,185,237,64,15,243,24,16,85,
+14,7,93,196,183,31,168,247,251,189,57,228,116,113,154,235,3,106,224,116,0,46,65,30,251,160,110,65,237,215,243,197,71,228,19,143,221,130,79,125,160,17,212,131,147,116,189,125,249,233,128,69,6,213,152,116,
+65,131,198,89,1,193,250,221,158,49,239,239,142,162,128,38,89,110,177,254,172,54,122,143,37,72,224,116,63,184,7,167,76,12,28,96,231,128,36,91,137,200,230,5,207,28,249,10,196,126,30,73,227,35,166,115,223,
+154,171,246,51,232,163,174,127,123,0,227,167,59,174,58,143,204,227,140,83,133,178,140,128,203,158,114,51,17,227,166,114,39,234,61,128,245,239,64,22,77,196,196,242,145,140,158,51,105,11,126,166,46,59,140,
+1,129,158,70,105,187,174,156,240,169,208,144,69,170,47,112,7,2,53,252,57,192,30,148,137,2,40,7,122,253,62,67,208,158,49,246,129,211,56,224,117,201,60,84,161,97,201,45,41,24,28,21,69,39,183,80,183,24,234,
+1,228,245,57,193,200,160,6,171,93,168,232,131,143,249,225,17,29,243,252,45,199,191,212,119,205,60,77,117,254,201,207,113,111,9,56,193,227,30,82,131,156,231,28,12,117,227,138,9,132,130,4,146,244,198,124,
+161,215,223,253,35,215,241,193,250,83,55,46,73,223,38,1,244,69,36,242,50,73,155,129,219,144,127,49,64,18,9,110,51,146,19,220,27,107,93,167,56,244,136,227,57,25,237,142,199,156,49,165,144,240,219,49,237,
+13,170,99,0,255,0,176,164,142,7,76,241,223,3,136,140,137,158,146,159,163,149,233,215,56,148,14,125,70,56,235,78,50,67,143,155,205,25,255,0,166,207,207,81,206,46,51,233,215,166,123,208,2,239,110,224,0,
+122,101,109,241,215,168,43,34,12,30,122,96,119,80,58,7,110,97,157,172,61,56,48,168,252,64,186,35,169,235,140,123,211,4,176,41,227,207,99,142,79,159,40,60,245,225,102,201,232,59,227,167,94,13,60,92,66,
+49,133,144,158,120,105,46,113,232,58,74,58,227,175,95,95,96,6,19,41,31,43,174,64,56,31,232,196,140,12,14,183,24,57,207,92,126,125,218,5,207,82,88,241,213,90,220,100,244,232,38,56,3,219,175,113,197,76,
+110,23,248,96,114,72,235,231,220,168,246,227,237,32,113,215,61,243,76,55,14,120,16,63,225,61,200,239,211,38,224,145,215,142,222,167,165,0,55,117,200,232,178,241,158,119,91,18,73,201,232,210,1,143,114,
+71,94,51,214,154,100,188,56,34,43,166,231,56,45,101,142,185,227,14,79,25,233,220,142,122,112,239,54,108,241,28,171,131,255,0,63,119,31,95,249,238,62,188,244,235,142,41,219,230,99,202,73,199,253,68,110,
+198,79,251,65,103,36,3,142,152,236,49,140,102,128,35,255,0,75,96,115,20,252,231,39,22,100,14,15,247,103,7,215,160,207,31,90,112,251,88,229,82,228,14,225,69,177,39,39,56,255,0,143,145,140,103,39,29,9,227,
+52,242,242,243,145,48,237,129,169,94,103,235,147,50,241,212,30,51,192,233,214,148,18,121,100,152,100,3,131,127,114,84,254,15,112,114,113,130,78,7,92,125,64,34,47,120,8,253,213,241,24,237,29,177,57,252,
+111,185,250,145,219,233,78,18,94,16,63,115,124,127,237,157,182,121,29,8,251,99,126,67,145,131,158,41,204,231,180,110,123,113,121,57,39,25,192,255,0,88,15,60,103,25,7,60,231,28,166,114,62,104,8,227,159,
+244,153,15,60,117,203,117,239,201,252,77,0,35,27,161,193,181,191,56,3,36,71,108,192,31,167,218,58,99,223,241,168,195,207,212,218,234,39,167,252,177,181,29,125,113,119,140,126,94,190,244,252,39,4,194,115,
+234,183,71,60,227,0,128,253,70,49,131,142,72,160,152,49,131,17,250,155,135,200,57,201,228,59,99,242,246,232,51,64,12,243,79,86,181,212,122,227,253,84,29,115,145,255,0,47,234,127,0,49,156,82,139,128,48,
+26,211,81,199,114,96,136,49,227,29,78,165,219,233,198,121,36,210,237,182,237,9,235,207,250,75,143,204,135,83,250,227,208,211,135,217,134,20,218,131,198,64,107,167,56,4,117,25,157,56,36,147,206,87,56,35,
+158,128,7,159,30,114,45,181,33,159,250,119,82,63,12,106,39,25,245,24,29,185,238,227,56,35,136,53,34,49,198,97,43,156,118,255,0,144,145,25,235,216,125,70,41,133,109,134,74,217,197,145,220,203,43,30,189,
+79,250,72,193,30,228,227,159,83,81,237,182,111,191,103,7,81,144,211,55,92,147,147,186,235,144,58,240,51,233,144,113,64,18,249,146,16,0,182,212,177,220,136,228,35,212,231,109,243,17,216,123,253,104,166,
+8,108,207,31,99,180,12,115,140,187,115,239,255,0,31,59,178,126,131,184,231,57,162,128,39,9,126,62,237,178,128,58,226,43,128,59,156,243,145,208,254,167,165,13,22,160,122,91,231,3,4,8,174,51,211,35,238,
+145,207,76,3,192,244,233,82,254,231,57,251,60,99,215,49,94,144,57,3,178,12,103,223,24,228,231,168,160,181,177,4,53,178,19,142,0,142,253,49,219,7,35,185,60,246,207,181,0,86,242,47,199,6,12,19,253,228,187,
+227,240,220,15,249,250,208,34,188,29,99,65,219,253,93,233,193,199,79,150,76,122,123,243,211,210,97,37,160,99,139,68,62,135,55,223,203,204,92,31,94,1,246,25,52,166,75,38,221,254,136,128,116,206,111,135,
+62,188,185,207,64,112,15,76,117,193,160,8,196,51,183,85,132,116,35,253,26,241,176,56,201,251,199,57,227,169,35,62,153,160,195,40,56,41,109,207,118,182,156,12,143,247,137,35,143,231,208,118,121,251,7,123,
+116,25,255,0,106,243,208,250,202,113,250,14,61,233,54,88,177,199,147,211,56,1,238,193,233,219,247,203,158,217,199,25,235,64,13,54,243,227,10,45,199,63,243,206,97,223,145,242,128,7,112,71,108,243,200,168,
+218,218,96,121,54,220,103,170,205,143,195,41,207,81,193,231,189,79,178,207,128,34,149,125,195,221,227,142,220,202,223,76,30,61,41,118,218,12,156,206,7,191,218,191,246,87,232,61,125,206,114,104,2,153,183,
+110,127,121,110,113,158,66,185,35,142,163,17,28,126,189,122,212,126,74,242,26,104,49,207,6,57,59,118,193,140,245,233,156,130,59,245,53,125,133,191,240,75,40,244,249,174,135,254,204,71,183,32,142,222,130,
+162,37,7,252,181,62,229,204,237,211,30,160,244,25,231,7,183,90,0,166,109,226,4,1,113,107,147,212,24,101,0,118,36,147,9,253,61,186,116,165,242,98,4,15,180,218,145,147,140,70,224,244,198,115,229,228,227,
+177,244,227,29,106,82,233,200,23,17,41,57,228,249,190,135,168,10,8,207,28,31,199,154,85,56,255,0,151,152,199,82,14,88,99,183,241,119,30,184,30,190,192,2,1,2,99,62,125,177,228,112,3,169,235,223,116,7,57,
+238,115,233,238,67,188,168,192,200,150,28,128,115,201,25,233,255,0,76,0,227,235,142,184,239,78,37,137,98,183,73,142,123,168,25,28,12,147,38,70,71,66,50,63,16,48,211,230,144,72,187,139,4,96,13,208,96,241,
+211,239,31,161,231,62,189,121,0,2,140,145,189,7,25,4,72,195,175,3,162,140,103,182,59,99,28,156,83,89,209,115,186,101,29,1,37,229,192,239,253,229,252,200,231,167,24,57,118,103,28,125,162,0,56,239,3,116,
+192,60,249,128,100,246,198,15,7,61,242,140,196,253,235,187,49,216,110,16,140,99,212,111,235,158,122,251,30,162,128,26,39,181,233,246,165,30,217,118,36,253,124,192,59,228,250,159,94,113,38,109,73,200,152,
+55,190,215,201,207,96,124,195,215,142,131,191,83,77,86,92,224,220,233,205,158,197,98,62,159,244,212,247,253,57,25,236,191,33,224,205,167,3,220,17,30,0,231,143,245,185,231,158,221,120,25,235,64,15,17,219,
+17,144,200,196,231,130,236,73,252,212,156,129,239,210,148,69,22,56,85,63,73,24,224,243,212,0,49,207,95,211,189,3,201,24,6,125,51,112,235,141,160,247,227,30,105,193,32,126,29,207,171,194,219,158,178,105,
+236,15,66,93,15,254,132,224,99,62,195,232,104,1,162,24,70,115,22,122,244,115,140,156,231,212,254,189,56,205,52,195,7,63,186,97,211,163,255,0,67,32,231,156,112,58,247,60,211,202,91,116,13,167,227,175,33,
+95,63,130,187,99,167,39,7,243,168,252,155,92,124,194,192,19,131,247,48,121,255,0,128,30,125,79,230,40,1,13,189,185,198,119,15,80,175,142,71,174,92,147,215,28,14,58,142,244,162,218,215,156,150,255,0,129,
+50,18,71,94,234,223,254,188,123,83,124,155,44,116,180,247,59,27,25,207,178,99,233,211,183,173,52,219,218,103,0,218,16,122,2,29,87,158,255,0,50,125,127,14,222,128,11,246,59,70,206,226,135,145,140,189,184,
+32,140,156,229,161,57,200,39,159,95,126,41,255,0,96,180,198,54,228,16,121,223,111,207,65,201,91,126,249,233,131,212,246,206,96,251,36,7,238,165,155,12,99,1,75,115,207,76,167,30,216,60,145,205,72,45,35,
+224,136,45,134,49,200,11,201,236,73,32,144,112,51,144,115,232,123,128,5,251,13,162,244,143,156,127,207,68,60,147,198,51,107,143,205,189,179,232,27,88,0,227,112,236,112,98,199,208,230,17,215,255,0,214,
+41,166,212,30,54,192,6,61,83,229,234,14,14,195,199,225,248,129,213,226,219,209,151,56,39,8,34,200,255,0,199,49,130,114,1,7,220,250,80,4,98,24,20,156,180,128,123,121,108,61,7,247,113,140,17,207,174,61,
+169,194,56,0,199,155,41,239,141,176,129,236,63,214,47,191,32,112,122,142,197,69,163,114,119,17,237,132,253,78,1,56,231,158,122,247,24,20,245,182,152,12,121,164,14,223,62,57,24,192,24,97,142,157,179,211,
+61,232,1,155,96,7,239,176,207,124,198,49,156,231,161,32,103,29,65,166,254,235,248,100,44,115,253,232,200,61,123,111,7,223,211,7,184,201,171,66,7,57,2,235,7,208,182,120,252,28,28,116,207,29,114,123,10,
+127,147,50,228,11,148,247,220,195,57,255,0,190,198,63,63,235,144,12,242,19,175,238,241,200,251,231,61,57,251,179,130,56,63,253,124,82,13,132,28,108,200,31,40,197,193,200,231,251,183,94,231,61,201,24,173,
+61,215,35,143,61,72,199,76,177,31,164,184,39,175,124,254,84,190,100,227,239,76,192,1,206,30,117,28,112,49,178,66,71,110,59,140,14,216,0,25,37,100,108,99,156,158,15,149,123,158,15,94,46,27,131,206,125,
+71,168,167,4,184,199,222,96,59,1,13,216,61,121,198,101,200,246,36,228,122,26,213,221,57,192,243,229,3,190,30,245,189,200,4,56,245,252,63,50,94,169,51,28,137,165,99,147,130,127,180,137,252,54,200,112,63,
+51,156,243,142,128,25,66,57,143,57,144,246,198,203,182,227,208,229,199,35,36,158,113,233,79,16,206,120,17,78,50,51,159,34,228,142,78,79,87,227,128,59,28,126,24,173,54,73,198,63,214,56,218,121,35,86,56,
+61,255,0,229,232,115,245,231,175,21,22,214,254,37,7,61,191,226,104,167,61,243,153,207,227,159,167,57,20,1,67,236,183,56,63,232,242,158,114,15,151,119,156,227,176,0,130,58,126,185,167,165,164,249,32,195,
+40,206,122,91,221,48,28,251,166,61,57,3,185,230,172,236,4,114,184,228,140,102,252,140,240,7,62,103,83,215,7,161,235,128,69,2,50,122,46,123,96,13,64,116,30,163,39,56,199,175,65,140,145,64,16,125,146,80,
+49,228,79,198,7,252,122,221,158,61,136,140,15,199,4,125,51,196,139,102,231,159,42,112,7,111,178,220,123,240,115,30,70,57,233,207,175,28,211,204,109,221,73,4,119,55,253,7,24,0,156,231,211,131,201,247,167,
+139,98,78,10,100,142,197,46,71,28,117,222,135,212,241,147,249,80,2,45,152,94,118,93,14,184,219,111,112,56,231,174,83,142,189,179,129,223,52,239,179,1,130,82,231,130,121,48,190,50,73,224,6,65,158,153,206,
+125,243,208,211,197,168,237,180,113,206,232,238,15,166,57,48,140,103,24,238,115,234,50,104,54,174,7,252,177,199,114,209,79,208,99,161,242,56,247,250,247,160,6,249,48,131,204,114,185,235,131,31,235,219,
+191,95,92,14,189,155,181,23,165,172,135,3,146,97,83,129,158,255,0,48,207,80,7,76,14,58,83,90,60,31,152,196,58,28,175,154,50,79,95,189,111,223,252,128,115,72,85,6,63,124,189,57,27,185,7,232,109,91,183,
+57,60,113,211,158,64,37,93,191,243,236,0,63,222,134,49,158,185,206,58,143,76,113,142,51,200,53,34,136,0,207,144,128,244,251,145,254,28,22,29,123,158,120,7,233,85,213,23,60,72,228,159,238,152,143,95,118,
+181,25,30,195,57,227,29,41,205,1,199,250,199,36,240,1,75,124,243,143,75,98,6,63,253,89,236,1,96,61,184,3,247,73,187,140,229,21,125,112,70,39,29,248,233,192,199,189,56,73,106,79,54,232,123,241,44,99,4,
+147,215,51,177,239,211,160,233,147,222,167,144,216,226,73,242,49,143,146,216,117,237,159,178,140,100,227,4,112,48,7,173,39,146,127,231,164,199,147,213,45,135,35,159,249,247,245,7,140,113,237,156,80,6,
+137,150,209,79,252,122,196,57,57,223,58,242,79,60,129,39,183,94,255,0,134,67,5,197,175,24,179,181,61,176,211,38,61,63,140,228,122,228,113,211,181,85,22,199,140,238,39,140,103,200,207,30,160,70,49,219,
+183,60,251,211,140,44,51,202,242,8,39,108,39,30,192,20,39,143,167,115,159,90,0,186,179,90,145,147,99,107,147,212,139,168,253,251,111,24,247,193,24,207,2,164,18,90,150,255,0,143,43,48,112,64,63,107,136,
+31,251,232,220,15,175,66,125,185,53,151,177,70,115,159,167,145,6,121,207,66,74,159,211,29,184,224,212,171,30,121,85,83,219,152,237,70,115,255,0,3,206,126,159,74,0,190,30,30,158,85,178,28,240,70,161,8,
+199,161,32,92,12,250,242,123,243,223,50,9,97,237,228,140,130,126,93,70,223,131,223,24,190,30,189,113,245,237,84,22,39,206,126,199,11,147,216,173,160,39,140,158,3,119,193,35,219,241,169,150,51,140,53,165,
+184,39,3,12,176,13,190,164,148,144,122,143,243,212,2,215,154,163,144,241,140,49,56,251,116,103,57,35,156,139,220,12,1,201,228,240,78,113,64,156,3,157,241,14,156,54,161,24,200,193,233,254,155,158,49,239,
+212,227,24,21,6,17,120,251,37,159,185,249,115,142,231,253,118,49,145,159,240,165,2,60,243,109,106,15,177,65,142,7,64,103,0,227,233,220,126,32,18,153,139,16,65,182,206,71,38,237,95,191,124,94,12,243,215,
+159,110,226,129,52,135,238,189,184,237,242,207,22,14,9,35,25,212,20,140,100,103,182,121,244,166,5,140,115,228,90,140,99,140,199,159,214,82,6,123,28,243,145,216,241,38,232,129,207,149,108,163,190,26,35,
+237,156,111,61,0,7,190,78,115,216,208,3,214,73,184,196,202,51,233,113,24,254,90,152,56,199,82,62,157,233,251,238,72,249,101,99,199,35,237,3,35,35,174,78,164,120,231,142,64,199,57,234,106,0,208,114,10,
+70,7,60,135,94,59,245,87,5,120,252,48,7,57,234,245,120,114,8,242,192,31,244,212,158,123,18,3,149,239,235,255,0,215,0,119,155,112,14,76,142,72,207,63,104,67,146,79,124,234,15,216,119,235,211,166,106,68,
+150,108,242,79,253,247,25,200,39,190,219,174,159,254,179,199,86,7,135,35,46,7,209,148,156,159,81,187,61,206,48,123,147,158,64,167,239,133,112,69,203,168,233,133,136,55,39,190,73,63,78,121,63,157,0,78,
+37,126,1,68,203,119,103,136,100,227,57,32,76,196,158,167,147,216,245,238,245,148,156,238,142,0,120,228,188,61,243,158,76,222,184,60,140,144,15,122,174,37,135,112,2,237,216,244,218,96,25,233,142,171,233,
+253,6,8,239,42,48,39,254,62,230,0,115,204,37,71,94,112,10,156,142,8,28,251,231,173,0,76,28,99,62,85,185,39,253,184,187,251,9,121,61,241,235,235,74,185,57,62,76,75,201,199,207,10,240,8,231,59,193,252,207,
+160,235,66,188,96,228,221,183,168,38,39,255,0,226,71,67,158,56,250,129,128,23,204,132,100,249,225,137,255,0,166,50,2,122,28,242,49,245,224,99,158,248,4,1,193,164,57,34,56,182,250,153,162,207,243,63,94,
+249,39,190,40,243,220,127,203,4,110,252,79,3,113,211,39,112,25,207,111,111,165,70,39,131,159,159,57,231,136,95,0,255,0,223,190,189,56,250,119,205,56,79,17,228,72,224,113,213,15,127,78,227,190,48,0,227,
+181,0,60,220,182,6,109,208,113,252,63,101,110,120,199,86,57,199,94,153,227,208,242,45,192,110,144,38,61,124,171,78,51,142,191,55,39,234,123,112,41,130,120,128,200,46,126,137,239,142,235,208,227,215,158,
+185,61,228,19,41,36,133,110,255,0,195,216,123,109,193,29,71,56,198,115,199,2,128,30,174,135,57,137,65,60,255,0,170,181,61,186,31,155,240,254,89,205,39,152,164,140,109,81,223,11,110,61,15,31,48,30,252,
+247,232,40,19,19,144,35,127,115,182,63,94,196,231,235,142,248,252,41,249,200,4,164,163,158,128,68,56,207,94,156,231,182,127,81,64,17,239,3,164,174,173,232,166,2,61,51,196,153,31,142,123,138,4,143,218,
+89,14,122,147,228,254,60,110,198,122,122,26,127,154,170,72,195,146,51,140,249,30,231,24,44,14,222,185,227,142,152,237,78,91,144,49,145,40,246,81,110,7,65,207,223,231,3,176,201,245,230,128,1,60,128,131,
+231,202,15,95,189,0,250,113,230,103,175,175,166,122,241,82,125,166,66,9,105,164,35,212,152,8,227,56,57,47,192,60,250,12,115,154,112,186,35,63,187,156,242,15,91,92,158,221,55,103,57,231,215,191,25,230,
+69,184,98,49,229,221,17,198,64,22,227,0,123,9,208,30,188,117,199,60,208,4,34,121,91,164,237,248,172,7,7,167,36,57,235,143,175,76,156,113,71,153,112,56,251,90,175,92,130,97,81,216,250,156,227,161,4,231,
+143,74,178,46,176,15,238,167,56,4,125,219,108,227,241,149,242,78,72,201,231,160,228,80,110,80,245,130,117,199,94,109,9,207,76,21,243,23,30,188,117,193,233,146,72,4,1,238,250,253,173,120,232,68,145,142,
+152,244,221,249,112,64,3,25,206,11,132,250,128,251,183,125,120,200,151,175,25,254,226,231,158,78,15,28,130,120,197,63,206,135,57,43,34,158,122,173,184,231,156,255,0,203,207,235,147,215,183,20,225,45,179,
+3,158,71,191,217,84,119,239,230,183,61,6,127,149,0,51,206,212,15,45,112,205,142,15,239,78,59,100,251,250,103,142,58,100,142,94,178,93,177,230,80,115,198,11,179,15,174,66,183,30,248,246,199,122,103,155,
+8,3,111,148,64,32,124,205,17,235,235,182,95,211,191,191,52,25,98,39,230,142,19,192,198,30,49,142,157,132,221,249,206,120,227,158,121,160,9,243,32,229,157,78,122,145,49,86,207,202,112,217,131,156,31,94,
+252,246,167,130,224,227,206,140,228,31,249,108,228,140,100,99,2,3,248,140,103,240,193,170,155,161,111,224,140,255,0,219,72,198,127,241,246,227,29,6,58,14,15,24,164,101,141,73,5,96,29,134,101,67,142,192,
+101,92,241,212,114,61,56,32,242,1,115,44,114,76,208,3,158,55,22,61,185,193,54,192,142,185,35,190,70,1,0,146,108,102,60,220,64,58,240,90,84,31,92,139,112,49,248,224,99,25,60,129,88,42,50,227,125,175,168,
+6,64,15,60,99,3,243,35,28,129,215,165,55,202,70,36,134,180,0,117,35,44,7,62,209,49,227,156,140,240,57,230,128,46,172,3,28,220,91,176,56,63,235,228,252,185,131,0,129,199,166,56,167,121,49,28,126,254,216,
+12,1,254,184,142,157,62,244,32,251,227,146,61,123,85,47,179,169,57,18,91,183,186,199,41,31,164,71,175,126,49,205,47,145,143,225,132,227,168,41,40,250,100,27,98,79,212,159,76,243,64,22,196,86,223,197,113,
+111,145,221,103,32,224,255,0,219,19,211,24,239,212,241,78,48,217,142,151,22,131,29,218,119,60,255,0,224,57,227,56,227,35,145,214,169,136,95,63,187,134,34,9,254,24,229,231,25,238,44,207,61,206,115,142,
+0,207,38,148,195,49,31,61,182,122,140,40,147,39,61,15,205,96,224,116,61,15,166,61,128,44,121,81,130,74,207,102,217,244,145,184,252,74,15,208,96,143,74,105,0,28,121,214,249,207,240,135,124,3,238,160,103,
+142,199,191,165,64,176,54,127,213,74,164,123,30,152,231,174,154,64,3,233,233,143,74,113,133,128,60,76,72,232,84,237,237,201,255,0,144,73,31,94,121,246,197,0,4,57,39,50,70,192,3,200,138,76,99,211,146,113,
+223,0,254,124,226,155,246,125,249,203,71,248,196,249,36,112,127,143,35,146,122,96,15,94,49,76,193,220,65,142,115,244,44,73,25,57,32,141,47,158,57,30,156,159,122,141,128,28,24,166,57,61,229,42,122,117,
+63,241,40,234,123,228,140,241,215,20,1,40,183,57,192,17,49,231,164,71,57,252,91,57,61,135,29,115,79,48,184,232,138,61,252,178,15,167,80,195,223,24,0,158,59,158,107,40,92,231,202,149,121,200,197,195,116,
+239,207,246,122,125,49,208,255,0,36,103,101,57,88,101,32,14,175,124,235,249,127,162,2,125,49,254,52,1,100,195,115,145,182,54,57,233,251,169,79,242,98,121,239,244,233,198,76,130,11,210,6,23,30,153,138,
+97,199,3,160,97,158,79,124,227,160,199,21,80,77,113,221,92,115,208,95,205,140,246,13,182,216,99,221,185,56,224,14,105,197,228,43,251,197,37,79,253,63,221,227,244,141,64,198,113,142,159,143,64,11,94,77,
+240,199,201,144,58,145,4,185,237,211,247,192,254,120,232,120,29,41,194,43,166,24,242,164,207,63,242,239,114,56,31,73,31,24,24,250,15,165,84,221,24,63,50,160,0,244,55,215,199,158,123,241,200,255,0,56,25,
+169,85,161,60,132,136,242,57,251,117,216,247,56,38,82,121,232,115,235,215,181,0,79,229,93,99,2,9,155,56,35,108,55,99,28,231,61,72,31,128,30,167,158,179,37,189,194,141,207,20,185,237,152,238,193,255,0,
+208,120,233,211,113,198,126,184,163,186,46,162,8,143,60,110,188,186,63,171,76,50,125,197,27,227,199,49,194,167,209,110,103,201,252,76,249,239,234,70,120,234,113,64,23,246,76,9,253,204,199,140,128,22,232,
+28,159,248,1,193,61,242,63,17,145,144,249,195,173,181,192,25,199,38,240,31,210,34,123,31,211,142,181,157,186,31,238,35,14,153,23,82,156,244,235,251,227,208,231,28,119,235,70,248,251,71,142,115,159,62,
+232,130,51,192,234,248,207,29,7,76,244,200,200,5,198,243,73,193,138,76,115,156,253,184,158,227,4,152,88,251,244,206,125,57,167,12,100,230,25,137,247,91,220,115,220,145,107,156,245,60,228,156,123,26,162,
+12,36,252,201,10,158,79,51,221,22,237,158,177,156,103,233,248,115,82,17,104,72,14,171,207,253,54,151,142,189,65,183,198,51,208,147,158,71,28,102,128,44,144,131,159,34,118,61,48,22,231,31,134,251,67,199,
+177,230,144,162,158,124,137,84,100,245,107,133,57,29,56,26,121,199,233,220,243,85,202,233,203,207,221,61,246,187,99,175,76,155,102,250,228,247,60,119,37,63,208,192,251,242,103,31,222,4,12,142,6,62,200,
+61,57,198,121,253,0,38,101,3,141,142,57,39,151,156,113,212,1,187,78,0,100,96,113,198,122,158,185,136,152,207,80,160,99,4,180,227,35,61,120,251,40,60,19,233,145,250,85,114,109,178,78,231,199,96,72,80,122,
+244,2,204,158,63,46,156,242,105,132,217,30,114,195,36,244,98,73,234,122,253,140,117,235,208,142,195,174,72,4,229,145,127,231,151,76,3,231,2,199,142,249,136,15,255,0,89,205,71,189,59,200,6,114,126,86,82,
+71,79,64,115,158,57,227,191,30,173,6,199,160,73,73,28,231,204,108,253,127,227,216,113,211,168,199,76,117,53,40,251,40,60,36,135,191,18,201,223,29,197,182,61,73,231,166,56,230,128,35,47,208,121,210,0,64,
+232,19,158,221,241,215,146,70,125,73,167,151,99,201,158,92,99,166,98,227,25,224,13,254,253,63,174,105,223,232,167,36,164,255,0,132,174,122,253,81,125,6,112,49,154,99,45,177,227,101,215,56,24,18,190,72,
+62,254,96,61,61,1,235,208,113,64,17,201,188,227,108,210,128,61,237,251,99,39,30,110,71,226,7,0,224,114,42,2,238,191,242,243,33,246,45,7,166,8,0,77,198,62,159,81,205,89,242,173,201,192,23,121,239,153,25,
+135,254,61,47,79,203,25,224,154,141,146,49,199,250,80,56,3,239,224,14,253,4,152,60,127,142,120,160,10,141,59,47,252,183,152,241,192,87,233,236,71,159,199,124,227,160,198,42,38,184,36,17,186,108,142,51,
+149,28,247,235,116,51,215,174,51,145,205,90,34,49,144,69,209,247,243,73,250,12,6,32,250,116,60,147,210,152,168,184,194,173,208,28,117,121,31,242,231,156,115,233,138,0,170,211,145,140,60,252,240,71,204,
+199,156,227,5,110,177,244,7,4,241,211,156,66,110,66,228,127,164,54,79,7,47,130,73,39,169,185,56,199,76,12,119,36,117,205,237,152,251,223,106,30,188,49,199,254,62,14,125,6,56,198,14,104,97,198,2,207,199,
+114,72,108,142,58,100,247,247,7,223,20,1,156,102,144,255,0,5,193,29,126,105,74,142,163,129,251,210,15,39,211,130,122,146,72,166,179,57,35,116,124,99,31,53,199,39,221,113,40,193,28,240,115,245,226,173,
+178,96,228,172,217,32,144,118,171,125,114,198,69,193,57,39,158,248,207,112,107,29,153,110,110,114,14,126,104,227,192,200,29,63,210,14,125,128,244,228,122,128,87,103,57,80,97,220,15,24,243,139,1,156,145,
+146,38,32,99,131,207,108,241,212,212,37,208,28,53,179,16,78,72,12,224,112,79,165,200,3,7,190,79,225,222,193,242,129,12,197,143,76,230,43,76,254,33,230,39,7,244,60,116,235,19,205,8,225,153,142,6,121,181,
+179,192,24,228,18,36,231,175,92,142,131,142,70,0,34,50,67,255,0,62,4,250,98,115,198,120,232,110,120,231,166,64,233,199,74,110,235,114,63,227,199,25,207,222,144,48,253,103,201,228,246,192,57,207,126,24,
+243,199,187,32,49,245,205,189,136,25,35,184,51,3,244,31,142,113,210,51,42,54,65,132,31,115,111,167,129,220,158,77,208,199,191,83,158,13,0,72,222,71,107,104,215,3,162,184,239,245,159,7,158,192,255,0,83,
+76,34,14,7,217,35,29,121,47,23,65,223,6,98,115,145,140,28,146,121,245,195,12,168,188,52,40,49,211,247,90,106,156,144,64,28,223,122,118,192,7,3,174,42,63,53,9,33,98,136,96,255,0,18,105,190,221,254,212,
+70,70,15,0,158,50,70,123,0,74,124,190,130,219,160,199,6,34,15,191,13,192,57,207,127,165,70,98,137,143,205,104,157,0,249,130,131,128,122,228,134,206,113,232,123,84,109,35,14,68,112,1,215,34,27,38,201,224,
+13,219,110,112,58,14,63,78,105,191,104,100,207,203,111,187,24,193,181,180,236,122,110,251,65,207,190,49,239,130,114,0,36,49,196,163,139,62,15,166,220,247,199,252,179,237,248,143,233,9,11,218,216,227,158,
+50,157,58,245,104,241,144,121,199,108,142,185,160,93,79,147,133,180,250,24,173,129,0,122,98,118,60,243,158,121,29,51,205,52,220,200,114,118,91,244,254,4,128,113,234,64,147,167,62,227,166,79,2,128,23,108,
+100,255,0,199,166,15,169,120,191,48,10,96,142,220,14,59,14,153,107,99,63,234,89,65,228,97,225,35,219,141,135,167,110,48,121,166,137,165,60,133,139,57,227,34,16,56,250,49,253,8,39,159,122,81,45,198,115,
+229,197,147,199,167,39,175,220,97,215,232,115,158,152,197,0,12,188,159,221,74,59,231,124,39,142,51,140,195,198,58,30,191,157,55,229,60,20,151,140,100,9,44,199,76,242,1,135,143,203,183,108,83,197,205,208,
+227,108,99,7,3,37,198,56,199,252,243,63,204,224,156,103,131,79,51,92,158,162,18,113,142,21,251,103,128,124,150,224,123,15,196,103,128,8,66,33,35,2,108,122,111,179,207,67,215,17,123,116,32,255,0,60,47,
+144,24,240,147,100,18,65,51,89,12,242,127,233,151,177,236,127,34,5,78,38,184,193,33,34,206,123,51,47,39,142,115,8,39,39,191,224,70,105,223,105,187,28,17,199,253,117,114,56,60,159,245,39,28,116,199,61,
+64,52,1,91,202,231,171,169,231,131,113,101,223,156,227,201,207,215,184,207,226,2,164,147,151,227,31,243,241,100,50,115,215,136,143,56,232,120,224,122,227,19,155,187,144,72,8,84,96,255,0,203,89,7,29,79,
+72,114,125,187,159,78,180,9,231,57,12,72,199,76,220,72,64,192,245,48,17,223,61,112,115,207,20,1,0,135,29,72,96,57,201,158,220,115,245,88,201,39,183,183,110,162,151,133,63,41,85,247,55,42,9,61,127,133,
+15,225,233,198,112,8,196,190,109,199,99,30,122,146,210,159,94,113,136,9,227,211,174,127,50,166,123,189,184,30,81,201,25,196,211,96,119,237,110,122,115,193,192,25,206,40,2,16,217,36,153,7,56,31,241,244,
+88,241,156,244,129,134,125,186,126,181,32,47,192,12,164,99,171,76,224,99,182,73,137,71,115,235,219,131,147,74,37,186,228,144,156,242,119,79,56,60,244,206,99,234,14,127,50,41,223,191,108,243,7,39,160,158,
+108,243,235,133,82,58,243,193,239,147,214,128,26,86,83,211,102,71,92,92,150,237,211,2,48,7,183,32,247,201,164,217,116,57,3,183,81,57,192,56,199,116,35,25,246,56,245,34,147,204,145,120,6,48,113,218,121,
+192,245,61,249,198,71,65,223,223,32,105,39,28,134,95,251,249,116,127,28,9,7,161,234,15,183,99,64,7,250,96,207,4,125,38,224,247,254,226,251,159,240,236,204,220,147,255,0,45,9,228,29,178,169,56,193,206,
+114,126,188,159,210,143,50,98,70,239,40,231,251,207,114,163,60,156,242,249,0,246,36,12,242,114,49,78,17,200,199,59,160,246,204,215,0,114,56,35,247,128,127,94,152,35,140,0,32,105,207,222,55,25,232,49,52,
+92,158,132,12,176,238,58,228,117,20,153,156,114,13,200,24,206,77,197,174,71,95,239,22,56,253,123,118,160,198,224,224,249,36,140,96,153,36,110,248,29,101,7,28,0,115,244,227,130,80,43,146,15,151,8,35,140,
+131,55,114,113,210,96,57,250,156,224,123,208,3,241,43,117,150,231,7,3,253,125,137,39,190,78,228,198,58,115,145,254,46,242,230,7,159,59,28,242,102,211,121,61,71,222,56,236,51,147,207,225,138,136,151,207,
+43,111,215,144,86,98,112,58,255,0,203,218,242,112,0,232,125,186,2,239,53,80,96,173,183,215,108,160,231,158,57,189,35,223,142,61,168,1,196,72,6,31,206,94,120,34,227,74,36,99,147,242,128,65,247,36,14,248,
+239,81,25,28,31,146,75,236,14,232,116,198,31,81,130,188,14,159,135,30,239,23,17,169,228,91,17,235,181,192,30,231,23,88,192,238,72,201,245,226,164,251,76,45,192,91,67,140,96,102,65,244,201,23,99,39,211,
+191,229,192,4,38,115,142,90,255,0,183,95,236,204,241,199,95,48,251,156,30,157,184,197,70,210,161,32,147,122,123,30,116,240,115,207,247,101,246,244,245,171,62,120,237,29,166,59,115,62,127,28,220,177,254,
+135,156,250,82,25,198,114,99,182,0,250,25,179,223,160,243,113,143,124,118,247,36,128,65,230,47,92,95,55,61,205,150,122,243,206,227,216,119,62,221,113,75,230,160,228,65,118,122,118,179,35,168,63,194,235,
+248,112,61,14,41,254,121,4,145,228,175,92,102,41,114,59,112,76,156,231,175,79,64,6,41,201,59,28,130,182,249,29,252,171,133,239,192,249,95,29,121,228,19,211,156,96,0,6,11,146,58,90,220,184,3,57,41,108,
+59,119,42,231,220,251,126,20,211,113,39,107,91,160,15,35,11,111,142,221,7,152,14,57,239,248,30,198,113,38,73,57,139,35,168,2,236,14,63,224,88,25,246,247,224,84,131,15,128,20,115,129,149,55,121,234,71,
+39,160,200,60,100,123,129,222,128,41,253,166,66,113,246,107,172,231,31,118,220,250,246,14,220,15,115,220,242,105,12,204,115,139,107,192,220,99,247,113,128,121,30,132,140,255,0,245,251,245,188,85,185,2,
+50,64,61,154,224,145,245,202,103,167,7,158,190,244,162,57,6,7,217,216,110,227,57,186,4,158,113,143,221,227,156,113,192,63,76,130,64,41,6,151,57,107,107,140,99,190,58,14,58,47,78,58,1,147,156,96,140,210,
+115,193,251,28,188,231,170,201,207,215,228,56,61,253,127,48,106,232,130,115,200,182,151,142,114,5,203,116,239,147,25,200,250,126,189,149,150,64,6,232,24,251,21,147,39,62,198,33,129,193,252,143,61,40,2,
+144,221,218,214,80,57,207,250,222,63,40,113,131,142,122,115,147,142,244,164,49,57,242,100,207,67,145,40,199,231,110,127,28,112,56,171,30,153,183,62,184,49,62,65,233,198,84,122,122,103,244,164,198,58,218,
+70,221,249,14,9,231,169,218,235,244,228,224,142,160,208,4,5,36,201,218,135,167,66,110,64,201,247,91,82,58,247,28,140,126,20,158,84,196,18,70,23,212,73,114,79,108,240,109,7,99,239,83,112,199,254,60,84,
+103,60,143,63,57,231,183,152,65,252,142,122,14,156,56,35,140,98,196,17,207,107,130,71,62,239,129,199,96,6,70,48,78,104,2,186,194,227,39,104,57,255,0,166,147,2,125,48,62,204,63,196,119,244,33,134,67,255,
+0,44,70,122,159,158,99,234,120,255,0,70,0,119,207,169,199,0,158,108,126,255,0,175,216,20,118,5,150,225,71,25,238,36,198,58,113,142,184,239,77,47,113,208,89,194,7,174,46,24,245,25,233,48,198,125,48,7,182,
+120,160,8,68,78,189,17,58,140,229,223,215,140,102,220,247,56,254,164,138,147,5,113,251,177,145,142,67,183,67,159,250,96,61,58,103,232,56,163,205,184,81,254,166,213,73,207,222,138,235,145,238,13,199,63,
+203,142,131,138,93,247,57,198,203,64,70,56,242,47,7,184,227,207,207,62,196,115,156,99,140,0,70,178,16,127,213,145,206,14,36,11,248,157,209,241,223,24,231,174,14,58,148,172,183,143,131,182,204,14,126,236,
+119,168,73,238,51,230,16,79,227,252,179,69,0,106,24,162,254,236,108,71,3,117,180,92,242,120,37,100,206,62,131,35,130,15,60,176,162,3,204,118,231,174,119,89,71,198,64,239,189,189,185,56,239,215,168,185,
+246,40,79,68,32,99,147,139,177,199,32,142,31,31,175,28,113,232,191,97,131,208,103,140,0,151,103,175,175,239,125,199,169,230,128,40,249,81,182,127,209,237,216,122,125,140,142,253,112,178,47,242,31,74,119,
+217,162,31,122,202,28,28,115,246,82,163,56,233,183,205,61,15,168,231,219,60,91,251,21,177,56,102,101,61,129,91,174,113,142,57,184,35,142,220,96,116,199,76,169,177,181,36,97,95,35,184,89,241,215,222,126,
+132,119,198,125,192,228,0,80,107,104,129,200,179,141,179,156,226,39,83,143,78,24,142,49,199,126,57,35,57,167,45,180,4,115,101,15,114,73,65,144,123,100,238,60,122,100,114,112,106,217,177,129,135,202,38,
+250,32,156,28,159,251,108,50,120,245,199,245,95,176,160,28,155,133,199,25,34,224,140,115,207,203,35,254,25,30,157,168,2,147,91,219,49,32,216,219,156,112,62,64,72,238,112,11,113,245,3,154,139,236,246,107,
+255,0,46,145,38,64,251,177,99,177,198,58,128,70,125,135,243,171,255,0,102,67,192,121,137,7,166,219,172,122,244,17,158,122,241,233,215,57,24,111,145,31,121,174,20,158,193,46,113,233,252,72,157,255,0,51,
+199,25,160,12,215,75,37,60,219,140,142,135,102,71,79,97,208,99,211,28,125,13,67,254,134,221,45,215,131,142,129,115,208,99,36,113,254,115,218,182,124,184,199,73,166,32,115,146,172,112,122,127,31,32,227,
+146,120,227,215,52,141,26,130,62,119,219,215,62,95,63,145,25,62,189,70,15,0,16,115,64,25,107,29,161,227,236,185,233,210,84,82,59,247,76,30,9,234,122,117,192,234,239,42,208,2,126,202,217,228,103,237,16,
+122,117,32,140,129,211,191,110,121,235,160,124,165,56,221,116,125,54,194,200,1,250,128,217,198,49,253,70,13,25,67,130,60,252,158,49,178,66,115,192,228,155,126,227,211,242,234,104,3,52,180,35,164,56,236,
+127,127,1,25,25,244,108,244,198,73,244,166,238,143,35,247,25,231,175,153,15,94,127,189,32,192,207,78,184,0,245,21,162,86,70,63,40,152,99,168,43,47,190,51,182,49,142,61,127,165,43,36,227,56,50,17,144,126,
+245,210,142,220,5,32,12,103,0,227,61,112,13,0,102,229,123,66,184,57,4,121,176,14,57,206,49,41,25,231,166,49,199,57,232,36,1,115,255,0,30,236,72,61,86,107,113,223,175,177,231,25,198,7,211,154,188,60,194,
+114,78,49,156,147,37,214,79,76,114,17,136,227,212,244,252,131,193,144,3,132,141,179,142,76,183,3,143,251,224,123,31,243,144,1,69,75,103,139,118,111,251,107,104,73,199,56,228,123,158,65,227,7,165,59,124,
+249,192,182,35,221,164,178,95,82,14,65,30,253,78,59,253,45,252,192,156,165,185,39,61,103,144,99,254,250,96,78,56,31,119,62,163,176,99,110,56,204,118,195,158,171,36,156,228,100,103,228,99,159,207,174,122,
+241,64,16,23,185,228,173,186,31,251,111,103,252,149,135,225,200,57,28,115,131,76,50,220,142,60,152,87,29,115,44,25,61,58,149,113,233,216,140,115,197,89,25,224,52,112,130,122,97,230,228,156,144,57,132,
+242,120,192,232,56,247,192,88,14,12,112,96,246,105,156,123,19,131,8,31,141,0,81,51,220,156,124,145,143,117,144,99,131,220,172,216,57,62,158,212,166,226,228,224,109,143,140,228,249,165,79,211,34,99,199,
+215,240,30,182,139,46,71,238,173,207,61,86,119,207,56,193,63,33,4,255,0,187,198,79,166,105,87,200,7,230,88,0,231,143,61,129,233,156,2,99,192,61,206,1,3,169,24,205,0,85,251,69,207,76,68,61,8,159,35,142,
+135,62,110,73,206,121,32,122,3,74,37,184,57,249,147,223,18,190,0,60,96,124,216,36,112,59,250,130,51,147,103,204,179,228,109,132,131,255,0,77,22,64,0,236,7,146,15,127,167,167,113,72,103,179,76,149,138,
+18,112,115,242,147,128,61,8,137,64,61,189,189,71,24,0,132,75,121,129,137,64,3,140,137,164,194,250,117,144,103,183,65,142,152,205,12,110,79,6,232,99,190,110,37,250,159,226,0,231,156,242,112,50,125,196,
+158,117,179,255,0,203,40,241,234,33,220,121,207,109,224,245,235,145,212,231,222,153,190,215,36,126,239,56,60,173,177,25,31,240,23,28,254,7,167,122,0,135,19,100,102,241,59,14,110,166,39,240,7,182,14,48,
+65,29,189,48,240,146,117,251,74,159,164,142,223,94,112,58,122,245,239,214,158,13,190,120,66,120,231,247,18,0,121,244,18,169,32,241,206,71,3,215,20,253,150,231,254,89,128,79,164,19,246,238,0,190,25,28,
+127,136,235,64,12,36,140,110,185,111,79,149,228,63,207,31,95,124,147,207,90,118,245,35,155,135,235,142,73,3,145,156,228,198,122,131,156,228,242,127,26,105,137,121,85,92,117,227,236,243,19,199,78,26,237,
+253,178,73,62,224,30,143,22,146,159,95,92,139,89,127,60,249,224,228,113,142,122,244,235,64,13,99,17,32,25,142,56,60,57,233,235,130,191,92,114,1,193,250,209,155,124,147,230,144,70,113,151,79,208,179,103,
+190,125,187,118,169,13,172,227,57,12,220,255,0,207,180,163,29,58,159,60,158,123,117,239,223,154,79,178,220,114,2,56,25,224,253,158,97,223,25,3,205,254,121,226,128,35,13,23,107,128,58,158,93,27,24,7,182,
+8,228,114,15,111,92,17,72,210,66,160,238,148,31,76,132,199,61,248,143,35,190,6,125,42,97,103,118,70,63,121,244,48,200,0,60,142,238,48,127,15,206,164,91,43,176,112,35,119,235,200,137,121,234,122,151,25,
+198,120,29,56,32,15,64,10,94,117,177,60,178,16,0,234,20,159,168,37,57,60,250,17,248,102,157,246,152,0,198,67,15,247,98,32,127,223,40,24,125,112,73,57,251,188,226,239,217,175,70,113,4,132,131,215,98,224,
+142,184,225,142,122,122,158,6,113,197,53,109,174,201,201,128,140,241,204,16,48,57,61,183,17,200,199,177,160,10,226,123,124,159,156,12,243,194,175,166,57,201,239,143,65,212,245,237,32,150,220,158,46,1,
+110,59,193,129,219,248,185,61,73,227,56,231,183,53,56,182,157,121,49,160,245,204,22,99,62,152,231,142,156,143,187,159,175,39,149,33,39,34,49,212,113,5,136,57,233,207,206,190,220,246,29,61,128,24,26,51,
+146,38,70,35,24,249,237,72,3,232,85,185,255,0,104,99,29,251,83,252,232,135,27,162,227,215,236,76,79,226,109,207,29,135,78,157,198,41,225,28,112,202,20,240,50,169,101,159,124,145,32,61,127,30,216,192,25,
+80,229,70,8,28,103,159,42,216,182,56,192,35,112,29,250,228,250,100,243,128,4,55,81,244,45,31,211,101,159,161,234,77,174,121,233,215,30,227,138,81,113,0,25,243,109,179,253,214,138,211,175,211,200,65,223,
+131,146,64,56,250,6,86,235,128,127,237,218,212,251,99,153,186,224,113,147,238,115,205,56,62,236,102,20,39,146,15,147,110,61,59,125,160,2,61,241,143,90,0,136,94,192,78,11,219,142,112,48,150,191,160,192,
+24,198,127,46,149,50,220,194,113,137,34,25,198,113,29,169,31,128,28,158,152,234,56,231,131,79,10,173,201,136,15,82,32,128,131,237,129,43,100,156,246,7,214,144,71,22,14,80,14,197,190,207,18,224,130,56,
+200,97,223,63,76,102,128,27,231,68,216,221,44,88,224,231,201,135,176,244,14,189,121,247,232,41,76,150,203,146,100,133,129,233,152,161,24,228,31,249,234,91,140,240,51,206,57,232,106,64,177,96,225,177,208,
+113,110,153,4,250,109,39,147,207,31,206,155,133,201,33,230,199,63,118,222,65,159,201,27,3,62,221,187,80,4,70,123,92,240,32,36,30,190,76,71,183,115,230,103,240,245,231,52,211,113,109,220,66,49,158,124,
+152,128,233,235,188,3,143,175,175,65,192,178,138,189,228,156,241,208,91,78,122,140,143,249,101,130,62,189,241,211,146,21,196,99,57,105,58,119,180,152,247,63,220,65,219,169,32,125,122,10,0,162,215,22,141,
+199,153,2,231,210,56,193,227,175,34,113,199,28,231,250,210,6,182,36,226,85,232,120,81,22,70,61,254,208,14,58,243,211,160,60,26,157,188,174,126,97,156,227,6,198,76,140,158,249,10,120,247,3,140,224,14,50,
+194,80,18,64,76,99,31,241,239,40,235,140,241,146,14,121,233,211,57,29,1,160,6,238,181,199,50,76,65,199,10,209,140,100,231,161,148,129,199,57,25,234,58,16,5,56,37,155,100,239,151,32,127,20,246,224,142,
+223,196,121,247,199,60,243,222,154,210,199,208,132,224,142,144,203,159,253,9,135,232,115,235,206,106,51,117,8,60,109,207,253,123,220,129,193,201,207,204,7,24,236,125,143,160,0,159,201,179,35,2,87,235,
+252,87,54,192,125,8,57,94,231,56,200,254,167,151,102,167,253,115,119,24,251,77,169,60,117,233,19,117,233,192,61,78,51,218,191,219,160,224,98,49,199,80,147,174,9,239,131,46,125,120,192,236,79,94,20,94,
+91,227,149,132,244,39,229,185,233,219,164,227,182,114,120,57,7,165,0,79,178,0,50,183,24,244,255,0,73,128,250,0,112,45,115,248,118,246,2,155,229,70,73,255,0,74,25,29,188,248,119,126,31,232,217,227,29,61,
+185,200,192,164,91,187,114,114,126,206,163,24,59,150,231,61,177,255,0,47,24,24,227,25,255,0,10,83,117,111,156,109,182,108,19,209,39,254,102,108,96,99,62,158,244,0,225,24,231,23,44,112,121,253,242,47,25,
+245,251,49,254,160,115,218,158,35,39,31,233,50,243,144,2,220,40,245,244,181,30,157,113,243,99,185,168,214,234,208,182,10,219,142,15,105,142,121,193,207,239,151,0,156,158,181,40,146,200,140,236,128,147,
+211,98,200,24,126,63,105,39,28,99,144,122,31,99,64,15,242,164,28,27,135,39,3,1,174,28,253,49,178,211,36,30,228,14,156,30,212,193,111,49,33,132,209,243,156,150,107,134,63,92,253,148,227,29,134,57,253,42,
+85,107,19,201,69,4,140,114,178,57,29,255,0,191,142,122,224,30,71,226,40,2,200,240,12,107,142,132,219,30,15,28,252,219,129,233,220,154,0,96,130,227,175,218,20,123,1,116,71,78,188,90,96,2,65,237,214,131,
+20,195,173,202,14,228,147,120,50,57,227,6,204,14,152,35,7,241,235,83,136,236,114,51,44,67,31,221,138,220,118,207,59,254,111,108,118,31,170,152,236,137,24,184,140,116,4,8,96,25,39,183,127,76,251,246,233,
+64,16,8,228,61,46,21,128,63,194,47,51,145,215,143,179,28,244,39,142,252,130,51,203,252,178,7,50,135,7,177,91,206,191,247,224,16,79,110,57,36,140,84,165,44,136,230,116,62,155,97,132,246,252,7,167,99,254,
+32,91,84,3,108,170,79,188,86,185,252,130,142,189,57,62,157,122,208,4,42,17,73,229,121,3,164,119,123,136,245,56,183,61,79,112,59,30,5,59,124,100,252,205,22,122,13,201,121,192,7,251,190,64,60,245,200,56,
+29,49,208,84,158,108,42,113,185,122,245,11,106,185,231,217,151,31,129,232,71,78,106,65,42,112,68,190,224,3,0,231,175,39,206,39,29,248,30,216,60,224,2,183,151,110,216,36,198,121,237,111,120,113,158,14,
+62,66,8,24,228,237,207,4,227,57,53,58,67,109,209,163,140,243,193,251,45,222,120,62,173,9,207,30,156,140,231,142,113,39,156,249,59,101,231,253,248,70,58,115,192,32,250,1,207,60,142,217,112,145,136,230,
+104,243,206,71,153,17,207,60,28,146,160,116,228,116,231,20,0,158,93,144,251,209,129,145,158,45,166,92,122,100,180,4,231,56,56,63,133,10,150,135,164,127,46,64,25,183,114,79,211,247,93,7,167,31,167,50,2,
+79,34,108,251,9,192,227,61,48,36,3,140,119,227,182,56,21,58,51,1,242,220,186,158,72,204,236,192,231,29,113,49,39,167,31,94,50,51,64,16,8,160,207,8,112,15,0,89,200,195,63,135,83,158,221,143,90,148,64,167,
+254,88,73,140,245,254,206,144,228,254,61,184,245,29,242,49,214,96,101,255,0,158,251,179,128,79,155,40,29,186,143,51,175,115,144,63,14,242,131,55,31,49,206,63,231,164,131,146,59,102,224,99,169,246,207,
+94,244,1,1,182,97,243,44,12,71,95,249,7,177,224,28,231,27,148,130,15,184,231,215,138,112,133,242,64,134,110,157,69,129,4,14,189,219,211,144,114,114,58,100,113,86,131,220,99,6,95,111,245,210,157,189,241,
+197,198,7,0,118,237,129,215,149,196,253,60,195,159,65,36,152,39,219,253,36,156,31,99,233,237,64,21,190,205,57,56,17,202,62,182,14,223,251,81,127,206,71,106,157,98,157,112,66,145,146,15,205,104,235,219,
+253,169,121,239,199,242,35,52,49,152,112,114,249,224,243,41,62,184,7,237,7,60,245,227,62,189,121,111,239,9,57,70,29,184,121,58,116,25,205,208,233,140,244,62,167,181,0,74,67,255,0,17,233,215,253,20,15,
+212,203,159,113,245,193,7,187,48,252,133,198,115,222,220,113,201,255,0,166,135,255,0,172,49,156,98,143,50,65,194,172,131,166,62,98,63,3,254,149,219,208,158,157,7,52,190,124,217,195,41,25,193,228,184,192,
+237,129,246,158,50,48,56,62,228,145,64,10,4,163,134,84,227,159,248,247,94,79,110,75,247,56,60,103,208,100,80,55,3,204,113,158,0,249,161,3,147,244,200,7,3,158,159,165,33,158,110,200,199,159,239,57,31,83,
+254,148,48,125,71,80,42,61,243,49,199,146,254,199,204,152,12,119,3,253,55,182,122,1,239,245,0,156,176,31,121,98,95,65,242,140,243,199,221,7,250,116,57,227,20,223,180,38,72,30,94,15,112,3,126,57,17,150,
+239,220,125,42,44,76,121,218,216,3,254,122,205,144,125,63,227,241,189,122,241,223,223,10,34,144,140,225,207,78,119,79,140,116,7,63,106,193,29,184,239,216,80,4,225,195,18,85,163,224,231,157,192,227,158,
+79,238,243,140,125,79,167,106,112,36,156,237,128,224,96,17,156,227,174,65,104,187,127,250,250,84,66,49,140,24,217,137,245,146,224,99,219,139,172,31,235,216,14,41,203,16,31,117,24,122,126,242,81,208,144,
+7,51,55,177,28,113,64,18,18,196,240,138,121,56,219,147,199,32,244,128,243,238,15,174,56,167,108,152,228,172,10,113,156,125,240,113,216,96,219,130,127,17,244,60,208,177,202,6,0,112,123,98,105,51,207,3,
+24,44,115,248,231,212,80,98,157,179,159,63,0,244,15,59,30,160,253,220,12,103,220,15,64,112,114,64,37,85,187,255,0,158,81,14,48,62,71,99,220,140,15,36,12,253,8,57,199,94,104,217,123,253,216,136,238,10,
+76,79,78,121,85,233,215,183,61,58,224,26,230,221,243,157,147,250,112,38,61,123,159,152,116,61,78,7,3,222,156,33,184,29,34,118,236,11,71,41,234,61,243,245,232,125,65,61,104,2,112,151,189,163,132,227,156,
+132,152,250,99,33,128,28,99,140,143,233,128,45,242,156,236,86,236,67,66,228,30,135,183,211,182,56,233,237,24,134,227,254,120,158,59,236,147,7,57,198,62,94,123,12,245,62,167,184,98,184,25,37,27,253,172,
+69,146,7,65,247,148,246,206,123,251,245,52,1,100,29,68,144,118,65,199,170,74,63,2,64,56,63,67,77,87,212,20,143,221,192,112,49,192,148,224,14,248,219,147,248,112,7,110,5,86,6,114,15,238,213,128,231,38,
+40,213,187,28,110,17,19,212,103,191,211,154,76,93,19,242,68,6,120,27,86,28,99,159,88,6,49,237,211,215,208,2,225,185,189,193,62,92,35,156,228,69,112,6,51,211,33,71,31,94,224,82,9,110,219,172,112,159,66,
+34,148,129,248,184,232,71,4,96,142,228,118,170,164,95,113,132,59,78,48,10,219,3,201,227,57,140,14,113,198,122,251,102,147,201,189,96,73,132,28,158,133,109,143,79,248,24,238,49,128,127,30,48,0,46,150,185,
+60,148,140,0,127,231,132,223,136,5,7,25,238,112,63,197,26,89,151,239,96,2,15,68,187,3,167,251,153,207,166,58,30,113,222,169,173,181,201,39,54,200,121,199,48,217,177,32,28,247,152,247,201,35,243,227,24,
+148,90,220,14,182,202,7,251,54,246,185,207,185,15,223,250,31,192,2,202,206,192,114,178,0,122,21,55,164,118,228,102,220,140,250,100,250,246,206,94,38,24,28,29,185,193,102,75,178,112,123,100,192,7,243,224,
+119,233,85,133,179,144,67,91,57,247,22,182,231,158,65,193,223,211,175,76,14,248,201,52,241,107,180,2,109,39,61,122,90,192,65,234,63,188,192,28,244,200,29,51,154,0,156,206,135,161,29,122,21,187,61,187,
+141,128,122,103,143,124,113,144,19,11,127,203,80,9,57,35,201,185,35,60,117,36,175,227,219,143,78,12,2,0,167,63,96,185,96,122,1,105,110,125,185,33,114,123,114,115,245,60,229,226,19,156,255,0,103,94,99,
+35,254,92,227,3,35,158,216,235,208,130,61,126,180,1,34,249,56,1,159,140,240,68,19,115,207,251,83,129,199,168,167,8,96,98,79,154,235,156,96,4,64,78,71,28,27,144,217,233,142,58,244,21,8,140,156,19,167,93,
+159,165,172,35,3,212,144,252,99,28,100,116,205,78,136,188,19,167,92,18,115,159,244,120,79,167,80,55,123,12,113,142,120,160,6,152,45,199,6,105,112,58,12,40,247,207,252,126,241,198,61,62,157,113,3,139,120,
+250,205,33,25,231,145,147,143,81,253,161,207,175,65,140,156,246,171,135,203,94,127,179,174,148,241,207,216,80,246,28,228,175,124,227,61,199,191,71,143,32,231,253,18,232,122,255,0,162,4,57,192,199,59,15,
+111,83,200,238,73,197,0,101,239,178,206,119,19,156,103,43,17,200,255,0,193,162,146,71,83,242,246,29,176,105,153,182,60,43,237,7,251,201,109,212,100,231,231,213,201,25,250,100,96,86,179,8,14,127,115,112,
+190,184,136,46,58,158,73,81,215,175,39,62,228,243,81,145,25,200,217,42,14,159,63,146,157,49,142,78,14,125,129,25,193,247,160,12,252,70,57,89,177,254,210,139,68,35,167,166,170,122,28,118,35,210,155,185,
+115,197,204,199,7,0,9,237,199,208,96,95,176,233,236,73,60,230,180,12,81,17,134,37,123,6,45,11,0,122,15,249,104,62,157,51,158,58,83,126,207,22,9,243,70,63,237,135,245,152,17,237,158,13,0,80,105,153,71,
+18,59,131,158,13,197,175,113,253,209,122,73,201,231,166,123,17,65,186,113,215,118,112,112,13,204,0,231,182,71,218,125,185,28,123,112,115,87,76,16,115,155,128,49,235,246,108,126,4,72,195,161,193,206,115,
+200,228,28,211,77,180,4,238,251,86,57,28,237,183,97,129,156,156,9,14,63,28,115,233,156,208,6,121,187,151,7,229,199,29,26,224,30,122,96,226,243,39,240,200,28,251,138,5,219,144,7,149,17,237,205,202,247,
+247,251,81,193,25,29,241,211,214,174,61,172,121,56,188,0,119,38,8,200,0,118,59,102,0,244,227,167,0,159,173,115,101,146,113,168,198,0,56,255,0,84,138,123,244,204,231,166,121,32,240,122,244,160,8,26,225,
+155,134,88,64,24,28,94,99,175,3,32,92,55,126,120,39,39,175,74,110,246,234,166,37,7,186,221,134,61,125,60,252,130,113,198,127,19,218,166,54,82,3,159,237,21,35,166,1,132,241,158,224,200,1,35,245,205,55,
+236,242,46,64,189,143,175,86,142,0,61,249,223,233,158,153,206,115,235,64,13,243,28,46,26,88,250,0,7,218,20,144,0,29,190,208,72,227,182,6,113,233,81,52,164,127,203,72,207,64,115,35,31,253,184,228,116,201,
+231,142,185,21,57,142,110,247,150,236,1,228,24,237,142,71,82,51,130,72,252,120,61,51,200,164,97,40,25,251,76,31,248,13,3,14,0,234,89,88,117,207,36,1,145,201,160,10,165,203,3,129,1,207,124,18,62,167,55,
+128,115,215,175,175,74,136,228,140,147,7,95,249,230,196,119,60,226,248,224,242,63,158,42,217,19,243,254,145,9,61,127,227,222,208,156,118,192,218,8,207,94,123,147,80,178,92,158,126,209,0,231,156,219,219,
+227,216,96,28,115,219,175,182,15,80,10,229,20,156,111,132,116,227,203,112,115,207,253,63,255,0,245,143,168,235,71,147,17,28,203,0,57,231,130,14,113,212,129,120,227,143,255,0,80,230,167,48,220,119,154,
+223,167,7,236,241,28,103,176,62,102,71,28,241,81,152,39,63,242,210,212,240,127,229,132,121,233,142,166,108,2,61,135,81,197,0,71,229,198,163,139,148,94,121,218,0,24,245,4,202,220,19,219,235,207,172,95,
+32,36,253,173,51,215,27,162,63,158,31,159,99,146,122,241,83,121,82,1,243,11,118,232,65,17,195,156,122,143,159,216,112,9,63,90,140,196,204,121,75,83,198,62,107,100,98,126,191,191,0,231,62,157,127,64,7,
+137,31,7,109,220,88,228,231,10,185,227,175,15,198,56,231,31,158,42,54,105,72,207,159,17,108,113,150,206,125,50,66,30,159,128,233,200,206,106,54,183,44,48,208,90,145,215,2,216,17,233,208,92,242,115,199,
+0,118,227,189,66,109,6,51,246,104,177,140,19,246,28,159,160,62,118,121,61,115,158,184,245,160,9,73,186,94,124,203,114,0,254,251,43,126,0,40,252,120,245,192,166,52,151,71,105,18,68,7,95,245,142,224,131,
+140,3,136,126,135,1,190,167,189,68,214,220,28,91,12,12,225,126,198,184,35,60,103,253,35,113,63,228,159,88,196,76,164,226,208,114,51,205,150,7,78,160,139,206,221,78,1,233,222,128,30,211,92,96,131,36,39,
+235,230,237,227,35,147,229,0,121,247,228,241,145,210,152,46,46,79,2,75,99,232,15,155,198,127,222,136,231,7,161,0,227,166,0,205,47,239,7,252,187,70,9,227,63,100,96,127,244,160,143,66,65,61,49,201,233,67,
+9,177,145,111,17,199,173,184,39,211,161,147,56,252,8,228,17,216,208,4,102,91,220,231,124,24,244,9,41,57,57,199,2,37,207,30,131,29,197,53,231,189,3,159,179,176,245,49,220,28,131,207,183,65,156,227,223,
+29,169,88,92,159,249,117,24,207,37,45,16,254,100,146,70,126,156,242,1,164,197,223,104,91,62,214,81,229,113,211,160,92,250,117,250,80,4,2,123,156,159,221,218,157,221,190,203,112,199,30,231,126,78,79,29,
+189,7,83,67,73,57,4,188,112,1,211,63,100,152,126,64,145,215,241,171,24,156,114,209,202,216,200,63,232,81,14,192,96,134,148,100,250,112,127,62,137,190,85,63,234,136,56,254,59,56,184,239,255,0,61,186,122,
+231,31,135,52,1,87,124,128,112,176,243,193,197,156,152,62,185,235,218,162,111,152,252,203,16,39,158,45,31,255,0,65,7,159,200,242,51,239,87,140,179,159,249,226,185,28,110,181,183,28,116,227,55,67,25,237,
+198,123,227,189,49,158,124,114,96,82,7,252,240,128,147,211,159,150,236,183,110,64,7,169,192,244,0,169,229,147,200,242,70,121,193,176,96,115,245,18,169,227,142,127,250,212,226,152,3,230,183,4,113,205,179,
+96,123,99,206,30,253,122,26,147,204,152,228,25,33,95,64,96,92,129,200,198,60,198,201,206,120,199,62,188,226,162,111,49,134,12,144,18,56,255,0,80,61,122,28,48,25,60,14,122,227,235,64,12,40,14,1,48,254,
+22,199,242,24,151,232,7,95,92,226,154,22,216,2,28,38,114,63,229,145,228,112,122,9,115,128,57,228,123,30,115,132,43,33,207,207,30,50,120,22,217,231,241,156,122,129,156,126,60,240,134,57,1,206,232,7,251,
+208,0,78,15,7,137,155,250,99,243,160,8,222,27,38,63,50,66,217,61,226,28,14,122,229,192,4,250,118,62,167,20,191,103,180,231,17,194,1,3,164,120,57,250,134,60,251,99,233,158,129,88,30,133,237,15,76,254,237,
+129,252,71,156,7,191,39,3,181,68,98,102,60,27,51,254,209,139,240,57,253,249,192,35,191,230,59,16,5,107,123,126,126,72,15,168,104,100,35,156,240,126,113,245,233,131,199,30,145,253,150,217,73,204,86,228,
+96,16,62,206,248,57,247,12,72,29,121,28,244,167,8,223,179,217,2,49,128,35,201,29,121,193,144,231,161,61,113,144,58,116,160,199,47,82,214,196,145,129,132,81,216,231,31,188,254,131,130,13,0,47,151,106,7,
+17,219,3,207,30,76,189,49,158,70,254,71,39,142,130,148,125,157,127,134,216,145,207,250,185,129,227,185,28,142,253,1,252,251,48,171,112,63,209,199,80,51,26,18,70,127,235,160,193,61,184,227,154,127,148,
+237,194,165,169,39,24,42,144,3,144,127,219,152,99,167,127,235,192,2,25,109,87,129,28,39,29,127,116,231,24,227,32,30,62,128,245,247,57,164,205,167,93,145,243,142,150,242,231,244,81,158,190,184,254,116,
+191,103,151,3,49,219,140,241,199,217,65,199,62,183,106,1,235,212,100,103,39,146,77,47,217,134,9,49,196,195,3,189,153,0,99,168,11,116,217,246,231,143,194,128,16,139,94,112,145,250,243,101,59,19,193,238,
+0,237,234,113,253,16,27,117,198,212,140,159,155,166,157,39,243,57,228,31,108,245,61,70,105,190,84,96,156,170,116,61,13,183,57,236,115,116,190,157,143,25,250,83,76,49,49,31,34,123,224,91,16,61,57,23,157,
+61,137,252,232,2,70,150,17,201,85,35,61,22,194,94,49,156,28,249,109,143,82,115,158,131,234,223,180,91,40,56,68,227,174,44,231,200,192,28,241,17,7,182,48,61,113,145,71,217,224,95,224,82,127,237,128,199,
+124,243,114,227,158,220,28,122,17,72,99,132,159,187,159,65,229,192,72,247,4,56,29,58,144,120,227,3,173,0,52,221,219,251,3,232,109,167,3,191,76,67,207,108,250,100,113,234,223,180,192,122,186,143,99,109,
+63,229,204,124,253,79,212,244,52,227,28,0,140,198,164,227,248,132,99,158,152,59,95,175,235,192,238,77,1,33,200,196,41,140,117,1,62,157,201,60,250,142,57,227,169,160,4,243,97,39,219,166,82,222,96,56,3,
+4,159,44,1,215,223,142,221,169,165,237,155,35,169,234,75,91,203,156,228,228,2,99,219,248,143,229,74,98,139,32,249,41,193,231,231,10,63,250,196,99,175,24,207,215,10,22,0,49,246,123,98,122,29,210,103,167,
+76,225,8,206,49,147,199,108,117,160,4,13,108,56,27,129,198,112,18,69,227,29,192,139,161,250,30,158,148,187,226,237,35,117,60,21,43,129,131,235,1,39,215,169,60,116,224,138,120,141,7,252,186,217,227,174,
+75,30,188,243,247,54,231,234,106,100,66,7,22,122,121,224,252,197,251,113,140,224,113,200,224,99,24,207,90,0,175,136,241,146,207,143,247,216,113,199,63,45,167,167,57,231,167,230,8,224,60,137,38,200,244,
+146,110,62,191,232,106,50,62,190,253,185,186,161,193,201,179,211,216,14,184,40,64,207,110,84,112,71,99,235,215,185,83,43,41,63,232,54,32,103,129,136,143,0,118,35,31,144,39,147,249,0,85,242,35,35,118,249,
+253,114,178,56,35,174,50,77,174,222,220,242,15,92,243,210,69,183,136,227,13,117,238,119,198,15,225,152,151,61,0,199,28,227,25,205,61,167,231,63,99,178,56,244,242,215,208,118,148,116,237,208,14,249,165,
+251,64,110,150,214,64,14,56,100,61,71,92,239,4,254,60,112,125,242,0,239,179,228,113,246,210,65,24,249,162,206,126,134,51,156,224,158,58,122,224,115,25,128,134,195,45,248,250,27,112,7,110,141,3,14,64,29,
+184,245,226,158,37,4,16,96,180,29,121,27,63,12,126,247,176,28,156,113,207,181,56,178,129,149,138,208,100,147,147,176,231,211,33,164,244,236,63,30,192,0,69,228,62,114,22,255,0,28,242,30,208,147,223,28,
+218,143,199,167,214,134,134,92,131,139,226,8,56,12,246,71,7,167,36,91,224,251,118,3,142,41,251,206,14,22,200,117,255,0,150,49,19,208,0,114,204,122,17,220,117,234,105,12,142,188,17,106,50,120,253,213,182,
+56,237,211,159,196,159,97,205,0,48,197,63,104,166,57,207,87,180,4,118,232,182,249,24,39,158,113,199,215,8,194,225,113,149,184,83,236,246,103,169,234,55,69,158,61,113,252,233,30,86,28,23,180,0,156,156,
+65,108,113,223,145,180,142,128,126,29,113,197,68,95,56,197,213,178,131,216,91,195,215,169,235,23,25,244,198,61,168,2,76,221,112,65,186,35,147,215,78,61,70,6,78,213,36,100,122,231,183,0,114,155,238,143,
+32,204,15,39,147,167,227,174,79,28,129,145,198,121,60,156,117,197,69,150,24,197,229,169,228,16,62,205,1,255,0,219,114,0,60,100,19,142,255,0,120,82,133,145,191,229,226,203,146,58,219,91,228,246,233,246,
+113,201,31,142,104,1,73,187,32,146,231,63,55,4,233,224,130,114,6,126,67,250,231,61,57,39,152,207,218,114,9,104,198,71,93,214,57,237,207,250,161,146,57,28,100,103,174,58,82,180,78,121,251,70,159,199,173,
+188,29,184,60,253,159,183,126,252,250,14,16,199,39,95,62,195,142,155,109,96,82,120,244,22,153,231,60,99,245,230,128,17,77,193,39,247,201,200,198,9,178,199,7,57,25,85,60,30,15,65,219,156,83,183,93,131,
+242,207,24,198,114,66,89,18,125,70,112,216,200,207,35,233,145,73,186,101,227,206,179,35,254,189,224,228,28,103,36,194,15,28,127,15,92,99,217,51,63,95,58,208,3,129,159,46,1,212,143,68,29,61,135,110,131,
+156,0,4,95,3,205,194,128,58,13,182,199,56,207,101,143,183,113,147,129,215,32,80,26,253,112,26,127,174,212,132,28,156,224,224,33,83,211,184,35,216,242,41,11,207,211,207,135,24,237,4,76,49,248,20,252,121,
+31,143,119,171,203,158,103,135,142,163,236,192,16,58,12,133,152,0,58,228,244,245,197,0,40,55,164,99,237,13,207,35,41,7,65,208,124,177,99,158,6,49,200,39,166,51,69,60,59,131,159,58,6,29,199,148,49,143,
+111,223,2,113,211,249,241,154,40,3,170,104,229,7,31,100,96,113,206,71,152,57,234,115,180,156,245,198,14,7,76,98,152,99,159,156,66,163,28,243,108,199,62,160,134,67,211,158,6,57,199,97,154,159,203,152,0,
+203,111,114,70,58,50,38,123,103,131,33,35,35,0,228,100,247,61,77,33,50,2,3,65,112,189,242,81,58,158,188,171,156,103,61,207,167,90,0,168,97,152,114,214,214,224,28,99,247,36,48,232,112,64,136,159,174,6,
+7,64,69,35,35,99,155,107,102,201,225,188,185,20,228,227,60,52,60,122,224,145,220,14,149,124,239,35,2,222,98,123,2,168,189,122,227,44,15,30,160,244,228,142,164,57,99,144,128,5,164,135,216,128,84,0,122,
+240,196,113,142,0,30,221,104,3,47,18,169,5,109,97,192,232,68,110,114,59,28,249,93,199,183,174,61,141,242,247,177,143,220,237,148,103,254,249,132,224,254,93,56,197,106,53,180,135,37,109,50,61,10,158,125,
+48,79,255,0,21,233,77,91,73,0,5,172,122,241,133,13,244,231,18,174,127,51,140,243,207,32,3,59,205,144,1,254,128,132,145,218,57,176,63,242,8,63,153,201,231,189,68,90,86,255,0,152,114,156,244,218,46,129,
+200,246,88,135,83,234,120,0,96,244,198,177,180,78,119,88,184,235,140,68,185,247,255,0,150,217,193,193,61,121,224,242,69,57,45,33,94,126,193,49,7,25,205,180,100,244,24,231,237,35,182,125,64,252,56,0,202,
+86,112,57,176,233,255,0,77,47,58,113,198,2,1,211,161,237,144,122,102,148,191,56,54,12,71,57,195,94,14,222,170,217,238,63,195,24,39,84,199,24,224,216,78,71,108,90,159,127,73,78,63,250,252,26,70,88,128,
+25,176,159,175,3,236,172,79,127,73,151,24,250,80,6,73,101,232,218,108,163,182,86,107,236,113,207,64,160,228,227,56,7,233,144,42,64,240,46,73,178,185,83,140,127,174,191,246,245,83,192,193,231,144,115,140,
+138,209,242,237,243,143,176,204,62,182,204,50,7,76,147,113,253,122,230,143,46,21,35,22,50,246,36,253,152,16,73,246,19,156,156,247,7,61,178,7,80,12,178,241,12,31,177,220,116,227,50,223,51,112,113,207,200,
+48,113,238,127,48,69,34,188,4,157,214,151,63,129,190,57,39,158,119,21,245,57,244,173,109,208,131,143,178,76,49,235,105,143,192,147,54,63,95,126,163,33,191,104,128,103,117,157,195,99,140,139,72,253,6,113,
+153,88,227,167,92,142,130,128,50,241,110,73,38,218,233,73,207,123,151,233,220,110,110,63,81,211,56,166,50,194,7,22,247,32,117,4,249,160,14,71,98,72,25,238,78,112,125,199,26,255,0,106,183,0,109,180,188,
+199,32,109,181,64,7,64,65,195,119,233,220,242,113,214,152,46,83,157,182,119,191,140,24,254,68,127,92,125,40,3,35,22,253,60,169,243,206,6,216,155,3,29,247,145,142,113,128,115,159,92,154,121,88,191,134,
+41,125,255,0,119,6,50,6,71,33,91,211,57,63,143,182,163,93,28,96,90,93,228,117,38,38,94,115,215,134,206,121,245,227,220,12,152,60,247,39,63,99,187,63,54,64,11,32,198,51,199,50,40,7,215,223,57,38,128,41,
+8,163,108,98,41,65,192,254,8,63,165,183,191,115,129,218,165,48,176,192,8,252,99,134,22,216,24,231,45,242,169,29,243,158,189,199,106,156,203,41,57,251,13,192,3,166,74,143,96,127,215,18,7,230,121,60,112,
+106,54,154,124,144,44,238,61,56,36,125,126,235,103,244,61,58,30,40,1,60,169,137,192,133,88,116,193,22,188,251,128,79,62,167,7,142,158,213,42,91,185,28,219,199,249,90,119,35,158,29,113,223,191,83,147,145,
+197,69,246,155,145,144,108,238,134,114,1,25,56,207,161,219,129,199,78,113,199,78,180,209,113,117,158,45,174,70,58,252,203,158,64,231,30,88,231,234,123,30,121,197,0,90,251,49,199,250,136,126,173,228,112,
+61,200,148,103,7,190,63,150,11,76,24,3,247,112,18,59,15,36,12,147,234,210,112,9,228,30,59,100,117,2,3,115,117,129,254,141,112,164,122,148,228,103,183,238,199,111,115,143,79,86,125,166,243,167,149,62,57,
+225,130,17,147,215,130,24,156,140,122,243,145,64,22,182,40,31,52,112,131,158,54,189,191,3,215,119,154,164,243,142,131,212,117,205,57,85,6,78,204,145,198,68,159,159,41,55,24,198,7,255,0,91,53,80,79,118,
+56,217,56,24,233,229,196,114,56,236,20,117,28,227,220,245,224,83,13,197,208,39,137,250,30,26,52,24,252,58,241,245,255,0,26,0,180,194,46,141,19,99,174,124,247,234,123,224,92,174,115,207,60,103,175,53,17,
+16,131,196,68,224,241,153,39,99,143,67,139,224,61,73,61,240,61,169,159,106,188,32,143,46,99,232,76,80,30,70,121,193,76,128,113,140,254,185,206,79,181,222,127,207,41,123,231,253,30,47,155,56,238,33,227,
+175,208,227,183,64,0,164,91,30,90,220,245,232,100,185,252,58,94,30,62,153,56,29,169,85,45,155,57,137,19,233,37,222,122,123,92,12,99,220,250,113,76,251,77,209,56,48,204,123,243,111,9,29,207,120,189,58,
+228,2,8,60,212,222,117,230,6,33,148,129,255,0,76,45,135,244,24,231,31,135,29,40,2,35,29,169,39,11,158,189,30,240,175,166,57,186,3,167,248,231,52,240,136,64,194,133,60,96,249,147,3,219,60,53,227,99,190,
+50,59,103,61,41,60,203,190,134,210,82,121,60,65,1,36,117,4,21,3,56,233,144,15,29,250,230,50,247,100,130,45,38,29,241,228,46,113,212,116,140,28,159,199,158,148,1,100,70,73,192,46,196,253,221,215,14,7,82,
+50,54,177,39,143,246,143,90,112,132,156,238,80,196,118,51,220,99,211,60,100,253,58,143,173,83,6,224,147,155,41,88,156,241,228,16,123,116,249,7,183,115,223,160,163,19,245,254,206,145,187,156,167,78,189,
+137,28,116,246,233,199,25,160,11,223,102,235,132,135,211,153,238,56,244,201,222,190,152,224,103,240,226,164,88,79,76,64,152,234,4,215,39,36,241,158,24,131,206,51,242,142,120,61,107,44,121,227,131,96,224,
+231,27,124,168,243,248,229,73,30,157,198,49,215,25,46,42,236,126,107,34,59,99,202,65,215,62,136,188,251,99,175,60,243,64,26,139,26,228,103,200,227,156,150,184,126,114,57,203,40,3,62,190,184,235,197,73,
+177,189,97,80,64,206,26,66,121,207,170,143,110,153,28,142,9,21,144,34,220,57,183,65,143,84,81,235,223,236,205,211,185,200,250,16,120,80,16,100,24,227,82,115,194,164,124,1,158,50,45,179,198,122,158,231,
+60,116,0,26,187,24,103,46,9,193,224,2,57,232,6,79,249,28,243,210,163,42,221,76,104,121,198,76,97,177,216,146,124,179,219,29,1,28,227,60,214,83,109,36,31,40,31,170,150,201,233,142,33,56,3,175,96,125,232,
+218,141,128,35,65,211,164,115,150,234,7,56,131,25,28,40,28,12,129,215,138,0,188,232,59,169,244,63,232,168,64,3,254,217,96,99,29,71,175,74,132,249,91,176,45,213,189,205,168,206,112,114,112,35,31,143,39,
+233,222,160,242,227,60,1,146,114,112,32,152,158,121,207,205,111,198,79,80,6,7,233,82,199,18,231,229,45,144,59,64,70,122,30,246,167,158,58,30,64,199,106,0,93,145,146,54,218,198,79,114,109,27,35,219,183,
+80,51,215,128,123,227,132,49,145,141,176,198,49,216,218,55,60,158,172,92,231,29,184,234,15,166,105,254,83,2,127,121,198,122,152,159,56,3,161,255,0,65,35,63,134,6,125,133,47,149,33,57,19,243,236,146,40,
+239,212,125,135,4,140,122,116,35,61,40,2,45,146,182,54,198,64,231,129,109,34,12,2,114,8,7,158,59,158,249,35,129,154,114,199,57,0,42,133,207,39,48,1,199,66,65,103,57,232,57,254,188,211,252,171,133,206,
+30,76,114,64,84,152,227,39,129,197,160,3,234,7,28,123,138,26,43,188,103,253,44,228,246,134,110,253,122,219,168,60,227,3,30,156,158,180,0,211,27,14,26,96,132,247,242,139,113,255,0,127,7,28,244,92,244,252,
+2,128,112,64,185,136,30,167,48,2,121,199,64,102,7,216,15,94,221,5,32,134,251,24,11,120,72,199,6,9,136,61,249,204,68,96,128,51,144,71,167,25,166,155,91,129,203,37,199,78,130,34,164,250,117,85,199,215,61,
+205,0,46,37,232,183,68,114,121,22,178,96,19,198,48,39,7,158,7,229,131,82,42,204,122,222,231,29,190,207,114,0,207,78,60,242,63,65,200,238,115,136,190,204,249,206,203,174,49,146,19,183,182,28,14,189,70,
+70,14,58,82,152,36,60,148,185,4,244,251,128,247,193,63,189,4,118,29,255,0,78,0,44,44,83,182,72,187,126,156,17,111,114,0,231,61,60,225,244,198,65,206,79,61,41,26,57,151,173,236,163,31,244,239,54,62,159,
+53,215,63,151,166,121,168,76,18,54,70,203,147,223,37,206,61,207,23,24,231,31,227,140,26,96,128,103,15,12,217,245,203,99,175,60,155,156,30,221,49,131,130,15,6,128,39,27,240,115,119,112,227,184,16,55,31,
+157,209,235,219,28,130,63,48,163,176,25,154,114,59,6,130,60,125,72,105,27,211,191,126,245,24,182,139,169,138,76,250,7,126,222,160,93,224,142,184,3,147,207,78,105,126,205,0,63,52,45,215,144,100,32,147,
+201,227,125,238,51,254,113,154,0,95,43,32,243,46,57,24,22,176,113,244,39,25,235,211,168,228,147,138,103,144,185,233,114,71,95,248,244,66,122,115,206,214,43,245,7,143,175,52,255,0,177,219,40,4,199,129,
+187,174,240,9,30,196,222,55,175,98,65,31,149,74,45,108,241,202,251,159,222,160,56,227,7,63,107,24,28,240,0,207,94,57,20,1,15,150,163,31,186,185,32,228,100,89,199,211,140,242,32,56,231,176,24,235,235,138,
+122,164,127,243,237,48,238,11,68,163,36,244,235,108,48,59,241,233,86,86,202,204,240,170,115,158,79,156,196,118,254,237,195,12,122,241,248,119,51,45,149,176,254,12,143,121,219,60,118,7,121,25,3,241,61,
+59,240,1,72,172,96,127,168,151,35,209,98,3,0,117,199,217,193,98,7,184,227,190,41,7,146,188,152,36,199,114,216,198,121,206,7,150,23,28,156,28,99,142,128,158,52,141,157,166,1,17,63,108,226,118,96,71,174,
+55,15,94,128,30,131,235,78,75,91,83,255,0,44,192,255,0,122,70,245,62,173,140,116,237,211,138,0,205,89,109,250,8,128,39,168,59,9,227,129,200,137,207,28,100,100,117,234,106,116,104,148,19,180,161,60,252,
+219,118,174,125,254,206,6,56,239,207,175,190,152,182,181,0,97,17,120,39,137,79,63,76,159,81,143,215,218,153,246,104,143,72,208,253,112,222,220,18,248,228,14,125,135,61,113,64,20,133,204,64,227,206,0,246,
+225,143,0,116,249,97,24,199,80,71,243,235,48,186,139,175,218,7,208,121,227,61,128,24,95,76,116,31,67,233,116,65,30,6,99,76,227,60,1,249,240,253,251,159,92,158,105,124,152,186,121,49,182,79,76,31,174,49,
+187,130,122,227,31,159,96,10,171,123,30,112,36,76,142,161,146,229,243,199,29,64,62,254,253,58,230,164,23,125,214,85,3,183,201,114,163,159,66,71,62,156,116,207,36,117,169,190,202,135,145,107,109,131,143,
+225,124,244,231,56,110,253,56,3,61,186,138,62,200,157,69,157,153,35,158,75,140,14,61,100,28,113,206,113,244,199,64,8,69,211,147,205,220,40,61,27,206,193,199,39,170,159,169,56,3,174,59,211,197,193,206,
+77,196,25,30,243,129,219,143,245,39,63,135,61,56,244,151,236,240,114,62,199,104,8,207,70,110,122,103,163,142,49,211,145,215,156,231,135,164,17,169,207,217,237,71,212,97,70,122,242,243,115,219,215,183,
+92,138,0,69,188,192,249,46,173,15,99,254,185,200,62,152,54,143,147,219,35,220,117,165,251,68,205,214,226,18,51,253,203,144,49,232,15,216,128,3,62,132,12,99,181,79,229,198,115,251,139,60,119,196,144,169,
+57,4,112,76,228,99,60,250,251,246,166,136,226,7,253,92,3,147,199,157,110,122,240,48,12,220,123,99,183,24,231,128,6,125,170,101,31,235,160,31,240,11,220,253,65,91,85,25,235,130,79,57,239,144,10,11,134,
+126,178,192,199,142,74,222,14,157,137,54,231,143,199,219,215,54,118,71,143,187,15,35,3,231,183,4,115,201,207,157,143,196,99,167,214,148,42,130,8,88,186,99,30,101,160,252,255,0,127,156,253,63,28,208,4,
+34,70,7,42,214,231,169,225,46,121,199,187,68,49,245,0,159,160,205,41,146,227,143,158,32,49,208,35,140,117,245,143,61,125,121,28,140,113,86,145,99,32,110,9,159,93,246,100,119,245,156,140,243,201,199,175,
+177,169,135,217,84,100,128,59,16,178,88,245,245,32,220,16,61,48,56,233,142,180,1,72,75,112,78,60,228,29,58,202,224,103,142,6,2,227,175,79,233,71,153,48,228,152,89,129,236,242,19,147,208,141,172,78,122,
+228,231,169,233,154,209,221,0,3,4,251,29,214,46,71,24,227,55,0,125,51,235,223,173,47,156,191,117,36,101,30,235,167,31,192,127,165,0,7,182,7,62,185,160,12,209,36,189,73,133,51,206,51,117,208,12,0,0,148,
+30,216,232,6,121,232,72,164,45,41,57,221,30,56,224,45,214,127,89,135,63,82,51,223,160,173,22,101,108,102,102,1,186,22,93,49,70,122,241,137,203,103,241,62,227,158,24,97,66,114,102,39,35,39,139,30,221,58,
+75,239,199,35,218,128,41,9,36,25,195,40,56,228,25,46,185,61,178,191,111,7,183,35,212,116,20,224,215,13,252,67,167,252,244,184,28,122,231,237,195,174,121,206,112,14,113,156,213,197,141,121,62,114,29,220,
+16,209,88,112,56,238,110,56,239,219,215,39,212,218,1,7,204,132,145,234,44,147,4,250,226,70,28,156,118,252,168,2,1,21,203,114,10,241,255,0,79,23,0,243,143,250,122,110,254,135,235,74,208,92,131,243,5,200,
+228,15,180,220,3,159,80,77,198,120,206,114,15,25,201,199,123,34,56,136,203,201,24,61,14,13,169,56,25,199,221,95,79,78,157,187,83,25,32,24,219,36,125,193,203,219,38,6,56,224,168,61,121,235,147,159,165,
+0,65,246,118,32,228,32,62,247,151,32,130,59,113,56,61,251,250,99,174,1,104,180,35,169,67,235,254,147,114,192,117,198,72,156,227,3,62,153,52,242,145,227,229,157,57,234,60,203,114,125,115,193,247,207,0,
+158,59,113,78,17,33,199,250,68,124,243,143,58,48,79,230,49,233,207,79,231,64,17,173,170,19,144,234,27,213,110,46,215,174,123,135,35,32,30,50,115,129,200,57,230,101,182,69,231,207,27,143,95,244,137,219,
+142,231,231,99,158,113,255,0,214,227,13,48,68,122,220,117,61,174,163,234,125,188,179,143,98,49,131,208,245,202,108,141,120,19,41,25,198,90,237,51,158,56,35,203,231,212,117,231,208,116,0,152,91,99,145,
+38,70,113,247,221,142,61,15,43,249,145,219,56,228,80,109,164,193,249,178,8,231,247,110,231,25,255,0,106,57,50,122,114,63,14,185,45,87,97,159,222,70,0,28,230,228,99,235,242,166,48,122,227,28,143,199,50,
+9,36,219,143,50,50,49,218,233,84,228,114,15,48,28,250,99,191,211,34,128,35,251,48,31,242,209,71,166,251,126,14,113,221,96,30,160,243,199,167,94,92,177,162,242,100,131,36,28,127,163,103,249,192,49,211,
+168,111,203,138,3,74,223,242,212,19,158,118,221,14,152,235,129,0,4,117,201,92,142,156,122,40,103,29,102,92,117,33,166,66,65,192,29,76,106,112,58,250,117,32,140,80,3,51,8,36,9,160,200,28,255,0,162,39,31,
+79,151,63,136,32,243,223,129,74,2,30,151,22,199,142,84,216,147,245,36,8,249,199,175,95,126,212,224,88,158,100,135,24,232,215,54,196,156,243,156,24,95,160,231,191,78,128,224,151,109,108,140,24,72,207,95,
+62,219,142,59,226,212,117,227,142,123,80,2,5,67,199,157,108,125,113,167,99,131,193,235,110,216,239,142,255,0,206,147,105,0,237,123,83,237,246,2,127,241,209,106,59,251,210,238,32,143,150,22,35,167,239,
+44,155,211,61,96,200,253,14,7,110,149,32,148,119,16,227,251,187,236,241,245,56,183,0,159,241,56,244,160,10,230,39,36,144,214,199,254,225,168,48,125,255,0,113,235,131,156,142,188,142,212,211,4,152,225,
+237,7,4,157,218,122,130,15,28,100,69,237,220,0,48,6,61,47,9,131,112,194,60,1,143,151,236,172,7,76,31,248,247,239,193,60,253,59,83,202,198,192,96,199,158,192,155,49,145,247,177,131,16,224,228,228,100,117,
+232,40,3,52,219,177,7,247,182,120,62,144,194,51,245,30,81,61,127,67,75,228,16,0,47,106,71,102,217,14,122,127,215,62,51,232,123,250,213,255,0,45,89,72,49,198,0,232,115,104,73,4,116,24,86,24,7,142,159,143,
+160,33,82,163,108,42,113,193,249,97,57,30,255,0,32,236,57,193,246,246,160,10,62,67,17,195,198,59,13,176,64,71,65,146,8,131,140,100,99,175,94,216,166,11,73,72,35,122,159,80,33,139,60,244,198,45,198,122,
+99,25,192,24,237,90,127,103,206,64,183,65,142,194,52,227,159,96,58,245,192,245,62,148,211,109,34,253,216,121,25,60,66,79,166,14,1,237,220,103,156,142,157,192,51,77,156,136,49,146,125,72,72,128,30,156,
+24,71,226,112,113,207,60,84,70,7,193,253,227,113,159,224,140,227,128,14,113,18,245,39,145,158,115,142,56,206,167,147,119,208,91,177,247,22,242,48,3,223,107,28,99,211,25,253,48,241,111,124,223,122,34,48,
+121,205,172,227,30,220,112,125,121,200,3,4,156,156,0,12,99,14,71,204,210,159,113,8,56,25,62,170,122,114,50,9,25,244,226,154,177,40,227,116,152,206,112,97,94,79,94,162,34,14,79,174,127,10,217,54,215,92,
+228,110,35,4,230,210,110,61,178,72,7,175,24,228,246,61,77,39,216,238,200,36,36,64,16,112,90,214,64,70,121,228,249,203,142,0,244,199,111,80,1,142,99,143,147,151,228,253,223,36,231,7,39,175,217,223,175,
+77,220,28,254,136,177,219,247,19,15,172,82,30,123,114,182,99,61,61,123,113,239,170,109,111,134,48,177,17,156,252,182,142,123,99,141,215,24,244,60,99,39,62,228,161,130,236,228,25,2,28,30,62,196,195,28,
+158,63,215,30,61,49,248,26,0,207,242,109,219,238,172,128,1,215,236,211,159,174,91,236,195,25,231,234,122,245,225,175,4,35,4,25,201,29,150,222,229,115,255,0,124,219,160,247,200,227,25,206,106,255,0,145,
+116,62,245,203,46,15,65,167,177,193,224,117,51,103,62,227,131,215,222,154,241,220,175,63,106,98,125,62,194,220,19,145,222,224,116,237,128,127,14,104,2,150,200,64,201,251,73,10,72,56,134,237,143,212,101,
+0,29,58,28,96,99,167,56,110,248,70,64,142,235,60,99,253,26,244,143,112,118,240,9,61,51,156,115,146,59,220,223,112,62,83,112,224,158,121,176,92,227,215,253,113,56,237,193,235,218,152,210,76,1,38,240,175,
+4,100,218,32,7,176,228,206,48,7,3,168,207,113,142,160,21,202,196,71,17,221,146,7,123,107,165,199,3,174,100,207,61,179,159,199,20,221,241,175,88,103,198,49,147,12,221,71,168,37,127,67,156,96,244,34,165,
+105,223,24,55,237,145,129,197,186,158,152,236,46,143,80,63,175,52,195,115,54,14,219,201,24,118,111,41,84,246,39,0,204,192,251,254,88,205,0,5,148,140,139,121,78,127,233,156,224,146,58,3,251,195,146,125,
+50,7,210,153,185,134,65,181,186,35,28,109,91,129,158,65,207,222,60,12,253,0,244,165,107,137,71,222,185,184,63,47,24,72,193,227,143,239,182,63,51,146,127,0,207,181,40,251,247,87,36,140,227,253,29,8,63,
+142,207,204,143,203,181,0,5,206,62,91,107,159,83,196,164,140,113,206,95,215,0,252,188,15,214,54,50,252,216,130,232,117,236,224,231,176,32,176,236,7,63,81,239,79,107,161,192,23,55,13,147,156,249,49,140,
+145,145,213,161,35,245,207,74,103,219,74,240,39,159,175,67,21,176,252,121,131,61,135,95,173,0,66,12,171,210,27,131,146,79,38,64,58,250,23,193,24,231,32,31,167,52,164,205,140,152,223,191,28,126,155,179,
+130,125,141,72,110,137,63,52,247,121,227,59,82,212,228,31,93,214,236,115,199,227,199,94,105,198,86,61,37,184,44,122,2,182,106,79,124,252,176,160,200,227,208,245,235,158,0,43,239,184,218,118,135,29,114,
+24,71,255,0,179,35,12,142,132,231,28,116,233,81,153,238,71,68,99,142,112,82,19,156,30,131,17,145,207,185,3,24,206,121,171,70,86,200,253,237,210,144,14,113,29,169,36,253,118,18,15,110,123,19,223,154,67,
+36,204,120,146,244,247,226,59,62,6,121,235,22,71,183,63,95,112,10,162,226,228,129,242,73,144,48,74,198,157,79,176,136,126,103,233,81,61,213,210,131,242,77,211,140,195,31,175,76,52,43,215,234,51,206,15,
+90,184,205,51,112,100,187,39,161,30,78,156,199,62,193,163,28,159,168,244,230,161,38,225,126,235,93,28,240,1,182,210,177,207,65,146,8,31,80,50,9,52,1,81,174,238,58,236,155,211,253,90,100,103,182,10,115,
+199,92,28,128,125,234,19,127,116,189,60,208,49,255,0,60,162,233,211,147,189,123,99,156,14,216,198,106,232,75,199,251,173,49,30,134,223,69,235,143,116,4,99,211,215,61,113,192,208,222,140,110,50,103,61,
+26,13,8,113,145,156,98,49,156,116,247,246,60,208,6,113,212,103,39,164,174,122,156,69,27,112,120,227,253,32,14,189,200,25,231,218,154,218,173,194,240,17,192,199,39,202,81,212,245,255,0,143,131,142,0,199,
+32,242,50,122,213,246,130,99,156,182,15,161,135,69,44,7,81,209,71,25,235,129,128,120,200,234,90,208,55,221,50,71,156,99,59,52,111,114,122,128,79,25,61,7,225,216,3,57,181,89,134,112,183,28,140,252,177,
+3,248,225,103,201,207,169,255,0,10,136,234,50,16,51,246,129,208,156,194,216,206,61,90,97,208,242,58,30,48,65,237,113,237,223,167,159,10,241,217,52,126,252,246,98,61,50,8,207,229,80,189,183,57,55,112,228,
+156,100,67,164,14,227,174,19,36,99,25,193,238,56,7,168,4,66,254,78,207,117,146,58,24,71,211,35,19,145,192,244,227,143,81,73,246,201,24,127,172,185,13,147,144,99,0,246,198,63,126,49,156,117,227,142,199,
+165,47,217,35,39,38,234,217,186,253,232,116,163,156,12,231,152,78,51,215,57,253,49,144,90,194,14,76,214,103,183,250,157,36,18,49,212,255,0,163,245,207,191,110,221,40,0,243,230,108,109,150,113,220,242,
+128,145,158,159,241,242,50,51,215,25,62,190,148,190,125,202,140,139,155,133,60,156,147,27,14,56,60,53,199,3,156,129,223,31,40,38,155,229,66,50,166,75,60,118,5,116,193,143,92,237,183,239,199,31,94,104,
+242,109,6,127,121,108,113,215,17,216,131,159,168,143,142,15,3,0,159,195,36,1,198,226,229,185,251,68,236,15,35,98,39,126,229,133,200,252,136,235,78,223,121,143,150,107,133,24,25,37,34,206,58,243,186,99,
+207,98,73,192,200,198,123,193,182,216,19,182,91,99,199,32,165,145,62,248,193,94,135,60,142,49,142,115,140,161,17,47,123,119,193,35,253,85,185,61,243,206,227,131,142,58,250,113,156,96,2,99,37,209,60,221,
+220,116,31,242,206,220,158,120,231,50,131,144,79,242,39,4,26,133,166,184,0,143,181,206,126,182,240,147,248,98,97,245,206,57,60,158,148,102,16,8,219,0,28,227,16,219,30,220,2,57,254,100,159,95,69,86,128,
+16,54,71,235,242,219,219,228,116,206,112,184,7,182,61,48,120,57,20,0,197,158,227,180,179,244,199,48,65,156,96,14,162,112,71,227,158,56,235,213,26,107,147,157,207,32,237,202,70,9,246,234,71,110,231,35,
+219,53,33,150,12,241,10,158,58,180,118,131,158,71,60,167,65,207,94,188,96,130,41,119,39,24,180,182,57,192,228,90,146,71,99,242,176,32,3,206,59,19,197,0,84,38,66,120,118,227,209,34,232,121,236,235,142,
+195,24,192,198,121,166,22,115,193,154,110,9,233,12,45,140,123,153,87,215,167,60,115,208,85,226,201,255,0,62,208,130,121,27,26,0,63,28,74,14,57,250,15,122,128,136,206,71,151,24,246,19,64,191,94,60,227,
+235,145,216,254,28,128,87,196,135,63,189,151,7,63,242,235,15,60,246,63,104,29,65,231,24,20,130,22,63,242,210,225,115,215,22,233,142,199,140,92,242,51,206,15,95,90,156,199,15,117,80,56,233,52,32,243,239,
+230,228,126,25,28,103,177,195,74,65,253,210,71,57,34,127,124,227,137,88,112,61,186,159,90,0,137,173,216,255,0,203,196,253,6,127,209,70,58,100,143,150,98,122,117,237,159,106,143,236,210,118,153,251,242,
+208,21,228,122,100,228,158,9,207,243,205,74,203,7,42,4,138,125,68,221,176,120,251,221,179,145,140,96,142,7,106,140,69,17,4,9,37,36,242,20,79,158,190,194,65,192,207,249,29,64,20,90,202,121,251,65,193,233,
+152,84,250,146,112,88,159,175,7,25,63,74,113,179,155,160,189,117,239,133,141,23,145,236,24,117,231,63,254,186,140,41,80,0,103,61,71,252,124,227,25,255,0,182,191,207,167,61,141,46,63,188,9,231,175,159,
+130,71,29,195,158,227,7,28,28,113,156,224,0,49,172,46,91,165,236,217,207,79,36,114,61,51,231,174,57,61,129,250,30,105,63,179,53,1,210,242,108,117,63,232,192,131,142,49,205,198,56,200,245,231,223,52,226,
+169,142,146,3,215,228,185,96,120,227,25,220,49,211,142,59,210,148,135,3,38,83,254,245,193,110,48,125,28,18,7,4,140,123,30,56,32,12,109,55,80,0,17,117,41,57,56,38,213,123,231,184,156,244,231,183,166,14,
+71,49,13,58,244,18,90,123,134,207,57,22,236,6,57,29,156,147,248,119,235,154,148,71,14,121,87,99,255,0,93,36,110,189,136,18,103,142,61,8,28,156,246,159,228,83,133,141,142,123,151,144,15,114,70,243,215,
+211,182,56,237,144,10,203,101,123,255,0,61,167,192,245,130,94,156,15,94,78,9,245,239,214,147,236,119,96,255,0,199,195,244,193,6,57,1,7,220,25,7,66,120,237,142,248,206,46,238,140,1,186,4,3,131,203,184,
+24,29,137,36,245,201,207,167,175,52,155,163,36,126,230,12,28,125,233,27,175,60,143,222,14,72,199,28,123,96,230,128,43,37,141,201,227,237,13,238,4,39,39,175,66,183,138,120,199,160,233,207,122,151,236,19,
+228,229,238,27,61,1,137,241,156,96,156,139,211,212,254,125,113,142,179,7,140,240,34,128,250,252,239,219,191,19,116,192,29,127,167,10,30,223,28,164,39,158,126,108,129,158,113,204,228,231,242,28,231,182,
+0,5,127,236,249,142,65,73,142,58,150,89,49,207,28,134,189,3,244,250,12,12,149,26,107,231,152,208,244,24,40,164,158,189,65,188,36,18,1,234,115,199,174,106,66,246,164,144,12,32,116,225,84,228,245,199,250,
+224,79,67,211,219,56,164,50,194,7,222,233,232,161,70,58,14,12,157,71,185,61,79,4,115,64,9,246,40,249,12,177,251,131,0,227,223,112,188,83,142,221,50,115,77,251,12,0,240,177,28,122,196,254,157,127,227,228,
+224,250,14,113,238,105,30,120,134,54,183,62,202,187,142,70,112,51,33,246,57,57,57,233,199,52,130,224,12,225,165,7,175,222,140,159,203,121,0,125,78,59,99,154,0,148,218,68,57,11,16,31,238,28,100,115,158,
+110,56,199,29,207,56,227,4,212,109,108,48,66,136,125,191,117,17,24,235,252,119,32,243,219,28,250,12,100,84,79,33,110,68,146,227,215,116,103,156,159,69,36,17,199,60,115,245,197,64,205,33,206,39,184,76,
+158,202,189,251,240,172,51,143,175,245,160,11,30,71,57,41,9,57,234,45,237,9,244,235,246,156,247,57,28,31,94,226,154,209,133,24,242,71,28,255,0,199,173,184,199,126,63,120,216,252,57,253,106,190,38,206,
+62,215,112,79,83,152,211,159,78,176,55,255,0,175,184,230,164,242,159,171,79,41,246,104,179,143,81,147,106,125,179,130,58,122,117,0,82,23,180,106,8,232,77,173,185,39,62,153,62,153,61,72,246,234,105,234,
+24,14,145,251,1,103,19,122,96,112,189,125,128,198,15,57,28,212,94,83,103,2,121,179,219,17,73,130,15,251,150,153,228,117,57,56,234,78,112,105,124,134,201,253,236,184,36,99,247,114,142,216,199,252,121,28,
+100,247,207,224,120,160,9,66,156,156,170,245,233,246,5,0,3,219,1,61,249,193,28,14,7,35,49,236,148,116,81,129,211,22,145,140,31,111,144,100,254,124,251,231,33,181,207,252,181,35,4,231,114,22,28,241,200,
+54,64,243,147,223,211,29,78,92,182,132,17,186,84,97,207,205,229,170,147,140,1,130,109,23,223,35,167,243,160,0,53,194,140,8,247,99,156,253,134,0,79,62,166,60,245,39,175,30,189,51,75,186,124,243,28,96,113,
+203,89,193,158,189,142,210,70,115,219,62,184,235,82,27,5,57,255,0,72,137,119,112,70,197,245,61,115,104,71,7,175,110,157,178,41,14,156,160,100,220,64,7,127,220,198,120,199,253,122,1,219,56,224,251,122,
+128,51,107,185,249,146,1,232,77,156,56,233,199,240,131,233,207,29,122,158,73,95,36,14,64,183,207,66,62,202,0,227,7,63,46,209,237,200,7,6,165,22,81,41,230,226,217,179,200,196,40,59,255,0,181,0,30,254,248,
+227,169,192,45,34,29,36,183,57,199,72,80,128,15,108,133,83,145,129,216,247,20,1,26,197,39,240,155,33,254,244,42,57,250,111,252,179,143,196,243,82,109,184,92,97,172,7,28,230,13,196,129,235,251,204,242,
+1,207,31,92,99,148,251,60,106,127,214,219,117,200,253,201,32,118,193,1,24,254,135,208,245,228,218,195,32,75,108,70,78,73,137,0,235,254,220,99,252,115,147,128,70,8,3,29,46,186,179,216,100,243,145,6,211,
+250,206,131,191,76,142,156,98,163,11,114,1,27,236,88,131,158,35,76,241,207,252,252,156,227,175,94,156,119,169,10,183,103,183,237,194,199,23,99,129,130,177,114,61,115,211,62,189,23,108,161,73,6,223,208,
+141,138,73,231,174,66,103,28,99,28,3,142,253,192,24,36,156,100,57,180,99,158,63,118,173,199,81,143,244,143,148,140,118,193,28,253,73,79,11,33,234,150,188,116,109,135,63,76,109,245,63,136,231,56,162,128,
+59,95,179,16,65,242,157,72,238,55,129,158,184,56,186,57,252,115,145,142,0,167,44,78,8,200,147,142,192,115,206,70,127,227,228,126,30,255,0,153,12,179,129,243,105,215,172,125,124,157,55,143,169,7,4,125,
+15,208,115,146,195,35,142,78,155,124,9,255,0,166,90,106,228,156,240,50,79,168,239,200,247,232,0,242,146,19,128,142,199,220,168,63,173,200,237,143,114,6,15,173,48,198,237,214,38,238,63,131,159,206,245,
+114,61,242,123,140,10,97,150,82,79,252,75,47,48,121,201,254,204,198,61,241,131,140,224,99,61,177,219,33,165,230,110,62,193,114,9,227,150,211,199,208,28,56,31,67,206,51,244,160,5,48,200,71,202,146,30,120,
+33,34,199,39,191,252,76,199,126,63,64,8,167,24,103,224,236,144,253,54,14,120,24,218,117,50,56,199,161,245,24,52,192,101,3,31,99,184,0,243,195,88,146,15,60,113,33,199,191,232,78,104,50,202,184,63,101,185,
+28,116,223,105,207,184,203,55,126,184,28,10,0,105,183,185,193,196,115,131,144,114,25,1,252,0,212,20,12,30,71,160,227,158,199,217,175,8,200,91,174,184,192,145,65,245,255,0,160,145,207,110,221,186,82,249,
+184,225,173,46,241,201,200,146,223,159,161,66,14,8,252,15,169,28,82,23,140,245,182,186,30,153,113,158,189,176,234,217,233,216,116,247,160,6,253,158,247,39,43,119,140,114,55,231,35,232,47,249,247,3,219,
+39,160,160,195,114,188,20,187,62,160,185,32,246,231,117,225,7,56,227,156,118,228,113,74,18,50,217,242,238,71,78,12,210,128,126,167,121,56,25,61,58,245,227,20,24,199,104,230,7,168,196,243,3,159,169,148,
+15,192,145,248,243,128,6,24,39,233,246,123,163,235,134,83,215,215,23,36,113,211,35,235,220,83,12,19,14,62,203,122,71,4,133,149,71,79,95,223,55,31,145,29,234,95,34,83,146,138,252,244,31,104,151,145,211,
+188,184,56,239,207,243,56,62,207,48,206,99,145,73,231,62,116,217,201,35,146,69,192,235,131,233,156,30,128,242,1,24,73,148,28,219,106,39,3,248,37,140,243,215,60,185,201,3,143,112,14,57,164,221,46,57,181,
+212,215,31,223,100,234,59,96,49,7,61,255,0,12,142,184,148,195,32,228,69,43,227,169,18,205,144,122,100,230,115,198,51,206,115,207,113,79,85,36,115,20,167,158,127,123,55,94,189,124,222,71,76,113,211,140,
+99,154,0,131,46,115,254,139,168,12,12,49,253,207,57,227,157,248,36,243,131,211,61,9,235,74,25,199,6,222,239,60,156,148,129,200,24,28,156,73,199,183,30,158,132,212,173,25,110,144,56,3,214,75,131,248,18,
+37,198,114,58,15,124,241,200,80,174,167,136,215,232,210,92,130,7,124,147,51,116,244,253,120,160,6,11,132,80,1,178,186,110,59,69,9,39,241,4,245,200,232,123,119,238,195,115,15,3,251,62,232,245,235,111,25,
+237,208,101,128,244,201,199,24,206,125,45,226,108,96,68,24,241,194,203,38,61,73,57,156,123,246,30,180,253,242,255,0,207,48,61,140,164,227,235,251,225,147,250,14,127,16,12,239,57,24,156,105,247,35,142,
+115,109,25,237,199,221,144,19,128,122,125,49,131,72,88,241,182,198,224,113,222,209,199,160,237,48,227,167,31,227,87,139,73,206,118,131,144,62,86,57,206,48,58,206,125,242,114,79,181,57,93,135,44,112,70,
+73,25,198,121,206,51,191,143,113,147,211,156,100,80,6,126,246,224,11,39,60,14,77,171,182,61,122,92,144,51,207,108,244,244,160,22,25,38,196,231,212,89,184,30,189,60,242,57,57,56,31,143,76,86,159,156,59,
+51,118,233,32,236,114,56,220,122,14,9,233,140,19,199,20,162,101,198,114,199,56,254,44,158,49,145,156,127,158,220,138,0,201,204,171,202,217,160,36,114,126,199,54,65,244,249,89,184,252,135,94,58,84,134,
+91,140,228,217,142,6,78,45,110,7,211,56,250,158,8,247,205,104,52,234,65,33,65,199,109,196,14,188,103,230,199,183,79,83,216,10,129,167,192,225,80,47,25,249,151,175,126,89,212,12,100,246,231,7,144,51,64,
+21,140,215,24,219,246,44,14,188,91,206,15,99,207,191,36,14,57,28,247,197,70,101,185,56,11,104,202,115,255,0,60,39,0,227,185,39,4,122,128,15,31,137,21,120,79,38,114,177,100,1,217,226,227,175,76,205,142,
+125,142,122,212,77,113,112,189,17,7,7,59,132,28,122,115,251,193,215,131,145,199,92,227,168,5,67,37,216,199,238,138,243,158,32,147,35,235,156,224,245,30,189,57,193,38,154,210,222,115,133,101,227,63,234,
+37,227,24,247,0,228,242,6,122,140,247,230,200,187,186,227,11,6,58,99,117,182,62,153,49,129,207,3,156,31,126,197,223,110,185,81,254,166,220,100,117,243,109,112,51,232,26,34,51,199,7,56,206,15,126,64,43,
+36,151,132,228,190,9,236,209,72,9,28,246,44,72,199,225,223,7,174,28,90,243,24,243,194,228,99,253,73,60,253,74,140,103,25,228,224,122,118,51,157,70,227,28,71,108,121,227,253,34,207,130,8,231,229,140,99,
+190,71,124,211,127,180,46,113,205,189,161,62,166,88,31,174,79,24,137,134,120,231,168,236,61,40,2,47,54,237,112,13,216,95,251,96,27,144,61,0,31,167,7,147,131,217,55,92,158,126,218,184,201,235,22,204,17,
+244,3,145,206,120,250,103,169,155,237,215,71,164,86,128,114,7,205,7,225,156,198,14,51,206,50,114,123,142,180,171,117,118,221,30,217,123,128,166,38,252,129,7,57,231,176,246,28,26,0,174,68,199,239,95,71,
+220,143,145,120,29,14,27,204,247,238,58,142,221,155,251,211,195,95,198,121,60,121,105,201,227,174,24,254,124,243,211,185,171,159,106,187,224,125,162,46,123,44,112,14,113,147,202,198,79,78,122,116,232,
+0,169,150,238,124,252,211,39,190,0,99,238,78,96,199,229,143,175,168,6,126,201,8,31,233,144,156,144,112,65,199,83,215,230,25,7,60,140,115,250,211,132,108,79,55,54,238,121,227,99,122,228,244,147,119,111,
+95,95,90,209,91,137,8,249,166,61,56,194,12,250,255,0,207,33,142,51,219,215,189,41,186,31,197,44,135,142,63,117,184,14,163,176,62,185,29,40,2,143,147,46,113,230,91,227,60,16,242,175,111,79,52,224,126,32,
+126,162,131,3,156,101,173,152,99,24,50,92,18,113,192,61,78,126,131,3,220,115,86,204,234,217,253,235,145,237,11,140,127,227,156,156,103,185,246,56,205,32,242,219,4,151,57,238,97,145,112,79,92,28,14,248,
+238,122,247,198,40,2,162,193,131,146,45,122,103,5,174,49,223,166,7,174,123,156,231,159,83,63,145,156,2,182,192,14,120,251,113,201,228,142,128,12,116,198,51,142,199,176,156,136,7,2,87,83,142,126,82,115,
+234,50,221,51,211,160,197,40,107,92,124,215,13,207,174,125,120,192,18,168,36,123,123,241,218,128,32,192,92,225,109,8,200,228,181,233,207,29,195,40,56,60,246,234,115,156,230,152,84,147,196,118,121,57,32,
+176,188,92,30,6,115,181,176,70,120,200,30,199,3,53,96,189,154,231,50,49,28,99,7,25,250,124,236,113,208,240,7,191,25,167,9,108,113,201,108,142,15,239,135,232,23,24,235,198,79,233,138,0,135,99,48,230,59,
+92,140,30,77,233,199,92,117,129,135,160,200,57,3,142,135,20,140,174,160,124,182,153,235,203,94,231,25,61,188,156,30,70,49,143,206,166,50,216,182,64,119,0,103,119,239,20,1,128,127,136,228,28,241,158,231,
+56,237,77,221,96,120,103,56,24,3,247,195,119,28,118,43,158,227,159,199,166,104,2,16,204,51,186,59,67,245,146,249,64,247,3,201,3,183,61,248,206,120,197,27,128,235,29,177,231,57,15,120,64,7,24,28,194,1,
+207,126,125,56,245,155,202,211,92,114,126,165,159,119,36,14,230,76,3,129,212,250,156,83,132,90,112,227,204,140,116,199,42,64,199,79,249,121,201,247,227,159,230,1,92,152,216,229,225,180,57,207,95,180,147,
+199,57,229,14,125,135,92,253,13,4,64,78,12,118,227,167,32,92,142,113,234,161,71,191,92,241,216,116,180,177,216,12,226,117,7,142,145,22,231,156,127,203,81,215,158,71,92,253,65,119,149,106,216,2,225,142,
+115,128,45,219,147,235,159,52,129,212,244,231,169,205,0,81,242,225,36,254,230,32,61,158,235,167,175,36,228,122,31,214,133,134,34,112,32,132,143,247,165,63,158,236,113,142,196,113,142,58,3,87,90,214,220,
+130,60,231,238,8,16,73,158,15,94,25,176,120,245,192,207,94,149,25,178,131,167,156,196,118,205,187,147,237,144,170,184,235,201,237,237,220,1,139,20,24,255,0,81,16,237,193,108,126,0,159,199,28,96,159,173,
+5,35,92,108,134,32,71,0,224,142,121,234,60,197,60,96,14,72,231,165,33,176,78,171,112,128,227,189,156,238,61,177,251,209,142,56,224,19,239,218,129,96,132,103,206,182,199,109,214,50,117,238,112,101,25,63,
+95,112,49,205,0,46,205,216,4,70,51,255,0,76,229,60,30,131,254,62,59,1,142,113,193,206,59,212,130,21,201,195,170,130,59,69,35,99,25,207,31,106,0,31,112,57,224,241,140,212,63,98,140,115,246,139,76,3,192,
+109,58,76,115,215,254,91,16,125,122,15,199,165,52,219,70,163,254,62,44,0,24,201,251,3,161,28,112,73,223,140,231,215,169,160,11,63,103,60,237,156,115,212,152,152,12,103,29,62,214,1,244,224,82,139,105,55,
+110,251,97,92,158,241,48,28,158,223,233,12,58,115,215,183,76,224,213,79,45,88,255,0,199,229,166,7,79,244,60,253,71,51,12,122,246,237,214,156,35,0,99,237,118,167,156,224,90,170,158,79,61,47,1,31,151,233,
+208,2,209,133,243,255,0,33,22,7,39,160,35,29,120,3,237,64,1,159,99,212,245,166,152,103,232,47,165,111,64,6,239,199,38,110,120,247,228,247,29,169,148,80,126,107,155,101,62,246,160,231,208,231,237,153,25,
+201,236,72,29,1,39,53,32,217,212,95,89,100,245,221,106,113,131,215,254,98,11,140,118,31,129,160,9,196,23,24,226,242,227,31,236,128,59,103,36,137,88,12,114,49,211,129,233,130,138,151,74,120,212,46,248,
+227,239,145,159,167,239,191,199,176,7,0,230,61,199,170,223,233,163,35,60,218,200,185,25,255,0,102,253,179,158,252,18,113,131,233,82,14,113,157,67,77,30,255,0,101,144,15,253,28,73,237,234,120,30,167,32,
+18,5,156,253,235,251,178,115,255,0,61,6,61,88,252,210,17,207,114,115,140,117,226,148,192,249,207,219,111,73,63,197,189,127,250,227,4,247,25,253,105,20,57,31,38,161,99,140,156,236,183,35,183,124,183,110,
+188,231,29,250,243,48,18,96,131,168,217,244,192,196,78,51,215,160,227,158,131,131,142,184,62,128,13,242,159,141,215,151,172,15,56,47,30,62,131,228,111,207,57,7,244,22,22,31,242,222,245,129,236,211,6,7,
+216,230,35,159,195,3,53,48,134,83,159,248,152,68,217,232,23,204,82,61,115,150,0,31,208,126,85,50,219,183,252,254,198,65,207,221,107,129,200,233,130,185,236,64,200,30,152,160,10,166,49,215,124,231,182,
+12,168,8,250,126,235,166,125,61,58,115,130,229,183,61,66,207,207,39,247,234,62,167,34,223,250,122,158,181,111,236,242,19,242,221,39,126,178,221,251,142,165,15,30,157,63,3,74,182,147,117,251,82,54,58,143,
+54,227,156,250,254,228,241,158,121,62,157,241,64,21,190,207,253,232,230,207,108,78,185,227,28,238,48,116,252,72,252,58,59,236,169,221,156,99,143,154,225,6,51,211,172,60,127,46,120,61,197,131,103,40,25,
+51,56,231,156,77,57,250,255,0,203,14,217,231,57,227,32,245,167,11,89,20,15,158,232,100,227,2,114,185,200,198,50,240,243,145,199,61,71,56,234,104,2,175,216,173,200,7,150,32,147,131,52,108,63,2,45,216,142,
+123,255,0,46,225,177,135,57,218,61,65,46,167,30,131,38,216,116,60,112,188,145,156,115,205,207,177,22,231,253,51,32,145,143,180,162,231,208,227,203,80,127,44,113,223,156,134,207,25,37,111,176,63,233,238,
+33,248,227,110,73,39,182,62,153,238,1,81,109,161,81,214,33,145,252,78,51,145,235,155,65,248,224,227,158,61,148,219,194,15,9,17,29,254,120,207,114,50,55,89,2,7,127,160,24,205,92,88,35,199,220,185,56,206,
+55,94,1,147,215,25,218,9,235,128,58,126,88,169,62,203,199,252,122,205,219,147,118,167,3,28,18,10,228,14,58,99,191,65,220,2,167,217,33,108,124,145,3,212,97,162,233,142,122,233,236,121,250,250,241,232,225,
+98,8,200,104,136,29,203,197,142,217,199,252,75,199,126,191,134,51,142,110,139,82,127,129,212,30,222,106,30,57,31,197,31,231,192,244,198,1,52,245,178,7,170,177,206,115,243,198,123,103,180,93,71,67,249,
+228,140,154,0,171,246,38,64,78,99,56,28,228,66,217,3,28,229,172,6,59,224,145,150,236,6,5,56,65,215,27,61,112,45,109,223,28,96,142,44,64,234,79,83,233,158,121,171,31,102,141,79,221,112,7,35,45,23,124,30,
+15,151,199,57,236,51,156,247,225,226,221,56,56,136,103,63,126,72,14,115,220,3,17,39,191,32,240,113,248,128,87,242,221,49,251,184,100,231,56,251,20,56,31,79,244,112,115,238,7,60,247,226,156,4,128,15,244,
+88,113,255,0,94,145,127,47,179,0,15,229,159,94,42,216,182,7,0,172,61,115,128,232,51,131,145,247,96,4,159,83,198,121,201,237,83,165,162,99,145,23,124,124,242,145,207,92,1,16,30,156,142,249,4,80,5,45,132,
+145,155,78,125,173,33,61,126,182,221,121,62,135,61,123,138,79,32,28,238,179,118,231,144,45,16,99,142,251,109,198,49,215,160,28,245,224,103,81,109,199,64,214,224,116,193,121,151,24,7,208,2,123,103,215,
+166,69,43,89,198,122,77,22,122,141,178,76,72,227,156,110,147,159,167,25,160,12,209,111,0,192,107,9,176,121,35,236,228,14,156,114,177,131,183,63,143,124,147,208,251,52,25,249,108,102,81,215,63,103,152,
+12,115,211,4,100,30,153,250,115,218,175,27,24,143,45,112,224,243,142,8,62,252,147,244,25,227,184,245,203,26,210,49,210,229,198,7,31,57,28,246,228,113,219,235,249,112,1,81,161,183,3,31,99,159,32,245,251,
+53,192,25,252,100,7,140,159,199,3,181,30,93,183,123,105,135,29,13,188,185,63,248,255,0,229,208,0,49,86,196,4,112,39,45,146,49,251,215,252,122,140,14,112,56,254,89,20,225,7,98,216,231,140,202,160,243,146,
+122,161,36,12,250,113,129,130,113,64,20,204,22,173,143,244,105,189,57,130,113,207,227,46,7,83,200,3,240,230,163,54,182,195,129,109,40,57,29,97,148,142,163,146,119,49,231,190,6,50,9,226,180,133,187,131,
+145,43,99,143,186,208,55,79,125,160,156,118,233,200,252,158,209,74,1,253,235,113,212,19,111,201,252,189,248,235,233,244,0,207,91,43,127,249,227,40,247,22,242,28,3,208,242,65,0,245,206,1,237,222,131,105,
+8,228,36,153,200,194,180,32,47,7,7,57,149,115,211,156,28,12,156,103,57,171,158,68,173,130,103,0,127,180,44,255,0,28,110,97,233,207,79,195,7,8,97,155,56,19,100,115,208,217,183,7,167,25,201,207,24,234,113,
+245,205,0,85,91,117,207,250,183,236,114,19,0,30,153,255,0,143,165,31,158,63,66,41,254,73,7,134,144,231,156,20,78,48,49,193,23,184,252,254,157,14,42,65,21,202,253,215,252,12,86,234,51,234,10,146,63,28,
+251,246,6,148,155,172,143,150,2,71,56,101,141,79,225,243,168,198,122,114,63,15,225,0,21,95,187,54,7,64,99,136,118,244,55,163,156,14,131,63,165,72,11,1,202,205,208,245,16,140,156,103,32,11,195,212,247,
+192,234,121,233,80,255,0,165,145,204,80,247,4,42,199,211,39,32,102,96,167,63,143,78,253,195,28,160,18,109,211,39,39,62,84,39,241,0,92,142,184,234,7,92,114,120,160,11,25,238,81,243,199,82,138,73,32,17,
+131,231,48,28,122,145,234,9,21,27,4,28,157,192,243,145,246,140,1,147,208,144,216,245,238,120,192,224,99,53,8,115,144,209,156,119,11,22,1,61,71,221,186,199,167,99,219,158,40,80,163,239,66,122,30,162,81,
+144,121,0,108,148,244,238,57,25,56,235,64,22,129,80,0,203,254,23,140,163,30,216,110,153,207,126,231,189,5,163,28,129,54,56,199,250,124,160,100,14,196,18,48,125,71,167,229,68,198,164,146,34,143,241,23,
+64,123,28,172,160,3,215,215,39,7,57,165,17,96,100,68,132,241,252,87,32,228,244,198,233,79,215,60,123,138,0,181,184,49,233,48,207,0,157,74,115,207,208,48,207,28,224,103,161,206,50,9,126,213,42,55,25,48,
+48,72,109,70,233,65,0,14,127,33,233,129,216,245,172,220,72,24,159,37,135,32,16,26,98,56,232,1,243,186,240,126,153,56,169,2,185,4,8,164,7,159,151,123,224,156,246,13,112,167,183,32,125,125,232,2,230,200,
+250,108,13,145,156,190,167,119,143,203,99,103,174,113,216,156,3,142,68,101,98,82,7,151,25,108,156,133,212,47,115,200,7,129,228,28,227,233,239,234,106,5,142,92,240,179,140,245,193,80,50,122,245,186,201,
+231,175,39,241,169,151,204,76,229,229,28,117,145,193,80,62,158,113,231,167,67,201,224,1,201,160,6,21,136,245,85,7,184,125,70,240,158,157,195,90,244,199,66,122,231,233,70,32,81,156,70,15,160,212,46,65,
+227,216,66,164,251,30,196,243,131,197,75,230,202,64,2,118,30,194,66,51,142,224,13,195,146,7,7,160,244,57,169,215,205,239,52,157,186,202,131,29,243,247,9,3,215,241,238,115,64,21,21,225,231,3,184,57,107,
+219,178,49,219,147,180,18,123,125,48,125,159,186,46,235,25,233,255,0,47,87,3,175,7,146,65,36,113,211,35,57,235,205,89,62,121,198,217,207,30,146,35,113,235,243,48,238,56,227,183,212,22,129,112,163,38,229,
+176,121,35,228,200,231,215,205,192,245,193,30,195,29,192,33,220,135,156,198,6,122,125,178,110,132,244,193,193,252,7,124,224,224,210,127,163,231,44,170,199,208,77,59,146,123,30,24,156,246,224,30,61,234,
+99,44,171,255,0,45,100,198,115,146,96,60,30,160,18,231,0,118,206,78,7,4,113,74,39,99,210,225,121,236,198,17,206,123,228,144,7,61,136,246,233,64,21,201,183,233,246,76,144,122,110,184,57,247,35,107,99,161,
+227,12,58,208,100,139,60,89,72,51,200,219,28,207,211,168,0,194,71,92,0,115,200,206,122,129,86,183,179,117,187,140,114,58,180,3,3,219,60,246,207,35,144,71,124,0,223,49,84,227,237,112,156,244,220,208,30,
+222,128,14,222,252,138,0,168,206,167,4,89,221,158,128,129,20,192,96,116,3,8,58,115,130,7,174,122,242,220,160,231,236,151,57,28,109,104,165,39,56,231,248,51,198,49,200,234,73,238,77,90,32,62,113,53,177,
+234,0,197,171,119,7,131,141,221,179,206,64,247,238,207,35,28,147,106,71,114,235,108,71,62,160,178,244,247,28,245,0,80,5,54,117,39,3,78,186,110,79,62,77,193,4,159,76,33,28,228,142,49,129,216,244,168,76,
+106,199,254,65,119,89,244,242,101,4,122,28,121,92,19,142,127,62,78,113,162,96,141,143,38,192,143,247,45,71,35,216,63,182,15,60,228,231,52,162,16,78,66,90,178,140,159,149,109,61,61,124,220,228,117,198,
+63,44,240,1,142,209,133,231,251,43,82,201,235,178,9,27,215,7,111,217,143,234,57,244,244,97,141,15,39,76,213,176,112,71,250,12,217,199,253,250,78,227,35,129,142,220,26,221,40,163,35,200,136,241,130,67,
+90,175,227,147,39,78,199,145,211,57,34,163,48,134,60,218,140,17,128,119,218,156,123,124,172,79,182,64,61,58,80,6,9,72,199,31,96,212,151,28,141,214,78,50,15,76,110,7,215,7,3,190,121,166,50,160,228,91,223,
+38,123,125,157,71,3,208,180,124,144,123,14,184,239,131,93,11,91,116,34,200,145,143,225,104,200,238,58,124,163,60,247,24,7,161,234,105,134,21,92,1,96,220,245,59,98,13,250,231,39,215,140,3,211,34,128,57,
+221,240,142,171,114,158,187,160,136,231,62,219,87,61,184,199,61,40,243,172,128,57,51,2,120,193,183,132,247,193,200,222,57,239,242,142,58,12,142,78,227,66,91,143,236,233,78,71,247,109,129,227,167,34,62,
+125,123,30,71,39,138,97,182,192,35,251,62,80,122,156,60,35,56,206,63,229,145,250,115,216,231,212,80,6,41,107,67,208,72,71,95,248,247,140,96,123,16,228,227,63,207,173,42,253,148,131,243,58,31,120,147,29,
+120,28,48,3,3,160,201,61,56,173,111,36,47,31,100,156,103,168,13,25,110,15,61,33,25,0,250,31,195,166,88,240,158,190,69,218,140,250,163,41,3,128,48,35,7,3,129,199,167,95,64,12,209,246,112,112,178,231,25,
+200,242,192,62,253,36,29,78,14,65,230,158,26,32,120,116,193,235,152,241,245,207,207,223,30,255,0,174,5,191,37,249,202,220,1,212,101,14,61,120,34,54,200,238,15,30,244,207,39,156,110,111,125,200,221,253,
+140,71,255,0,173,193,232,13,0,64,124,174,190,101,175,61,3,103,61,51,234,221,142,112,61,121,232,41,140,202,79,6,213,189,48,9,232,59,5,137,136,192,207,92,19,219,57,171,6,28,14,10,183,78,176,147,233,215,
+42,189,63,83,208,247,168,152,115,130,80,30,191,234,97,25,250,110,228,116,239,198,56,38,128,34,103,81,130,124,128,79,4,237,144,15,108,147,18,228,231,144,51,215,166,0,52,194,98,63,116,91,147,158,129,174,
+7,39,140,113,25,231,183,95,94,105,238,152,201,86,65,156,156,237,182,81,147,235,207,76,116,239,199,81,222,6,19,14,146,142,220,161,79,95,102,199,183,28,3,199,94,40,1,175,145,247,98,183,35,184,50,93,46,125,
+11,1,7,28,244,192,254,130,161,102,117,63,234,109,192,234,15,155,118,121,237,255,0,44,9,252,137,227,167,165,76,207,115,158,103,147,158,9,5,15,30,227,114,227,158,57,246,61,41,73,186,97,254,186,67,237,189,
+59,116,235,113,192,57,60,122,159,94,160,20,222,89,20,130,82,223,175,57,146,232,241,201,198,26,223,166,50,114,1,207,110,149,25,185,24,255,0,87,1,81,147,128,243,140,224,251,91,17,143,243,147,140,213,224,
+151,68,103,12,217,236,210,168,63,152,152,140,251,100,254,92,211,91,237,127,243,200,131,142,158,116,36,127,232,194,113,211,191,65,64,25,173,52,45,213,96,7,254,186,79,145,208,119,128,55,229,146,113,248,
+84,37,160,231,229,140,147,233,44,227,28,159,88,198,113,215,174,7,4,14,121,212,34,244,227,8,195,128,63,215,67,129,235,214,70,231,24,228,227,167,110,161,184,187,7,230,103,0,28,143,223,192,188,28,115,196,
+77,237,211,56,239,218,128,50,213,163,201,97,181,125,188,249,84,246,255,0,99,29,59,228,1,211,173,48,200,71,220,69,108,159,249,254,43,244,200,24,231,182,61,49,142,245,170,69,223,35,237,18,99,145,147,120,
+131,0,115,198,219,114,127,94,221,105,155,110,65,63,190,152,131,219,237,199,244,197,177,246,233,199,183,39,32,25,69,166,10,48,160,145,233,124,70,57,36,99,56,253,73,224,113,72,90,92,29,219,199,3,165,224,
+110,113,217,119,3,145,211,166,225,248,98,181,188,182,234,254,121,61,50,215,210,96,113,199,31,102,235,143,211,3,166,105,134,56,115,156,160,56,31,122,246,80,79,78,255,0,102,232,56,228,241,198,69,0,101,237,
+152,243,230,72,160,255,0,211,202,245,233,221,129,56,3,31,95,94,181,27,7,7,253,116,217,236,69,193,199,124,112,36,7,215,140,159,108,99,53,168,225,19,145,36,96,231,162,222,202,217,7,4,244,182,39,63,78,185,
+231,140,212,70,84,3,254,62,29,64,35,165,212,248,235,207,91,80,14,1,245,250,251,128,80,43,112,122,77,114,50,115,255,0,31,15,143,210,111,65,130,115,130,49,138,63,210,128,24,184,155,31,245,218,83,129,159,
+105,253,143,124,251,28,213,163,116,163,31,233,146,224,103,254,94,167,35,175,127,220,142,123,19,244,244,164,251,122,142,183,50,227,212,221,200,123,228,231,11,158,189,189,104,2,15,50,232,12,125,162,82,114,
+9,6,73,249,56,255,0,174,164,253,123,156,211,203,92,158,76,210,246,227,253,45,184,199,222,198,226,56,238,59,123,243,149,123,228,111,249,110,231,175,252,188,206,71,225,148,193,39,175,31,135,106,104,189,
+143,144,110,24,227,57,45,44,196,142,223,195,183,4,14,164,231,167,76,208,3,182,78,221,101,112,51,131,152,175,14,123,30,3,40,60,31,124,245,164,242,72,224,204,73,193,201,242,111,255,0,35,134,199,28,28,242,
+57,25,25,232,130,245,67,12,93,40,24,232,205,115,156,158,152,224,143,99,131,216,100,154,26,240,245,91,248,193,237,159,52,159,196,238,231,142,157,7,235,64,10,98,67,214,224,158,224,24,47,177,249,134,110,
+121,28,123,231,175,1,166,53,95,249,108,135,36,117,75,190,71,253,244,15,60,103,158,59,244,20,13,74,225,78,22,250,60,125,15,205,248,2,122,116,231,63,137,230,164,251,116,205,201,189,95,94,17,128,231,168,
+31,35,47,30,199,31,149,0,68,19,39,30,98,14,128,97,110,176,65,198,115,212,158,51,198,125,253,41,60,176,9,30,100,71,183,204,183,60,247,232,78,57,199,166,49,82,155,155,130,63,227,230,50,79,171,39,177,29,
+83,35,183,124,251,82,249,183,76,57,149,61,119,117,252,6,219,115,193,255,0,123,142,120,245,0,172,99,7,140,169,60,158,4,135,215,183,151,208,123,115,143,90,107,91,51,12,170,228,122,237,151,0,158,160,230,
+33,206,59,123,227,222,173,159,180,156,98,69,60,112,7,156,63,15,150,209,134,8,206,9,224,113,158,41,133,111,83,230,220,71,80,51,37,202,224,123,98,213,9,237,238,56,61,168,2,137,183,101,63,50,227,35,163,6,
+7,143,251,97,193,227,212,114,113,234,41,134,48,14,11,0,1,254,243,1,142,227,254,61,206,127,33,248,86,152,109,67,0,161,221,143,238,205,120,72,29,115,129,17,0,103,232,121,207,74,122,73,169,14,144,202,220,
+245,19,95,103,169,231,136,64,56,252,79,166,57,200,6,80,11,253,248,128,236,25,100,111,229,103,199,32,242,127,0,115,154,118,16,245,54,217,237,152,220,253,50,77,143,28,30,125,243,142,43,91,205,213,16,3,228,
+59,14,191,235,175,207,228,69,185,24,30,220,244,57,52,255,0,55,83,97,243,90,187,1,239,126,115,192,238,32,231,39,235,147,198,115,138,0,200,8,131,146,45,88,123,44,157,63,13,63,158,189,51,238,51,212,72,35,
+135,57,16,218,242,51,202,76,65,246,39,236,29,250,145,223,189,95,105,181,0,126,91,9,59,242,199,81,219,147,159,250,100,112,78,51,219,241,192,52,159,107,212,84,127,200,52,231,25,200,254,209,39,191,28,198,
+8,60,142,231,211,214,128,42,109,131,160,130,200,28,115,129,114,70,61,112,44,178,167,177,199,83,233,140,83,196,54,199,172,118,127,149,230,49,233,197,178,254,96,31,66,125,44,11,187,224,14,237,59,147,220,
+181,250,227,7,160,202,14,122,116,25,198,115,215,148,55,151,188,15,176,38,15,172,215,128,227,28,28,236,206,14,48,123,28,146,61,8,4,75,21,144,206,96,181,39,215,117,234,240,122,113,246,114,114,122,14,120,
+228,125,36,88,237,78,113,111,104,160,255,0,211,75,241,215,235,106,48,57,232,73,207,83,145,77,23,183,74,79,250,10,15,92,205,59,15,110,28,47,25,238,125,57,20,53,213,235,113,246,21,57,57,225,156,129,219,
+163,163,0,71,161,227,174,125,40,1,254,85,170,129,136,237,129,28,99,125,251,118,231,149,136,2,79,81,219,31,141,12,176,146,62,88,56,0,97,90,252,54,112,120,25,139,184,237,130,61,249,205,87,50,223,28,226,
+209,23,175,87,139,3,158,251,209,115,208,129,206,79,189,48,189,231,67,111,22,88,240,119,219,103,167,79,190,2,245,235,145,159,94,104,2,207,149,30,73,192,235,145,137,111,123,140,228,253,211,158,253,0,239,
+218,163,125,188,140,183,92,241,37,225,253,124,225,147,223,145,215,183,122,175,139,161,201,133,23,30,147,90,142,223,237,59,122,253,113,216,2,73,51,118,126,240,218,49,255,0,61,44,14,51,140,128,72,4,96,244,
+231,28,224,99,184,3,216,170,253,233,164,0,156,159,248,251,231,39,169,204,164,96,250,143,235,72,54,118,146,82,0,232,22,82,9,255,0,129,57,3,191,56,252,61,27,182,224,244,50,227,131,195,233,216,207,124,101,
+203,31,79,124,14,167,128,166,41,176,112,210,116,232,95,77,207,61,241,187,147,199,4,158,190,163,52,0,133,163,7,27,231,0,103,36,192,172,51,235,243,251,113,223,142,79,36,83,12,139,252,51,76,58,116,183,131,
+60,123,52,136,49,215,175,94,184,167,139,123,134,28,44,205,158,1,3,78,39,232,49,46,126,188,119,198,125,39,91,59,145,192,138,113,144,121,242,244,195,245,228,220,100,96,243,158,15,126,64,160,10,94,100,64,
+12,220,92,14,59,219,217,30,253,127,215,130,57,227,174,59,123,211,11,196,71,50,220,28,159,249,225,104,160,103,185,205,201,31,151,173,105,11,59,159,249,227,114,125,252,189,49,184,201,232,68,227,28,118,207,
+167,61,105,69,163,1,150,134,227,159,88,172,49,244,192,187,231,169,237,219,158,70,72,6,110,200,79,222,23,71,215,17,88,254,57,63,104,24,235,216,158,51,207,57,165,17,195,208,172,248,62,144,216,231,3,56,206,
+219,134,199,108,231,175,7,175,53,166,109,88,116,183,184,60,131,145,111,100,112,79,126,46,179,235,158,158,149,25,183,144,18,62,207,120,0,233,254,137,7,63,93,183,64,250,103,39,182,49,214,128,40,121,22,231,
+168,188,224,129,196,86,131,63,77,178,250,115,156,15,124,115,133,48,194,188,102,244,22,201,3,203,179,94,62,134,225,65,239,207,56,235,146,113,90,11,107,43,28,253,158,231,158,128,219,196,163,35,166,1,191,
+0,123,244,199,167,74,112,179,185,94,182,174,84,112,11,65,9,238,7,25,212,63,30,195,24,232,58,128,101,52,112,175,241,95,31,98,150,188,253,8,184,31,142,15,191,4,138,43,76,218,206,51,182,213,65,3,189,164,
+12,122,30,138,53,3,159,199,215,7,173,20,1,214,139,117,198,124,132,3,142,68,145,183,60,228,112,253,64,206,15,30,221,169,173,110,164,231,203,140,117,192,202,114,113,142,190,113,60,122,116,237,130,64,21,
+125,175,161,56,62,125,169,250,91,177,97,249,2,6,49,215,119,0,243,220,152,205,221,185,235,60,25,63,221,131,161,233,212,174,120,232,113,192,60,230,128,42,125,155,25,33,23,142,184,36,228,250,159,222,145,
+159,108,99,222,151,201,36,96,164,95,240,44,122,147,130,76,135,243,231,212,84,194,238,212,99,247,209,147,200,4,91,179,3,212,28,99,32,28,250,245,57,227,173,49,175,109,135,30,105,29,201,251,43,122,116,206,
+204,247,232,167,61,50,1,24,160,6,24,217,73,202,198,62,129,59,117,233,187,143,160,201,253,105,164,237,227,17,146,113,247,150,34,61,123,166,126,160,12,251,246,165,251,85,191,79,54,76,243,214,214,83,158,
+222,128,142,195,169,227,234,65,105,158,215,39,231,153,136,233,182,202,80,125,242,115,143,110,255,0,135,66,0,229,105,112,10,173,190,120,251,209,192,192,125,1,76,99,143,238,145,207,90,51,63,32,139,77,199,
+36,145,5,183,79,97,229,245,234,112,61,59,119,66,246,228,30,46,207,126,44,155,146,115,212,249,131,190,113,200,239,239,150,111,182,234,198,228,114,126,245,164,131,142,185,226,113,147,211,211,169,198,113,
+200,4,129,174,64,224,219,224,19,210,218,216,0,71,126,87,242,234,79,174,105,172,215,89,206,232,177,235,246,120,186,251,96,1,140,122,1,207,60,131,129,17,150,208,31,191,42,243,222,218,224,18,0,228,28,74,
+195,63,143,124,80,103,180,28,135,159,211,229,134,231,208,14,113,40,30,222,227,20,0,253,211,142,72,140,243,193,242,19,158,188,229,80,245,244,199,28,28,228,102,157,230,73,145,187,203,232,115,254,143,211,
+174,127,128,96,246,237,216,227,140,212,31,106,177,92,134,146,224,30,71,49,92,1,255,0,125,121,249,200,231,129,145,211,167,25,5,213,150,8,86,156,228,240,66,76,62,167,12,199,36,119,193,252,59,208,3,142,73,
+44,12,99,147,159,244,80,127,167,161,56,199,35,60,243,64,5,178,60,213,56,233,139,85,200,233,212,25,71,31,135,126,188,114,209,61,155,100,111,185,207,57,7,120,61,57,232,192,14,78,113,215,235,78,243,45,113,
+144,242,142,71,82,115,156,31,66,120,238,64,7,24,227,56,205,0,42,196,164,16,95,39,211,236,39,243,202,92,47,30,184,30,132,99,165,31,103,133,71,207,43,14,122,253,146,64,127,0,46,50,113,199,60,126,3,130,139,
+61,175,59,76,167,215,45,220,103,140,109,224,241,206,127,1,197,59,207,128,119,126,220,23,113,156,19,215,17,176,252,70,49,248,98,128,35,48,192,114,60,201,200,61,197,172,163,130,49,144,69,206,122,118,28,
+231,234,13,52,195,15,66,36,32,117,38,9,135,126,255,0,233,32,159,240,252,106,199,218,173,248,249,29,186,112,190,96,206,126,182,231,60,245,193,233,233,142,92,30,220,227,16,207,147,156,16,228,240,122,2,60,
+145,128,113,142,188,159,94,148,1,75,200,183,4,19,27,149,198,14,96,155,168,206,15,252,125,28,240,125,1,235,215,52,158,68,57,249,98,97,201,31,52,18,175,78,184,34,231,147,215,168,232,70,56,235,164,60,162,
+120,134,228,114,51,201,36,254,34,221,142,115,206,48,125,48,121,38,69,86,36,236,138,96,123,143,222,99,29,143,22,153,224,250,99,182,49,64,24,237,107,25,227,202,7,131,193,138,99,233,211,23,64,30,220,247,
+227,61,5,49,109,35,82,127,112,27,174,63,117,39,174,79,222,186,57,239,215,24,239,222,183,68,119,29,76,23,7,211,62,127,25,36,131,133,181,25,56,7,28,103,174,56,226,148,172,248,31,184,99,199,241,11,146,123,
+227,63,232,249,207,110,71,39,56,244,160,12,47,179,70,79,54,76,195,185,16,200,6,58,100,5,184,60,112,15,227,156,19,197,6,222,28,16,44,219,174,55,24,238,20,14,61,231,57,62,152,4,143,94,72,27,126,116,234,
+54,253,157,78,6,114,18,243,35,223,253,90,140,241,211,169,28,250,83,196,183,7,39,200,13,199,59,133,214,58,253,1,36,251,227,156,16,8,24,160,14,116,195,17,31,45,185,82,61,22,228,243,198,56,51,115,233,129,
+253,49,73,246,72,207,38,14,64,228,178,92,140,245,232,50,217,31,153,61,14,78,107,165,18,204,115,136,19,62,230,228,113,238,25,190,191,231,168,36,186,4,17,16,92,100,112,204,0,25,234,65,117,250,231,168,238,
+78,40,3,156,251,52,99,172,120,244,62,68,252,113,244,108,244,234,115,207,126,78,92,45,145,128,93,196,41,244,138,98,125,184,40,88,96,227,184,25,237,142,43,164,18,94,175,31,40,7,145,135,108,231,4,127,124,
+158,135,212,128,71,90,67,115,118,9,220,129,184,199,205,35,142,159,136,199,30,184,206,122,227,160,7,62,182,145,144,115,51,227,183,238,95,183,7,63,186,57,7,176,198,56,224,154,95,177,195,156,135,149,185,
+56,197,184,29,79,95,158,220,242,127,94,248,230,183,76,243,238,199,217,163,56,224,255,0,164,199,219,216,220,18,7,65,131,128,122,246,197,32,184,152,244,183,64,70,112,12,176,28,14,132,127,173,63,135,30,220,
+156,80,6,42,219,168,225,126,217,215,140,65,26,129,199,168,179,224,159,124,129,235,234,173,2,143,249,107,168,124,185,254,4,237,131,199,252,75,248,233,235,192,224,26,215,243,167,108,145,7,62,171,52,24,25,
+206,122,74,49,207,57,200,224,254,52,25,110,9,193,137,203,14,114,46,237,215,129,198,1,243,136,0,3,193,231,145,199,34,128,48,246,16,223,235,175,87,175,37,16,28,142,153,206,159,219,167,227,248,84,163,118,
+72,251,69,217,250,37,185,207,110,134,195,63,136,193,192,56,227,145,172,101,148,112,97,7,177,205,213,185,235,145,234,73,198,15,56,32,116,244,195,119,183,83,2,159,173,205,177,63,145,12,64,244,24,56,246,
+52,1,152,101,11,214,75,188,242,50,33,135,36,231,176,54,67,60,254,25,252,69,52,220,167,119,191,32,14,241,219,143,211,236,138,57,35,28,28,242,50,107,79,122,114,77,186,228,119,55,118,195,212,28,225,7,65,
+248,122,231,154,97,120,187,219,39,57,227,237,81,16,221,0,232,158,152,250,247,39,28,128,103,155,200,0,228,95,28,241,159,46,19,211,208,139,79,82,15,56,192,28,142,212,211,114,15,32,94,0,63,216,83,143,251,
+230,200,254,160,130,58,242,5,105,101,9,200,130,37,235,129,231,194,79,211,44,138,125,179,192,233,192,4,10,112,86,28,132,64,63,223,133,135,166,51,131,250,147,207,56,207,52,1,152,47,34,4,131,246,188,140,
+30,65,198,120,244,176,3,220,227,175,167,76,55,237,144,156,157,243,12,247,103,148,96,241,212,11,49,193,245,231,147,222,180,217,115,255,0,44,227,99,216,249,145,174,49,211,128,7,32,119,7,39,219,28,166,205,
+216,194,32,199,113,36,109,248,242,196,253,120,236,114,122,80,6,96,190,136,103,150,99,193,201,107,142,61,78,86,216,116,207,64,49,158,248,21,50,221,163,17,149,112,122,112,247,121,252,9,183,253,65,199,167,
+165,92,42,189,124,160,72,200,206,97,62,248,193,60,231,0,103,60,119,227,20,210,161,128,81,23,83,201,196,94,252,12,18,113,232,121,7,24,56,160,10,141,52,76,122,74,122,142,100,190,28,116,254,24,64,254,159,
+212,220,27,238,153,1,7,129,246,171,161,199,115,243,91,134,231,147,142,131,156,14,77,89,218,58,4,96,71,162,47,62,249,7,63,144,228,125,120,122,134,0,242,223,128,28,231,212,25,128,234,79,248,114,40,2,152,
+141,243,157,197,123,243,117,116,221,58,116,133,135,25,62,159,143,90,70,130,102,57,18,224,156,242,46,46,112,50,113,192,48,96,99,56,239,219,57,171,225,78,51,182,64,114,120,199,226,72,195,145,212,231,131,
+223,52,194,188,228,239,32,246,45,140,156,251,57,252,9,4,254,84,1,158,97,145,113,153,72,96,48,127,125,33,62,220,24,198,125,122,15,210,131,20,167,132,148,112,7,62,96,228,244,39,37,14,48,61,189,177,233,117,
+188,165,228,240,113,192,51,30,190,157,49,235,205,42,249,68,224,5,236,114,110,152,112,123,125,209,212,122,244,207,214,128,40,172,19,146,51,63,36,96,143,52,112,59,99,247,121,250,244,231,183,112,255,0,179,
+185,31,52,174,79,76,137,33,60,240,7,12,139,212,31,255,0,87,107,216,94,10,249,121,7,32,155,198,92,30,159,221,4,99,220,30,59,230,140,30,171,228,131,140,228,223,202,8,245,232,65,244,207,56,61,61,104,2,135,
+149,140,102,103,56,239,190,215,144,112,122,144,120,61,63,159,99,78,9,131,159,53,250,99,150,179,200,252,225,35,183,95,169,171,226,41,176,63,227,223,24,206,127,181,46,242,115,219,131,201,231,166,115,253,
+100,17,93,16,54,172,7,176,198,165,121,206,120,231,12,50,61,9,224,28,228,250,0,80,216,164,169,243,36,198,59,155,47,99,159,150,19,238,49,232,125,243,79,83,15,241,59,227,28,12,218,130,78,51,215,202,198,72,
+193,60,254,24,3,23,30,43,179,193,142,62,196,237,212,175,72,39,220,134,108,147,233,207,230,73,168,188,187,129,140,197,25,193,233,253,161,168,144,112,115,140,237,198,120,252,15,210,128,26,162,212,30,26,
+113,239,230,219,16,121,255,0,102,33,208,116,60,254,166,167,79,178,228,19,36,220,99,32,77,6,78,79,28,20,237,252,192,227,209,139,246,149,206,33,132,116,24,251,125,246,225,207,56,24,7,233,147,199,108,96,
+84,202,46,136,7,203,86,62,134,234,249,128,199,99,243,131,223,130,49,215,167,60,128,74,126,198,123,93,144,1,206,219,187,112,15,124,0,20,114,120,234,79,99,216,210,132,182,198,71,219,23,191,203,117,110,122,
+247,35,114,145,143,148,103,161,57,29,121,166,8,238,79,63,103,81,198,14,39,190,39,158,121,253,225,60,247,24,247,245,192,97,148,145,152,37,94,153,218,247,132,100,142,188,185,207,78,249,227,183,106,0,144,
+162,131,144,110,148,14,237,113,25,227,182,54,200,72,199,114,125,179,192,201,95,40,54,9,121,71,185,154,54,60,144,123,184,56,0,103,7,191,83,205,42,197,34,253,232,166,201,207,87,185,7,62,163,29,113,159,124,
+30,57,20,167,229,31,52,119,67,185,37,238,10,156,30,249,140,251,0,55,114,6,123,26,0,13,188,124,124,238,115,238,158,252,228,92,40,31,143,127,66,40,54,201,193,13,147,198,73,124,158,195,181,215,211,39,36,
+123,98,148,24,200,249,163,159,35,161,13,34,129,215,215,24,207,29,143,110,71,101,221,0,57,204,192,28,31,190,220,245,238,99,63,204,254,93,64,25,246,97,146,85,193,238,6,225,147,140,103,150,186,97,159,160,
+207,166,58,135,125,153,128,206,56,61,195,167,243,105,136,246,35,220,115,83,22,129,134,55,76,8,198,8,56,62,157,74,174,123,115,129,244,20,133,98,56,200,184,61,121,222,153,207,110,227,219,129,215,167,76,
+80,4,102,44,129,193,57,199,67,1,206,61,247,183,57,62,221,184,244,67,108,252,56,10,1,198,55,136,15,92,16,48,80,175,76,250,145,232,123,204,97,140,0,85,39,25,238,210,170,145,158,191,64,114,61,7,28,83,124,
+140,228,143,55,0,103,105,159,45,235,158,0,61,61,7,62,131,165,0,67,228,56,28,139,92,114,112,82,14,79,213,87,175,183,62,195,140,82,136,149,72,98,45,185,235,129,0,252,62,98,61,120,227,131,207,6,165,49,72,
+8,3,206,83,143,186,38,39,35,223,159,204,30,121,29,186,46,198,39,230,75,150,201,24,33,183,31,110,8,25,231,167,60,247,231,146,0,209,28,71,37,132,36,243,128,30,213,78,125,6,20,228,118,244,224,122,83,192,
+69,236,160,1,255,0,61,237,148,30,248,203,66,120,57,232,125,15,106,95,43,166,35,185,224,14,177,70,115,215,25,37,198,7,79,113,143,78,42,69,183,114,120,75,161,198,87,16,41,237,215,228,223,198,126,189,199,
+7,144,0,6,139,251,167,39,251,183,54,71,39,254,5,7,30,157,56,227,35,142,38,6,35,214,57,136,237,137,236,6,125,15,203,1,28,100,118,239,214,144,90,200,8,196,87,78,58,99,236,173,215,254,4,128,99,29,250,156,
+240,48,64,167,125,146,118,251,182,183,67,235,100,153,199,208,255,0,245,255,0,196,1,115,15,32,197,58,228,28,254,242,212,228,231,212,66,160,19,200,29,59,227,217,127,117,199,203,113,207,161,135,156,115,213,
+99,227,215,60,14,249,164,22,51,146,51,5,210,12,243,155,1,159,161,194,31,92,113,207,233,82,155,9,71,38,11,172,116,230,193,65,236,56,6,28,227,208,103,35,159,106,0,62,209,26,96,24,231,35,142,25,151,25,200,
+192,24,116,28,250,14,135,183,90,5,220,35,63,43,142,120,232,73,24,207,81,38,59,126,30,253,143,177,200,57,22,215,76,58,252,186,126,79,110,120,143,31,151,62,128,226,129,110,220,150,182,186,7,253,173,53,8,
+36,156,99,34,60,250,243,140,231,214,128,30,183,209,255,0,10,72,220,116,242,208,147,245,201,63,158,56,247,20,166,245,71,63,103,148,241,142,159,175,29,249,236,15,110,148,45,191,60,91,74,8,227,39,77,35,159,
+127,144,3,215,158,125,106,39,180,118,36,152,216,243,206,116,242,184,28,241,254,167,211,166,72,7,245,160,9,62,216,63,231,216,182,15,70,125,164,30,112,62,230,125,254,184,25,39,20,27,198,31,50,218,128,0,
+232,206,221,59,241,140,142,216,199,167,215,21,141,161,31,242,207,159,79,177,166,115,236,25,64,28,30,252,112,121,168,254,205,201,62,81,227,131,155,107,60,119,3,168,207,28,113,207,78,131,32,0,11,70,253,
+179,150,183,133,48,57,6,73,199,242,66,57,199,99,156,115,129,205,55,251,77,143,30,85,176,3,144,26,73,112,7,108,157,188,14,184,56,233,156,158,153,174,182,241,15,188,8,233,147,246,123,47,126,160,46,70,50,
+71,230,51,214,164,9,106,49,200,57,28,230,27,79,234,131,142,58,30,135,191,83,64,18,255,0,106,49,28,197,98,49,198,75,204,59,103,175,149,143,199,61,58,99,20,54,162,79,84,211,182,255,0,123,206,144,30,249,
+199,201,199,79,124,251,99,32,9,109,140,7,84,29,136,183,179,234,7,24,60,115,199,63,161,237,78,16,192,217,253,248,35,4,140,91,216,145,233,206,242,56,29,121,227,29,121,20,0,169,126,78,126,75,62,221,46,10,
+227,233,144,7,60,99,142,220,123,47,218,119,127,5,175,83,247,110,220,31,201,78,58,227,174,59,140,211,69,181,175,81,118,138,113,211,201,211,212,228,131,216,54,61,113,232,50,122,114,87,236,214,195,24,188,
+207,3,162,88,15,167,241,254,188,15,166,40,1,68,224,240,5,152,237,143,180,18,122,115,212,231,35,175,92,113,234,121,153,78,79,222,182,29,126,236,160,156,117,234,37,92,143,174,56,29,57,226,169,75,117,63,
+241,242,217,25,224,13,60,158,115,156,100,244,57,250,12,247,167,109,182,96,51,116,120,254,242,105,160,254,67,119,160,231,39,0,98,128,47,5,7,239,73,22,7,64,26,51,215,30,179,103,29,7,92,254,36,225,124,132,
+97,247,128,57,255,0,166,121,218,125,75,75,147,142,50,15,210,170,164,118,96,113,115,22,72,234,199,78,24,206,57,31,39,4,251,30,252,12,212,184,181,224,125,174,48,78,121,205,161,227,219,108,88,231,24,193,
+201,25,60,227,154,0,148,90,33,193,44,153,57,63,118,46,15,92,228,76,51,211,160,167,27,40,207,34,76,30,58,42,15,253,186,3,168,29,184,231,145,85,202,219,115,254,151,24,237,214,200,246,25,60,199,220,227,35,
+220,116,168,155,236,195,173,236,124,31,249,237,96,163,182,120,242,24,142,157,6,122,116,238,64,47,11,8,207,87,110,120,39,9,252,140,141,215,144,58,224,156,146,40,109,54,50,49,134,199,80,118,196,70,65,28,
+140,191,61,177,239,216,145,89,187,160,29,110,215,131,146,5,213,128,239,237,0,36,250,210,121,176,127,207,206,238,156,125,166,200,240,56,7,253,65,4,113,219,161,198,125,40,2,240,210,211,187,56,25,234,34,
+67,211,142,114,8,63,227,159,83,82,127,102,198,163,27,223,28,99,16,197,129,206,112,64,192,192,198,112,15,65,235,89,196,218,191,222,145,113,158,191,104,177,56,237,206,109,148,130,64,236,59,250,83,194,216,
+228,102,225,9,0,0,77,197,152,199,24,193,219,2,143,203,35,222,128,46,253,138,17,247,165,234,64,255,0,82,132,227,61,71,239,7,3,30,190,192,211,13,165,191,102,199,35,7,236,171,211,223,108,191,253,126,152,
+28,154,135,200,211,152,115,60,68,228,127,203,212,25,234,14,51,246,83,215,142,199,183,39,173,59,200,178,232,179,167,126,151,104,59,228,112,182,235,143,114,6,113,193,207,56,0,151,236,176,128,113,46,49,198,
+13,186,129,130,51,143,245,220,117,238,59,246,197,47,147,26,140,25,1,255,0,100,66,128,117,231,254,91,17,193,250,123,213,83,109,100,79,250,245,207,253,127,21,62,188,102,53,234,51,211,60,19,138,140,218,89,
+228,226,231,3,25,219,253,164,196,19,198,115,182,34,123,140,254,190,148,1,120,67,0,231,114,114,70,65,138,63,200,228,18,112,121,228,156,246,28,226,164,242,109,248,59,163,7,3,254,89,33,199,224,16,103,182,
+70,120,197,103,11,91,51,213,195,28,96,99,80,153,128,235,198,68,41,130,113,158,185,239,215,34,158,45,44,198,70,197,110,153,221,119,118,78,6,122,141,167,60,118,193,206,59,208,5,179,13,176,28,178,17,158,
+127,209,193,199,35,161,245,207,161,3,131,205,60,45,166,0,37,24,12,99,253,27,35,215,184,0,12,244,231,233,138,165,246,93,56,227,247,81,115,193,255,0,75,189,28,145,211,38,16,9,207,161,207,63,74,107,91,216,
+14,68,81,30,59,222,234,28,103,25,206,35,192,233,215,145,239,207,0,26,27,33,61,26,53,235,255,0,44,64,238,56,60,103,160,236,126,190,233,229,198,50,73,82,123,5,136,128,113,193,228,199,207,113,156,224,224,
+28,250,231,109,178,7,104,142,215,208,102,238,249,185,62,128,194,58,246,192,36,113,131,142,105,195,236,64,112,144,3,223,23,119,35,60,243,252,43,233,232,120,239,206,104,2,217,141,61,129,4,224,249,96,18,
+120,238,176,49,231,145,207,227,215,20,210,128,228,0,160,224,253,232,164,108,116,231,63,101,235,219,156,147,211,158,181,95,117,183,240,195,6,56,201,55,215,88,233,208,156,224,227,169,231,30,217,230,155,
+254,142,121,242,160,29,121,91,187,130,164,119,36,52,131,241,60,241,232,104,2,98,160,156,28,100,114,64,142,81,249,127,163,140,118,244,244,56,197,68,197,113,128,101,57,206,113,28,192,254,97,23,35,61,199,
+177,28,138,77,214,99,32,194,140,14,114,62,213,62,115,223,254,90,175,30,189,190,131,38,155,190,196,158,109,83,129,199,250,92,188,28,251,220,147,208,122,28,227,215,154,0,129,248,207,201,47,226,179,131,207,
+76,150,41,156,19,207,66,122,118,168,193,102,28,101,114,122,149,32,30,9,193,6,64,121,254,124,103,156,213,213,107,14,115,5,186,242,64,221,115,56,35,28,19,196,189,71,92,115,207,183,4,39,79,25,42,176,47,169,
+251,84,216,237,208,238,63,76,125,115,235,64,20,26,34,199,130,131,25,36,149,108,255,0,232,242,58,30,158,152,227,213,164,5,228,149,124,103,254,88,134,30,253,100,45,199,79,78,56,239,90,38,107,38,4,109,128,
+130,79,38,105,8,60,30,153,149,72,252,61,250,118,141,154,196,228,5,132,96,240,68,206,57,57,7,165,216,199,115,158,7,78,123,80,6,121,49,156,230,56,207,253,176,3,183,253,116,32,231,140,252,173,207,94,13,71,
+136,142,119,70,138,51,212,66,20,0,79,25,33,91,60,103,130,65,207,65,129,138,208,255,0,66,61,26,16,65,224,9,230,32,122,253,219,182,252,64,30,189,42,51,45,160,36,51,149,25,224,171,94,183,35,233,116,71,97,
+193,224,227,56,160,10,68,68,79,221,136,99,176,142,223,4,116,60,200,84,243,220,30,190,216,166,110,181,254,224,224,117,242,45,31,60,158,155,88,99,190,120,254,184,185,231,233,195,254,122,30,163,1,110,24,
+103,183,13,46,48,57,245,62,157,233,76,246,127,194,88,99,128,88,74,216,3,211,50,112,58,113,140,158,71,181,0,103,111,131,39,100,97,65,198,79,217,173,67,99,61,118,237,63,150,127,65,154,105,150,30,7,127,65,
+13,144,39,25,238,99,206,62,188,122,214,136,154,213,143,250,232,179,219,49,74,63,19,134,4,247,245,207,124,118,137,165,182,3,38,120,143,61,22,39,245,255,0,106,96,58,122,1,249,100,80,5,67,60,43,209,36,32,
+244,218,150,60,113,156,99,202,200,252,71,229,76,55,49,142,139,112,57,57,56,176,239,140,29,166,44,129,158,56,235,143,160,169,140,150,189,50,27,161,255,0,82,57,252,174,128,232,15,65,158,58,247,166,148,180,
+108,156,133,247,10,160,251,241,246,162,123,12,100,147,250,80,5,115,121,6,127,229,235,254,250,180,24,231,158,137,215,167,83,143,161,234,195,119,6,48,62,215,131,198,68,214,170,112,115,140,124,132,19,207,
+112,79,29,122,154,180,69,152,32,249,178,123,1,176,114,15,36,31,60,126,25,36,242,71,76,211,128,180,254,17,35,116,234,35,3,167,29,36,96,125,122,158,184,250,128,103,181,236,3,56,123,177,198,121,158,215,131,
+156,255,0,112,125,73,227,57,30,245,31,219,81,143,222,184,35,32,15,222,219,48,228,241,140,97,187,112,79,83,130,61,14,139,11,66,64,242,128,97,221,188,131,201,29,57,39,7,167,112,51,212,114,41,129,32,32,252,
+138,57,231,50,90,160,35,158,129,156,100,224,116,227,245,20,1,68,221,119,67,58,115,208,203,18,227,142,249,36,103,7,183,31,83,77,243,220,245,121,121,206,1,154,3,145,159,168,207,29,61,7,30,245,115,253,16,
+18,173,229,103,177,251,69,166,125,64,4,204,14,126,131,174,127,22,21,179,234,18,62,156,159,180,91,183,7,183,250,220,99,234,79,248,0,86,243,1,25,195,254,47,0,111,199,18,117,228,228,103,174,104,45,156,238,
+4,14,184,202,17,237,156,55,94,217,32,244,244,21,99,22,67,63,42,19,255,0,93,45,70,14,15,79,223,115,140,103,143,254,181,38,219,97,217,6,73,3,18,219,122,243,221,189,253,78,113,140,208,5,95,148,3,133,143,
+57,233,132,39,175,76,130,50,78,125,115,142,70,40,216,205,255,0,44,99,62,229,151,29,253,75,113,219,4,99,174,50,42,216,242,1,224,6,245,204,150,228,254,32,58,247,24,235,208,126,78,253,209,198,17,8,3,254,
+152,114,70,113,192,124,126,60,231,158,49,64,20,62,202,204,50,45,163,57,237,136,137,200,237,157,128,28,243,253,239,115,215,45,54,50,17,197,156,124,246,34,28,243,200,232,185,25,56,237,158,227,165,92,120,
+161,96,51,20,120,60,146,68,127,168,220,6,120,254,103,142,236,88,45,129,249,70,211,223,30,80,235,255,0,109,64,0,227,182,49,207,61,114,1,79,236,83,227,139,36,245,56,49,99,191,7,160,252,79,31,209,191,99,
+186,228,11,53,199,78,30,223,232,79,65,192,29,8,237,156,213,230,183,180,39,157,185,193,31,55,150,113,212,116,23,28,156,158,49,200,235,77,242,44,249,3,105,3,36,1,22,241,158,231,139,128,115,219,144,125,249,
+226,128,51,254,199,118,191,242,227,147,146,121,104,71,175,81,189,114,61,121,228,128,104,251,46,160,113,182,200,0,127,186,32,60,231,158,179,145,208,117,199,183,60,85,195,13,154,156,109,78,248,43,110,195,
+145,232,124,209,212,227,242,166,24,109,15,77,221,57,225,138,241,207,27,165,207,94,192,103,57,231,158,64,42,181,182,164,51,254,142,84,158,198,59,66,184,193,192,36,201,200,199,182,6,57,34,163,251,62,168,
+70,124,148,199,161,134,196,145,140,227,57,124,30,231,29,51,158,15,90,180,96,183,236,100,198,120,1,28,246,56,198,101,4,99,36,99,169,60,12,224,211,124,136,206,126,121,87,29,15,148,88,245,61,183,56,199,7,
+140,117,227,20,1,92,195,168,168,35,202,65,156,100,121,58,121,231,160,235,252,178,58,246,205,51,58,170,228,132,92,159,250,118,176,207,224,55,244,252,15,181,61,173,145,178,124,217,142,1,63,234,128,30,152,
+63,186,227,167,3,146,122,247,20,207,47,203,198,199,152,127,179,181,63,47,158,219,161,233,158,0,35,60,80,2,249,250,162,224,28,2,61,45,236,73,62,163,42,122,14,159,142,61,194,139,173,72,156,18,127,11,109,
+60,159,81,215,56,235,216,224,122,28,82,239,152,116,150,76,15,226,38,16,73,7,166,77,161,61,186,0,70,56,224,1,150,7,184,207,203,230,48,57,255,0,150,176,160,61,248,6,204,177,25,231,60,103,183,173,0,72,39,
+190,126,50,125,112,109,180,254,217,245,3,62,227,7,60,96,243,77,19,94,176,35,121,30,191,232,182,68,241,211,110,35,99,207,28,244,24,207,57,53,17,123,163,159,221,77,248,75,22,62,135,254,37,204,114,59,228,
+156,116,237,79,2,235,24,17,207,207,81,231,67,140,250,22,109,52,12,12,12,246,253,69,0,74,13,208,228,191,36,255,0,207,59,101,29,251,125,149,129,56,237,187,233,147,212,38,228,241,230,231,174,70,203,113,211,
+4,140,125,140,2,71,160,255,0,12,68,223,107,192,219,28,253,15,30,109,184,199,124,255,0,199,128,57,252,63,144,203,71,218,187,199,115,158,70,76,177,0,71,185,251,6,49,248,140,208,4,192,78,58,59,113,193,218,
+109,215,166,57,57,182,24,199,183,191,174,41,15,218,8,39,124,216,39,179,175,66,79,31,45,171,14,216,235,156,115,193,206,34,6,108,159,221,206,49,206,62,209,26,177,3,63,244,232,1,7,25,61,122,123,131,81,51,
+200,65,62,93,192,199,25,251,92,29,72,233,204,107,142,59,156,227,147,64,22,124,185,72,193,149,249,193,230,96,59,31,250,118,28,123,103,211,158,149,9,183,102,192,222,199,24,24,243,187,242,57,34,5,246,237,
+238,49,218,15,54,82,48,126,213,244,107,152,136,28,242,65,85,82,123,122,250,246,197,1,93,128,59,110,24,142,184,184,83,248,125,220,243,140,255,0,83,64,10,108,229,39,229,147,110,115,143,222,72,126,160,145,
+14,9,228,123,241,159,163,13,156,234,120,145,27,0,255,0,203,105,1,250,131,229,103,39,128,56,28,158,189,105,89,61,86,101,200,206,26,84,207,39,31,222,94,114,15,233,207,171,4,99,28,153,198,58,114,172,120,
+235,143,222,33,235,211,158,71,25,232,104,1,12,19,242,60,196,59,79,57,150,64,120,60,241,229,47,35,129,193,231,183,94,23,203,156,131,135,143,161,235,51,182,127,224,65,79,56,237,156,147,156,115,73,130,56,
+87,186,224,103,10,19,128,48,120,255,0,75,200,227,57,28,228,122,10,92,72,71,18,94,113,254,202,0,7,208,94,14,120,61,135,110,212,0,207,34,224,12,150,140,142,251,110,38,24,228,30,131,29,125,49,249,82,121,
+23,25,227,104,198,1,6,91,158,56,3,36,2,15,95,94,189,7,180,161,88,103,247,215,73,207,39,203,139,31,136,23,167,160,7,211,249,229,193,119,3,155,155,220,96,227,106,64,51,235,130,110,88,144,123,12,231,57,244,
+160,6,139,91,178,14,12,35,211,116,179,228,142,121,203,191,94,221,135,76,241,205,43,89,222,99,59,97,231,210,108,103,255,0,38,135,57,235,200,193,231,140,82,132,80,121,186,191,7,168,230,48,78,49,208,125,
+167,3,208,224,127,82,95,229,199,255,0,63,55,172,122,96,146,9,252,174,64,60,116,3,143,199,128,0,197,183,189,31,242,202,19,142,237,115,130,125,199,250,88,254,89,247,61,151,201,188,60,108,128,129,216,93,
+96,14,79,81,246,240,8,36,119,28,28,119,169,76,113,149,202,203,126,71,168,100,200,199,83,205,208,56,29,248,252,123,213,102,142,61,216,89,175,201,233,252,12,125,177,254,148,72,235,252,134,40,2,65,5,201,
+97,242,196,49,142,69,193,60,30,152,255,0,137,134,127,250,221,186,84,130,222,94,70,248,215,131,255,0,45,20,158,51,212,54,167,211,24,228,117,24,199,3,136,120,83,204,186,138,145,253,226,131,39,130,63,229,
+231,35,212,112,63,44,84,158,97,32,102,109,64,227,190,232,191,79,222,18,59,119,233,237,140,0,73,246,73,127,231,180,64,30,6,90,0,48,125,255,0,180,115,216,30,164,255,0,42,62,207,56,0,11,152,123,255,0,21,
+185,28,231,167,252,76,142,7,127,66,71,160,170,237,38,225,193,190,110,199,50,198,15,83,199,94,8,247,3,219,29,4,37,185,56,75,230,99,221,158,44,103,190,64,43,249,159,173,0,92,16,222,12,98,234,2,122,224,27,
+126,70,48,120,254,208,236,59,158,56,244,166,149,188,255,0,159,168,50,58,109,48,147,211,167,252,132,63,46,189,192,233,131,84,201,32,92,155,123,227,158,230,84,0,224,240,14,214,7,3,28,12,230,147,205,144,
+156,11,91,143,64,26,84,231,60,227,59,137,36,228,244,25,244,0,14,64,39,63,105,7,38,234,63,127,245,71,159,64,62,220,192,251,147,248,138,113,91,162,8,23,192,127,219,56,216,140,113,255,0,63,100,1,131,212,
+117,233,211,53,88,201,55,252,249,204,64,199,252,188,4,35,223,13,187,36,241,207,3,56,207,94,24,100,147,56,48,206,189,112,62,212,185,228,116,225,115,200,235,199,65,199,28,16,11,130,43,131,140,222,131,201,
+235,4,125,15,29,238,136,198,50,15,174,106,64,183,75,210,236,48,57,3,247,54,235,145,199,127,181,103,31,79,240,38,138,220,76,128,109,91,132,192,28,139,150,35,62,216,76,142,72,198,6,58,245,233,79,251,76,
+227,143,50,235,182,64,184,149,137,207,178,128,122,247,199,182,72,234,1,99,109,203,116,185,12,51,142,145,251,118,55,60,254,121,192,233,200,163,109,202,143,154,78,156,143,157,87,61,70,70,203,161,192,198,
+123,12,230,170,153,39,115,146,39,199,171,73,116,51,142,199,9,147,199,127,111,106,112,105,137,224,144,49,130,76,151,76,70,51,216,167,31,76,14,188,228,98,128,37,59,243,135,46,125,213,137,35,190,7,250,73,
+57,199,60,17,211,166,112,73,81,238,159,254,123,5,60,28,239,185,200,244,0,237,96,125,114,7,175,78,40,160,15,68,54,26,119,57,88,178,6,73,218,59,128,57,197,243,2,79,208,158,160,147,205,55,236,58,120,31,41,
+136,115,140,152,228,92,117,228,147,120,153,198,57,29,79,225,80,172,1,136,205,212,192,31,91,144,7,111,68,35,7,240,245,250,205,246,99,131,139,217,88,99,56,251,107,156,158,113,156,169,0,254,158,253,232,2,
+51,99,102,6,68,176,176,198,121,207,175,35,254,63,199,95,175,175,177,169,22,214,200,15,191,9,36,246,14,0,35,60,101,111,88,140,118,232,15,92,247,164,16,200,120,251,84,224,242,63,227,241,219,36,99,174,15,
+255,0,171,24,227,156,74,176,62,56,185,148,19,255,0,79,18,22,200,36,96,145,159,97,248,241,154,0,96,182,178,198,90,120,148,250,24,221,136,207,61,231,57,239,201,4,126,52,27,107,12,28,220,219,103,140,102,
+3,159,115,205,208,39,63,67,211,143,103,148,159,144,178,92,54,56,207,154,228,103,223,61,251,228,122,231,38,156,35,186,0,48,121,241,156,99,207,148,125,6,55,168,200,227,166,125,57,193,160,10,254,85,160,200,
+91,187,96,7,76,64,221,251,31,223,55,78,15,233,220,97,10,68,7,203,117,106,71,180,76,167,241,249,243,198,125,126,157,170,206,219,188,31,248,251,56,207,34,73,186,242,78,8,151,184,238,6,113,207,90,4,183,8,
+8,104,111,31,182,119,220,253,58,153,191,152,199,57,25,233,64,25,204,19,36,125,166,5,0,129,196,44,65,245,60,49,36,116,35,140,28,115,216,9,2,169,31,241,247,30,123,254,225,192,246,227,30,255,0,153,199,108,
+155,222,116,167,254,89,93,244,227,47,55,229,204,192,118,7,145,193,192,231,20,134,105,186,8,231,7,28,131,51,33,235,129,193,186,64,15,62,167,185,7,20,1,67,106,2,65,184,140,140,113,155,102,192,232,58,99,
+36,126,24,250,211,113,18,158,30,34,121,32,139,92,147,235,140,34,250,115,200,252,106,247,155,49,255,0,150,115,128,112,9,55,49,118,247,107,214,239,223,234,122,30,12,74,114,64,147,61,48,110,227,224,122,130,
+183,120,206,123,96,12,99,174,48,0,40,176,66,62,250,253,126,201,207,92,244,217,142,190,254,253,105,60,180,198,50,27,62,150,88,63,160,231,130,122,30,157,135,74,190,22,94,129,101,92,118,23,25,31,248,237,
+199,3,158,163,140,115,158,105,165,121,33,188,204,245,39,237,24,30,196,159,180,117,25,61,143,7,57,2,128,51,246,170,255,0,20,128,227,3,109,169,95,195,132,7,39,167,39,35,7,142,69,46,198,97,195,221,227,253,
+152,100,29,61,57,80,57,192,207,124,159,168,182,99,140,224,224,142,15,38,112,192,145,236,103,39,57,252,51,223,138,136,193,25,36,238,24,207,121,20,117,250,206,167,241,245,193,62,224,17,136,212,3,151,189,
+57,193,255,0,85,38,127,244,112,237,248,251,28,10,122,162,143,249,105,120,195,251,166,41,142,79,96,49,112,8,231,131,130,57,231,234,141,104,174,8,18,162,12,103,253,108,64,99,160,235,114,78,62,157,41,166,
+215,104,7,207,94,6,50,37,132,244,227,160,148,243,208,142,15,94,212,1,35,59,41,10,191,110,7,166,124,155,195,142,123,1,116,125,57,227,29,57,3,52,130,89,216,240,110,206,122,22,138,227,35,35,28,230,231,57,
+199,229,81,125,157,136,200,152,30,185,200,67,158,189,126,102,29,122,224,116,200,250,40,131,210,85,250,16,23,25,228,116,139,7,28,231,250,115,64,22,20,220,227,153,110,177,201,226,57,49,129,158,185,185,29,
+49,208,244,28,243,205,52,165,217,63,44,183,127,81,19,228,129,145,201,51,224,12,146,65,224,159,83,210,160,242,216,18,4,139,235,140,182,113,208,255,0,0,7,216,140,28,243,208,80,99,56,230,76,241,156,6,11,
+211,161,249,152,140,113,147,242,142,132,80,4,248,188,25,203,221,183,110,82,66,126,167,18,250,117,254,166,145,150,232,168,192,144,251,20,144,117,234,56,155,191,208,116,224,103,53,93,80,116,86,25,61,114,
+208,176,254,99,159,66,125,57,207,121,7,154,191,118,114,184,60,16,34,95,126,190,96,235,142,59,250,80,0,35,212,8,63,186,98,59,143,47,156,30,65,31,35,100,247,29,79,224,0,32,142,244,103,22,249,29,72,251,60,
+140,123,246,16,115,211,174,113,223,234,169,36,193,178,39,108,118,230,34,127,244,97,239,244,206,50,58,16,36,89,228,232,110,129,224,240,194,60,99,184,56,99,215,60,159,203,145,64,17,15,181,129,131,108,122,
+116,251,52,131,167,92,127,163,224,103,191,57,60,211,26,59,166,56,48,245,228,131,8,83,208,231,4,218,49,227,28,250,243,212,10,176,103,39,172,233,199,25,33,70,61,57,243,148,99,160,28,99,154,12,189,63,210,
+19,129,130,1,143,234,115,155,133,231,169,200,199,110,7,52,1,84,197,32,235,10,142,49,254,172,113,235,207,217,184,244,231,7,244,166,24,206,9,251,56,97,158,8,140,246,24,57,34,17,233,200,199,94,224,10,208,
+202,30,69,196,125,61,96,56,252,62,218,123,103,0,12,103,61,58,8,91,105,206,46,34,56,245,88,1,207,62,183,39,36,245,234,15,97,238,1,72,70,227,147,110,171,238,99,108,143,97,254,140,120,29,241,199,24,200,226,
+154,85,249,219,12,99,220,35,243,216,127,203,1,129,233,140,143,167,123,91,212,17,139,139,80,114,15,204,109,207,191,240,202,72,233,223,31,173,41,146,67,210,107,86,28,99,230,85,24,252,37,24,252,186,246,239,
+64,21,16,92,3,242,166,127,221,206,222,132,117,54,224,113,199,183,94,184,169,183,92,99,45,20,131,129,209,15,66,71,113,16,61,58,224,131,156,122,102,165,18,63,82,246,167,235,49,29,251,140,183,3,235,143,94,
+122,33,32,142,126,202,56,237,38,71,30,164,3,233,146,123,116,207,106,0,131,124,252,15,40,250,100,170,231,183,85,40,221,135,229,212,30,133,133,167,199,221,35,211,253,80,3,219,229,183,60,250,3,211,158,57,
+6,172,112,1,193,139,182,118,72,227,233,201,65,140,113,237,199,167,71,13,216,27,73,61,190,89,7,167,80,118,183,184,25,252,65,160,10,138,243,100,130,173,215,184,250,241,129,111,199,225,207,174,58,81,230,
+205,156,4,98,15,0,132,32,231,219,247,7,158,115,198,49,129,143,67,112,249,196,240,185,62,242,14,252,244,17,177,63,145,199,227,78,62,126,121,224,123,73,47,167,180,24,60,113,156,244,252,168,2,152,145,135,
+222,142,78,72,231,231,7,158,228,125,152,243,254,122,116,113,147,3,165,192,29,6,221,254,152,237,110,61,59,31,166,42,234,173,209,229,90,69,238,112,243,130,120,60,224,41,28,96,241,128,57,227,140,212,162,
+27,199,31,235,229,237,255,0,61,250,3,207,34,22,28,116,228,117,160,12,173,228,130,74,223,16,120,227,56,233,142,51,22,70,58,17,159,78,216,166,52,132,116,139,82,0,97,184,10,70,57,192,57,79,78,195,31,166,
+43,101,173,175,121,221,115,48,237,200,157,129,199,78,144,254,184,57,239,219,53,205,189,224,233,116,71,251,201,58,244,57,198,60,145,156,140,99,57,231,29,40,3,39,207,207,85,188,24,207,14,20,30,190,184,228,
+243,159,81,233,214,145,103,82,114,99,187,4,244,33,83,175,67,213,151,29,126,188,230,181,188,171,213,63,241,247,142,123,71,115,142,217,63,44,99,30,152,235,237,138,126,47,71,31,107,95,248,16,188,3,241,33,
+71,61,123,1,214,128,51,4,221,136,190,238,49,185,64,199,225,48,231,249,231,30,244,241,60,123,64,104,175,240,15,7,112,39,223,7,237,4,31,235,207,28,241,161,254,154,0,6,226,18,56,234,53,3,199,185,88,182,227,
+244,246,29,41,64,187,0,147,119,0,61,64,95,237,15,203,253,73,201,252,250,99,154,0,160,30,3,218,249,73,207,59,128,199,3,168,51,144,58,116,29,113,239,76,36,227,229,123,204,250,128,140,71,94,56,184,80,56,
+233,216,247,39,182,129,142,124,228,221,194,115,253,229,191,63,135,49,174,48,63,28,122,119,77,179,255,0,207,197,177,29,121,91,206,65,39,160,43,249,242,58,115,220,144,10,1,159,31,235,46,129,35,146,209,3,
+233,198,69,232,233,211,223,185,224,230,112,242,231,30,100,184,29,202,126,57,31,233,71,7,215,3,131,214,165,38,97,144,37,182,39,156,16,110,192,244,228,3,211,216,116,250,113,76,243,101,57,203,90,177,30,178,
+93,227,167,212,130,71,110,123,116,193,0,128,59,116,140,121,155,142,128,50,56,252,73,91,142,188,114,65,231,56,199,20,187,119,100,150,45,159,238,153,219,174,51,140,206,192,122,114,125,48,58,154,3,191,25,
+107,117,228,244,154,227,131,207,80,24,31,229,205,40,201,57,223,23,98,70,233,136,36,241,158,100,199,62,164,114,78,0,244,0,114,46,6,65,144,3,145,156,205,146,56,224,226,82,15,212,14,252,208,71,35,137,73,
+237,148,153,134,8,238,119,228,254,0,143,234,187,122,102,72,7,168,47,156,142,252,52,163,242,192,244,29,205,32,137,88,28,205,8,3,156,145,16,25,224,114,94,64,8,31,227,207,20,0,243,3,176,224,73,235,254,170,
+94,221,113,184,250,30,255,0,141,47,145,63,33,86,94,191,243,192,158,51,198,126,110,163,212,126,3,154,103,217,211,25,243,161,61,70,64,131,169,237,196,188,118,236,51,219,214,158,32,140,96,249,176,15,95,154,
+60,142,61,230,81,156,247,232,120,227,60,208,2,121,19,117,242,230,62,226,38,3,183,82,92,140,156,227,39,211,167,25,165,48,202,7,49,202,127,224,1,113,199,95,245,158,199,219,190,61,36,219,26,156,153,161,198,
+113,184,8,137,61,120,192,156,247,237,158,61,58,224,197,175,252,244,86,255,0,191,127,166,102,200,252,198,120,205,0,70,33,29,90,222,102,29,115,128,71,94,121,14,125,251,241,211,222,148,71,23,37,173,216,183,
+65,242,147,223,131,201,227,215,140,99,240,169,182,218,14,51,131,201,4,44,36,113,232,90,227,159,166,78,127,90,112,54,184,56,124,242,79,41,9,60,117,227,205,35,183,96,71,233,64,16,170,69,255,0,62,191,139,
+70,132,140,123,227,233,206,71,94,249,169,12,81,146,7,217,212,3,219,106,242,15,177,43,215,216,31,204,84,199,236,167,171,130,79,7,43,110,167,175,31,47,152,120,199,183,78,56,200,168,155,202,4,224,199,193,
+224,49,139,112,0,115,192,147,60,123,40,28,246,201,160,7,173,188,99,7,236,234,15,110,8,7,166,122,14,0,29,242,120,231,208,82,249,80,174,114,152,56,198,20,41,193,56,206,73,92,156,116,198,58,143,122,96,96,
+51,242,65,142,9,201,198,58,16,64,13,142,127,144,252,42,79,61,84,100,136,7,126,37,112,127,16,36,32,99,31,83,239,214,128,25,229,193,144,70,7,115,184,168,36,142,199,42,7,168,199,166,121,169,84,4,193,9,9,
+24,198,119,68,78,79,174,98,233,245,39,4,115,233,81,27,136,207,79,179,130,14,56,144,129,237,213,192,206,58,156,250,211,12,136,252,254,232,12,224,17,62,51,248,6,98,48,115,131,128,15,94,104,2,216,96,65,59,
+87,28,244,42,58,122,21,128,142,158,135,235,215,144,72,191,116,124,163,177,44,71,191,4,91,2,8,228,246,232,120,233,84,129,92,227,124,42,15,60,206,73,206,51,158,57,245,61,9,4,224,224,228,84,128,177,24,105,
+160,24,35,147,35,140,228,142,51,183,62,255,0,160,25,193,160,11,129,187,249,175,184,224,175,239,20,142,56,60,201,23,3,158,123,156,244,200,167,146,14,1,154,85,61,241,40,198,121,227,42,170,7,76,128,112,50,
+6,7,106,169,181,251,205,7,32,31,189,62,114,9,25,5,136,7,175,191,4,145,77,42,203,143,223,199,144,79,9,36,219,143,61,120,39,142,122,129,207,78,188,80,5,146,87,60,221,92,3,199,38,77,192,228,118,27,24,241,
+223,174,15,92,118,77,234,56,251,92,171,142,121,221,199,160,226,53,246,207,39,28,227,214,154,138,132,252,247,1,91,0,97,126,210,231,60,125,113,253,114,106,79,46,44,228,222,48,110,7,221,184,4,227,39,156,
+144,71,57,199,95,94,156,208,2,7,83,193,187,221,140,228,150,113,207,169,253,222,115,237,207,32,227,21,34,72,115,133,186,83,201,232,179,185,60,100,118,82,59,241,211,191,115,66,219,66,220,253,178,118,39,
+60,43,200,48,121,35,171,30,14,59,145,210,164,22,160,140,173,213,230,115,206,30,82,56,207,25,12,65,39,249,100,117,197,0,30,102,223,189,62,220,115,159,34,225,74,231,167,86,227,56,235,193,227,32,250,47,153,
+16,235,112,140,8,234,203,112,15,161,193,99,183,240,244,245,32,138,62,204,23,239,93,221,131,158,165,102,39,142,6,112,167,28,119,206,73,231,56,230,156,182,197,185,251,93,227,47,180,23,7,255,0,101,112,123,
+129,197,0,51,122,55,73,96,63,64,224,245,207,69,110,7,160,244,235,222,148,18,72,196,208,30,73,229,95,60,122,96,18,113,233,216,114,58,84,171,106,27,143,181,94,19,156,224,219,201,158,120,35,152,193,28,158,
+121,252,57,97,82,253,151,56,253,253,208,247,251,56,232,113,235,31,227,215,29,63,16,10,165,216,55,23,86,201,234,27,205,3,140,231,168,35,243,24,235,197,47,159,131,205,221,163,55,166,73,24,227,161,14,157,
+127,221,60,251,213,213,178,220,127,215,95,22,31,244,235,156,147,237,229,128,122,244,231,140,231,221,223,97,124,225,102,188,39,166,5,176,200,231,221,71,36,115,158,15,110,56,160,10,171,58,145,255,0,31,54,
+128,142,219,151,158,220,102,76,123,140,246,167,137,240,127,214,192,112,56,42,209,146,120,207,247,212,116,247,230,167,22,51,31,249,105,120,14,112,63,116,156,253,114,70,1,228,244,7,174,41,127,179,174,112,
+0,55,120,201,228,194,57,30,216,36,99,190,6,122,245,160,8,60,246,36,227,202,108,14,239,26,145,199,95,245,141,143,124,140,119,2,144,92,250,152,129,31,244,222,62,189,56,27,1,224,113,156,250,122,213,143,176,
+93,142,242,30,223,53,185,201,36,156,103,212,156,129,198,58,116,52,162,198,239,149,13,130,56,3,236,167,118,71,210,85,60,1,212,14,228,138,0,132,76,122,238,92,158,226,100,231,61,137,24,4,242,123,147,248,
+83,131,51,116,110,73,207,250,197,237,208,156,130,50,59,224,147,249,100,75,246,75,165,25,108,142,122,155,118,0,129,215,254,90,19,248,147,199,231,135,125,154,229,129,204,160,99,156,249,45,199,160,25,156,
+17,223,32,126,93,1,0,136,51,231,149,12,61,124,209,207,175,0,14,15,29,255,0,46,148,43,72,78,69,185,61,242,26,60,113,142,2,229,177,156,156,240,61,199,74,86,182,156,115,246,130,79,61,34,110,15,167,250,225,
+128,125,253,41,13,188,253,174,0,39,187,68,195,142,127,233,176,39,28,119,110,156,145,210,128,38,2,224,146,86,205,155,156,1,136,254,153,232,64,198,114,126,157,41,90,43,195,207,216,142,49,156,13,163,175,
+184,94,221,184,61,234,175,145,114,72,197,218,129,199,72,159,191,161,19,244,31,143,177,238,3,4,199,173,243,14,185,253,219,118,236,51,39,78,189,186,254,52,1,55,151,116,216,31,99,206,50,78,65,4,123,28,128,
+6,64,61,193,24,30,180,24,46,152,147,246,120,176,123,124,132,130,14,9,195,6,207,243,206,120,198,1,140,192,253,239,177,140,116,139,35,131,199,45,49,235,235,143,241,164,242,219,167,219,228,0,228,157,177,
+125,238,195,129,48,207,35,185,25,192,233,64,15,251,45,207,104,20,159,247,98,4,126,96,30,220,123,158,188,83,190,199,114,121,251,60,96,245,203,121,69,136,207,251,32,140,125,51,142,166,163,88,200,7,55,210,
+18,73,231,145,233,129,197,193,192,227,166,49,215,175,103,237,144,140,255,0,104,204,163,128,48,192,142,153,235,230,19,207,190,113,207,224,0,159,101,188,7,34,40,113,211,30,92,67,60,143,85,28,16,122,28,114,
+57,20,162,27,190,133,97,92,2,56,134,19,236,48,10,28,119,193,233,249,83,76,82,247,191,118,255,0,122,64,58,143,93,227,25,201,227,35,62,253,147,200,152,224,173,199,112,114,101,29,207,251,224,253,51,223,7,
+156,98,128,31,228,93,14,9,136,96,227,38,24,135,35,35,140,69,156,254,88,3,140,230,154,32,152,31,158,72,70,120,226,62,61,250,71,142,8,29,125,123,117,160,218,205,130,68,164,247,226,86,94,188,127,12,189,207,
+111,92,245,60,83,150,222,113,198,246,24,244,153,142,122,245,204,153,193,232,14,115,142,160,102,128,26,45,223,161,154,34,122,140,196,48,49,233,251,161,159,254,190,7,52,239,179,185,60,77,7,94,127,113,24,
+198,62,170,57,244,207,78,231,7,52,226,38,78,236,125,247,156,142,184,232,236,125,250,99,223,174,88,100,153,120,196,132,30,156,200,1,235,234,135,61,177,140,99,142,156,100,1,254,75,15,249,107,19,125,34,95,
+199,133,136,159,126,189,63,48,121,76,58,186,251,252,132,103,60,116,48,147,211,191,61,248,61,152,26,81,200,70,57,199,105,15,215,156,12,231,242,207,80,71,20,239,58,69,235,110,71,95,225,36,127,192,64,108,
+114,15,167,24,234,59,0,53,162,110,187,193,200,28,42,158,112,71,92,195,250,245,199,166,105,158,68,109,130,234,24,250,21,66,120,36,100,133,140,30,167,156,231,191,39,6,158,102,198,51,6,115,199,49,240,113,
+143,70,30,153,193,247,232,58,2,228,12,3,106,217,198,112,176,156,113,143,246,193,228,158,50,59,28,250,208,2,45,188,29,144,117,224,0,195,208,246,0,99,140,231,142,14,125,233,166,209,9,56,1,64,198,114,238,
+9,245,249,64,198,71,215,158,254,148,243,121,26,240,109,238,27,233,19,143,212,48,39,142,115,156,30,195,210,51,169,40,60,90,221,0,0,199,3,176,254,29,206,125,207,183,165,0,33,180,92,224,68,173,220,16,195,
+28,127,189,140,231,167,124,126,20,159,102,43,143,244,99,193,56,35,156,243,156,124,167,36,125,72,238,114,40,58,156,103,173,172,249,3,190,7,174,7,203,158,189,176,78,121,199,60,134,253,186,38,224,216,56,
+39,147,203,243,198,56,245,227,215,240,199,52,0,166,6,231,54,131,39,27,178,95,145,158,184,25,56,7,7,7,249,211,26,48,196,15,177,19,131,146,67,76,121,61,112,0,233,198,121,57,61,49,197,75,246,136,200,32,89,
+30,112,121,100,7,211,248,159,39,28,19,211,176,250,158,116,125,173,0,200,231,230,83,201,227,25,32,228,140,243,200,224,117,197,0,67,229,32,24,251,27,142,199,49,187,145,145,255,0,2,98,61,123,244,252,20,65,
+23,4,217,49,206,72,31,103,114,56,250,242,51,211,146,14,115,140,240,41,75,66,72,221,106,59,116,1,189,187,68,195,208,122,147,223,173,1,33,36,129,103,49,207,77,138,49,131,211,159,179,149,199,78,6,127,30,
+128,1,190,92,74,114,44,220,99,175,250,51,122,117,206,211,253,120,233,72,65,237,105,158,50,75,66,160,125,1,242,24,183,208,125,61,170,67,26,244,91,59,161,140,12,111,137,123,156,156,121,64,0,50,51,145,159,
+214,163,251,49,63,118,194,127,76,188,200,79,25,255,0,100,126,68,129,220,117,52,1,23,78,126,202,190,164,27,124,140,227,142,60,128,57,231,57,31,79,102,242,199,155,82,160,129,200,183,80,51,198,78,124,190,
+153,235,143,108,224,212,235,108,231,59,172,164,83,215,128,125,201,35,106,255,0,250,250,250,96,251,57,231,253,22,69,32,156,102,39,56,192,255,0,109,121,227,250,227,190,0,42,50,199,147,186,217,215,28,130,
+98,81,131,255,0,124,140,14,57,231,63,78,13,66,86,15,249,229,50,156,244,81,25,207,175,222,57,207,215,129,212,241,154,208,251,59,110,226,25,70,121,0,65,110,49,232,127,121,207,211,160,246,233,67,90,190,62,
+104,228,207,39,230,138,211,36,140,147,158,152,254,124,142,122,208,6,99,45,177,231,109,210,240,9,199,151,143,94,129,134,14,59,100,15,122,107,11,99,212,206,15,0,146,200,48,63,2,64,193,235,206,125,15,57,
+26,70,6,3,42,146,131,140,97,99,180,224,1,142,114,71,7,185,233,199,167,38,35,27,240,22,54,4,103,147,29,166,126,167,50,119,56,200,0,176,61,78,115,64,25,197,226,24,9,52,202,79,164,241,0,79,7,60,72,72,192,
+247,20,130,88,206,51,117,113,158,248,187,141,125,51,140,205,147,142,220,115,211,140,213,242,39,57,13,180,41,232,93,173,84,127,232,204,243,199,3,158,181,11,68,204,126,115,110,58,145,243,194,7,56,193,63,
+57,36,247,252,79,173,0,86,47,111,212,220,221,12,30,162,239,130,61,127,214,117,7,169,231,29,61,200,37,179,3,155,155,182,29,57,158,55,28,253,115,200,207,167,61,51,233,49,137,1,198,235,96,127,235,172,61,
+122,228,110,110,70,72,235,129,219,218,157,229,38,57,146,216,125,103,133,112,7,175,222,24,245,232,56,238,51,64,21,204,218,112,7,116,247,71,219,204,136,12,227,185,220,15,94,216,235,201,168,254,211,166,169,
+32,77,34,159,246,158,2,58,103,60,190,79,191,126,42,207,149,24,4,249,214,135,60,130,110,97,235,199,57,217,130,56,62,156,158,61,163,9,8,39,231,179,60,114,13,228,99,211,60,34,142,125,248,246,56,230,128,32,
+107,205,51,180,227,177,227,236,204,15,174,73,207,80,122,115,159,74,79,180,105,205,130,36,13,216,17,29,147,116,28,242,98,247,39,240,201,60,28,61,154,217,127,130,212,147,253,219,242,185,252,1,99,192,235,
+142,148,211,52,68,141,177,197,216,0,111,230,108,118,232,1,7,140,19,140,243,248,80,3,60,235,44,227,4,228,100,19,29,139,12,253,10,32,24,250,156,250,243,65,146,192,131,185,11,116,194,249,90,110,61,184,42,
+220,103,57,228,31,78,149,47,157,1,235,20,35,182,209,123,49,60,250,146,159,95,211,222,154,210,66,70,99,134,19,252,57,251,91,30,78,15,94,48,125,65,199,215,166,0,32,102,211,114,127,209,211,57,63,122,211,
+78,28,142,217,88,27,35,159,92,241,219,188,123,172,57,34,218,38,245,31,100,178,57,201,238,76,74,79,127,65,215,175,74,155,205,80,63,227,222,60,246,31,105,29,59,0,11,231,233,207,82,121,164,243,220,31,150,
+0,61,63,121,11,12,241,211,13,187,212,115,244,238,114,1,9,143,79,97,159,178,68,115,253,219,59,65,207,111,187,183,240,200,62,195,184,140,195,102,112,86,213,23,235,111,108,51,248,252,199,185,244,207,3,210,
+166,105,156,231,114,128,125,154,62,59,113,243,158,62,156,119,237,81,52,164,158,1,25,24,224,68,15,78,153,243,121,244,62,192,253,72,2,8,173,128,63,232,224,244,206,32,183,29,142,0,62,221,50,58,123,246,83,
+28,77,247,109,164,81,156,113,28,88,207,24,233,129,193,192,236,115,212,158,180,194,101,3,132,147,7,169,86,83,207,168,218,248,28,125,120,3,241,143,51,245,30,120,207,3,44,91,244,0,168,62,217,207,175,78,64,
+38,41,31,83,20,128,140,1,242,2,15,226,36,0,158,167,235,211,20,17,14,0,42,65,255,0,174,106,15,29,137,14,127,35,211,235,147,80,144,253,203,177,238,90,60,159,175,204,14,72,250,19,142,221,106,177,89,9,39,
+36,117,28,70,170,78,123,243,25,233,211,168,199,30,180,1,112,164,44,48,81,179,211,59,100,95,229,212,119,224,142,254,156,48,71,8,238,20,241,156,201,118,6,71,76,229,253,71,174,51,85,14,227,247,154,64,1,56,
+218,165,135,190,66,194,70,57,238,112,65,30,156,12,0,255,0,150,146,17,142,65,132,147,211,174,77,163,103,129,131,215,167,175,64,11,98,0,71,222,200,61,252,217,134,113,238,100,7,156,119,207,29,61,41,166,4,
+81,198,73,62,151,51,174,58,246,13,249,243,212,247,239,72,168,25,193,4,31,250,100,249,32,244,206,219,35,145,211,175,3,233,214,61,177,231,141,160,240,14,235,89,91,166,78,114,52,214,61,250,2,61,248,160,11,
+166,52,29,89,128,237,182,230,92,125,112,100,39,142,8,227,62,185,52,130,8,137,35,230,199,114,110,167,207,226,11,55,36,129,234,48,61,58,83,8,14,8,88,206,59,155,59,156,28,103,174,52,241,252,248,61,57,234,
+29,163,172,118,216,236,77,141,223,28,96,245,180,227,211,142,252,245,160,11,134,218,223,32,179,48,250,92,203,143,233,200,252,253,199,66,125,142,212,244,99,199,76,220,63,32,228,113,147,140,143,126,6,112,
+125,170,15,37,70,89,44,125,50,214,55,29,248,228,155,96,62,153,57,165,202,17,132,22,29,201,219,107,49,60,227,191,147,143,211,241,160,11,38,194,2,120,227,56,255,0,151,128,15,183,70,28,116,239,239,154,97,
+177,129,70,114,67,3,159,248,250,0,103,128,72,6,80,123,103,35,212,30,41,170,131,28,181,175,124,127,163,62,61,58,50,3,244,200,252,58,82,249,96,158,30,215,142,131,236,175,193,39,185,17,145,158,123,116,245,
+227,52,0,241,105,11,112,14,226,58,129,121,17,29,177,247,230,200,199,92,103,31,143,52,211,99,24,255,0,150,50,100,231,31,233,144,112,15,94,69,214,72,199,94,49,249,154,66,172,120,31,102,29,121,251,52,139,
+215,142,162,60,159,95,235,214,154,34,39,175,146,56,60,253,158,92,12,31,116,29,125,71,175,221,25,160,7,27,96,50,2,186,251,155,184,71,167,76,202,192,253,64,238,49,235,72,109,84,142,118,156,158,247,48,16,
+73,235,193,62,128,103,158,113,207,28,20,40,224,229,77,185,192,233,229,72,184,245,231,28,118,39,235,147,212,82,102,108,253,200,240,59,130,160,31,207,39,177,227,145,215,154,0,127,216,161,31,243,200,115,
+159,245,182,205,143,166,65,35,160,237,129,192,198,105,191,103,136,112,26,19,142,202,214,100,254,88,4,250,158,51,140,158,198,160,101,155,28,32,3,61,21,173,128,235,206,1,80,65,63,144,239,156,26,110,46,123,
+44,131,61,10,189,129,32,31,247,186,129,158,156,116,226,128,39,22,233,200,43,31,60,252,223,98,206,126,170,135,175,29,249,252,232,242,97,201,7,202,29,176,100,181,252,56,242,182,142,158,188,30,42,182,203,
+177,209,167,232,73,227,78,81,201,60,231,107,255,0,34,79,24,201,52,194,183,25,31,60,199,190,26,125,56,30,70,122,249,96,130,51,156,240,0,239,64,22,252,152,51,247,109,253,201,54,7,233,145,229,130,120,30,
+152,205,6,202,22,0,149,183,193,193,31,186,179,110,220,96,136,185,29,191,206,107,60,173,200,39,46,248,198,112,110,44,199,174,48,70,61,123,30,189,186,212,91,100,235,230,34,129,215,55,150,202,125,121,3,57,
+246,207,4,14,185,205,0,95,54,150,160,237,113,111,192,224,27,91,60,122,140,126,228,158,192,114,121,164,251,30,157,140,255,0,163,131,128,65,91,43,93,248,207,78,97,7,191,67,207,160,170,155,231,3,2,229,71,
+160,55,150,195,142,122,0,71,62,135,131,219,61,77,11,231,48,249,238,144,147,142,183,144,30,56,245,127,254,190,79,28,154,0,179,246,27,70,7,30,95,28,131,253,159,104,121,250,141,164,254,28,28,228,83,13,141,
+184,56,198,65,198,49,99,22,56,207,76,56,250,96,122,3,80,152,78,121,188,140,127,219,196,44,79,78,202,248,245,228,158,112,113,222,158,171,32,56,251,90,158,184,30,106,186,130,1,244,98,70,56,234,7,32,80,2,
+27,43,115,156,163,227,208,216,69,219,142,64,155,119,230,49,218,155,246,11,66,56,129,79,111,248,244,32,243,235,182,229,72,35,57,61,8,28,26,155,14,78,13,212,89,199,65,43,175,35,158,63,118,122,131,200,237,
+199,78,161,187,100,28,155,132,35,36,255,0,199,204,160,28,100,224,126,229,134,7,182,127,165,0,85,109,62,208,100,121,68,30,14,12,4,28,251,15,181,115,159,79,94,189,105,5,149,178,140,148,117,61,56,130,76,
+244,239,182,225,135,63,135,28,158,120,171,68,201,208,79,25,235,128,215,18,228,14,159,243,239,150,244,237,198,79,173,52,121,228,156,78,15,80,66,201,40,235,232,76,57,245,3,215,61,40,2,177,130,221,123,55,
+56,255,0,150,83,2,71,29,64,102,62,188,122,242,122,98,154,34,181,206,114,122,30,49,112,14,113,145,140,16,6,122,115,198,122,243,200,187,229,222,17,197,204,221,122,41,119,4,103,169,204,43,192,206,56,237,
+77,48,93,227,155,137,155,184,1,78,125,240,60,172,30,48,115,159,248,14,5,0,85,41,15,80,211,30,195,30,105,198,57,199,39,3,175,124,116,227,210,155,178,46,164,220,142,249,218,234,50,62,131,158,49,252,185,
+226,173,149,187,3,137,47,120,254,234,184,39,215,254,89,31,166,72,250,243,77,243,46,215,169,212,216,99,183,153,247,190,158,72,233,211,167,62,190,128,21,246,219,31,226,187,238,0,7,57,244,228,199,145,233,
+200,250,113,208,9,106,192,252,215,128,250,110,3,57,227,180,121,62,135,138,153,166,159,60,255,0,106,129,233,230,50,250,247,242,199,57,235,145,198,121,168,140,151,25,35,254,38,202,125,13,214,71,60,99,5,
+9,199,78,73,61,113,140,138,0,103,145,108,65,62,109,223,36,103,33,91,140,244,36,161,193,62,188,250,115,214,148,71,107,130,55,92,144,51,255,0,44,162,98,114,51,194,152,114,59,103,158,71,166,105,217,187,35,
+159,237,60,158,126,105,9,61,59,101,127,192,227,175,187,10,220,130,56,212,112,64,63,242,212,145,238,112,112,71,3,168,247,61,40,2,69,134,212,128,49,118,91,166,62,202,160,126,66,18,58,112,14,123,244,56,25,
+42,18,151,4,28,157,75,223,33,241,235,208,62,127,28,241,235,234,80,7,175,24,38,63,242,245,112,71,251,50,41,199,212,121,185,32,253,79,190,41,173,111,32,3,247,215,7,142,239,23,61,120,201,186,30,189,184,231,
+167,165,239,180,220,227,229,89,15,166,225,108,222,160,144,12,202,8,30,249,233,234,77,68,103,188,36,146,24,251,121,86,160,126,147,3,219,158,188,227,154,0,166,109,174,7,34,75,160,122,228,75,24,207,112,8,
+91,197,253,122,240,122,117,111,147,119,208,203,118,64,199,73,207,24,28,228,11,194,122,30,8,252,71,21,108,220,93,243,136,250,246,116,139,160,198,120,14,120,245,193,30,245,11,221,93,2,67,8,1,39,174,200,
+241,199,7,150,99,244,244,60,255,0,118,128,33,48,220,13,220,221,231,4,96,93,58,231,235,137,27,169,237,249,113,138,104,138,235,28,181,231,115,197,236,131,232,50,204,113,219,35,30,189,179,79,51,220,113,242,
+219,146,59,254,235,39,190,56,207,78,248,245,228,113,77,50,220,109,206,32,29,137,243,27,61,122,224,1,207,96,113,142,157,71,80,8,200,185,82,115,246,211,201,255,0,151,210,71,215,62,96,253,56,166,54,245,193,
+111,181,130,127,187,126,1,233,146,48,24,231,35,28,228,122,211,139,176,206,76,28,127,182,216,207,167,17,49,206,61,115,235,214,153,230,49,235,28,103,158,8,150,113,193,60,1,182,33,145,223,190,127,33,64,14,
+220,253,146,255,0,219,23,82,56,30,131,42,78,7,94,153,62,217,205,52,151,7,238,223,1,211,38,121,122,125,25,125,122,17,145,211,142,14,19,202,86,25,43,16,199,247,228,185,36,244,198,63,209,143,94,220,159,175,
+20,225,109,25,231,109,184,56,231,155,163,147,215,156,219,31,232,48,40,1,3,72,122,27,162,56,254,54,56,201,238,219,79,92,113,193,252,121,5,226,102,67,140,92,241,216,128,195,177,239,16,235,248,96,246,60,
+211,132,48,169,63,186,182,110,188,153,175,20,243,236,182,56,4,115,249,250,138,122,199,30,113,229,218,123,15,58,241,143,39,174,126,198,160,30,253,51,248,114,0,24,110,9,7,229,157,177,216,198,164,99,61,127,
+212,175,94,58,156,103,25,207,67,31,218,200,63,122,116,199,164,112,237,24,56,232,192,99,159,246,129,235,233,197,193,28,103,172,17,122,15,222,93,48,255,0,209,32,231,166,48,56,244,207,52,239,47,31,118,20,
+30,251,174,152,126,31,33,199,212,123,122,80,5,17,122,156,110,146,115,207,95,38,223,3,223,153,1,30,191,128,57,197,2,250,14,160,72,123,140,65,14,125,178,124,210,56,57,236,51,140,96,156,85,237,193,49,186,
+40,200,224,12,249,231,220,15,154,34,121,255,0,62,199,156,184,226,8,49,238,38,110,153,235,251,160,7,175,79,110,7,36,2,168,212,99,76,130,147,147,216,172,9,128,125,120,32,126,167,160,245,166,157,82,12,227,
+108,202,122,144,208,1,142,189,14,225,215,61,121,231,166,69,92,251,76,121,32,195,106,58,127,13,192,245,61,163,192,237,254,79,9,246,176,163,11,29,128,238,20,137,250,231,208,40,231,166,123,241,159,106,0,
+170,53,72,50,121,96,63,186,99,140,116,62,166,66,114,121,231,174,78,79,161,27,80,183,60,128,237,207,251,9,143,161,82,15,95,214,172,253,189,191,134,59,17,158,57,55,32,227,61,206,211,234,113,201,231,219,
+170,253,178,67,142,44,192,227,35,204,153,178,122,247,95,110,56,246,230,128,40,27,232,220,96,62,6,114,65,148,175,167,171,144,127,12,116,168,141,196,68,242,200,125,51,44,61,7,28,110,86,36,1,248,245,235,
+214,180,62,209,43,147,251,187,12,131,221,217,78,125,206,198,28,251,228,253,58,83,254,209,58,156,109,211,135,183,156,224,31,199,99,127,79,115,192,20,1,152,36,132,156,121,235,219,134,120,15,94,153,196,89,
+245,29,125,243,78,15,24,39,247,145,231,185,81,110,64,199,67,204,36,254,167,208,231,190,129,186,156,117,75,16,0,198,68,204,220,96,100,130,32,238,125,253,49,154,114,220,200,112,124,189,52,146,58,187,183,
+24,207,127,47,158,122,244,237,237,64,25,251,178,8,18,161,4,118,16,231,167,66,76,7,131,198,15,30,217,34,131,18,183,2,120,193,35,161,104,6,1,235,145,228,128,113,207,65,207,167,97,168,101,184,97,243,71,165,
+250,31,223,96,146,0,60,150,143,142,248,227,161,233,212,83,79,156,220,136,180,172,96,253,235,132,97,223,214,12,113,248,116,25,52,1,154,109,156,143,150,226,223,190,114,246,195,243,13,16,235,223,0,255,0,
+139,126,204,199,254,90,195,199,92,61,174,50,115,193,196,121,254,94,216,53,160,99,187,224,99,73,227,36,132,150,19,232,120,204,36,112,49,239,197,60,11,142,135,251,63,184,199,153,104,121,233,222,32,113,142,
+120,246,227,154,0,204,22,206,56,50,69,207,63,235,33,28,14,56,193,81,219,29,15,185,20,214,183,61,76,129,142,121,195,64,221,78,112,49,147,142,153,193,245,7,156,86,158,36,82,70,205,59,175,56,54,167,212,128,
+72,194,245,236,15,232,41,51,112,9,32,105,248,224,114,109,78,0,244,1,215,175,95,110,113,64,20,4,45,255,0,61,80,28,142,11,198,189,248,224,40,32,231,29,73,199,175,56,167,8,228,28,111,131,215,44,235,159,167,
+10,122,246,247,206,42,217,121,14,65,254,207,239,143,248,247,63,128,196,141,156,255,0,144,13,55,99,48,57,58,114,142,131,116,118,152,3,156,231,47,147,223,35,183,74,0,167,182,77,216,38,220,159,119,96,48,
+120,234,168,0,247,207,29,114,105,198,41,58,127,161,142,157,102,97,158,71,79,220,183,76,129,215,147,223,3,21,59,66,78,126,125,48,122,237,75,97,249,224,145,223,142,167,191,76,26,133,173,151,4,249,214,59,
+185,7,16,64,115,129,142,162,76,96,227,4,96,122,243,200,32,12,100,96,112,126,200,1,29,124,201,137,198,72,63,242,195,105,233,239,232,15,171,65,64,15,207,100,56,231,62,99,158,63,237,152,199,61,113,78,242,
+95,60,77,0,228,3,182,221,7,78,152,34,96,49,244,24,247,25,205,60,219,49,224,204,62,187,20,140,244,192,255,0,72,61,248,231,24,160,10,229,137,24,221,103,235,213,128,61,57,229,50,9,207,160,235,239,72,6,238,
+73,179,28,140,28,130,61,250,192,79,64,57,233,199,61,133,76,108,178,120,150,34,49,215,106,228,117,7,129,112,71,63,135,211,28,82,125,142,48,63,227,224,131,236,16,143,83,201,159,31,143,94,189,58,208,3,6,
+213,57,34,196,228,19,157,240,169,35,219,48,169,237,199,204,15,78,59,208,68,29,113,104,73,254,236,246,248,231,253,157,185,206,120,61,115,198,112,7,34,219,91,140,230,225,151,57,203,24,201,61,251,44,196,
+31,192,116,57,52,223,179,192,115,139,198,235,200,49,177,29,125,124,206,132,243,212,99,241,224,1,119,90,130,114,150,231,140,159,222,195,143,207,24,227,208,113,143,206,133,107,66,112,45,226,201,207,38,226,
+219,175,175,204,6,59,158,131,182,5,39,217,225,81,159,180,224,115,255,0,44,88,113,234,127,123,223,167,56,235,237,154,85,142,223,254,126,24,129,143,186,164,103,212,227,207,29,78,123,158,70,78,59,128,52,
+181,174,127,213,70,56,7,254,62,108,128,39,61,201,192,236,79,57,163,125,166,112,68,106,79,64,110,244,206,157,184,99,142,15,78,58,247,60,84,194,27,114,49,231,76,221,254,64,20,145,255,0,2,184,61,248,237,
+192,198,6,13,63,236,246,228,17,230,205,192,199,206,32,102,35,232,210,28,246,206,211,216,142,0,160,8,12,182,192,112,145,156,113,197,222,154,190,227,59,78,57,207,31,92,227,4,26,65,36,71,39,108,67,56,28,
+221,105,236,125,190,184,198,59,158,122,244,169,76,54,192,159,157,248,198,8,130,209,143,161,228,17,252,241,143,194,151,101,168,63,125,192,3,189,180,28,251,253,198,61,248,25,32,251,226,128,34,47,22,50,93,
+1,233,196,186,121,231,156,3,135,57,252,184,199,90,132,204,50,118,204,195,182,51,100,113,207,251,35,32,14,122,144,79,25,39,6,173,147,23,68,37,129,0,225,161,132,19,248,136,6,50,73,232,73,28,143,122,81,18,
+224,31,46,65,147,243,48,72,121,245,3,116,25,227,62,252,113,64,21,150,105,19,32,76,223,131,89,103,3,24,24,39,60,15,199,131,215,138,113,158,92,231,207,148,115,156,7,177,253,48,199,7,190,79,124,113,156,131,
+41,142,33,201,142,232,143,85,142,12,28,103,28,253,156,228,142,222,185,237,79,88,237,78,114,183,163,211,41,111,142,125,65,180,29,115,215,245,56,160,10,222,116,184,36,92,202,15,161,251,30,120,233,140,56,
+35,252,115,211,173,32,150,110,134,234,99,233,242,192,71,64,113,149,99,142,189,248,63,92,213,131,21,175,39,253,57,122,227,9,1,252,72,251,33,3,223,243,201,39,134,149,133,79,31,105,231,166,232,224,63,251,
+100,114,113,239,248,80,4,37,231,110,60,249,115,145,143,220,70,121,61,73,253,226,143,65,211,63,144,164,97,57,63,241,241,47,227,108,184,31,67,231,17,236,15,29,1,235,83,102,221,184,34,67,156,255,0,203,40,
+135,56,224,157,182,95,153,3,52,245,54,185,229,36,7,160,192,11,207,184,22,223,81,211,174,122,147,64,17,44,114,227,230,158,114,120,251,182,224,103,7,168,111,57,115,158,132,14,49,197,74,34,151,128,36,185,
+227,146,12,44,15,92,245,89,152,142,189,187,243,212,212,152,133,248,193,28,96,100,227,61,143,75,76,241,208,3,248,99,161,62,207,9,198,92,14,57,220,132,129,142,57,255,0,69,95,92,142,254,160,230,128,26,35,
+155,156,179,30,112,67,121,189,192,206,65,148,96,253,64,25,247,198,77,140,195,128,160,250,3,41,60,231,251,178,28,3,245,57,207,79,89,4,54,227,172,208,174,15,116,235,216,113,246,97,156,227,169,7,223,28,128,
+225,13,185,233,53,168,3,161,146,52,198,79,98,77,184,39,241,228,103,3,181,0,87,88,137,36,179,70,15,166,203,166,61,249,39,36,116,31,225,210,164,16,3,140,152,143,76,174,201,250,125,60,197,231,35,61,113,140,
+224,245,2,127,37,23,145,54,159,158,160,224,14,227,210,16,125,125,14,65,167,236,114,8,15,166,227,254,4,78,115,207,222,140,231,242,60,231,175,90,0,136,64,152,224,69,159,247,27,131,208,146,26,112,195,160,
+61,72,39,191,39,10,108,242,185,11,25,62,163,106,228,99,213,174,136,250,224,113,198,56,167,50,56,32,23,211,65,238,65,199,254,201,212,125,61,70,41,84,76,1,2,227,79,92,246,15,212,122,127,171,11,158,189,72,
+235,193,61,192,26,182,210,40,226,40,207,76,18,241,250,245,230,227,39,174,56,60,131,199,173,57,161,155,28,68,128,14,135,253,31,39,31,239,75,158,189,51,147,250,98,69,105,207,252,190,88,128,9,199,239,212,
+115,233,130,62,153,232,113,216,246,83,231,103,155,171,38,25,25,219,60,107,147,232,58,114,113,156,131,207,165,0,68,34,115,193,17,147,211,105,142,219,168,39,210,112,123,116,245,7,208,138,149,98,39,36,170,
+47,39,238,219,192,125,191,231,224,156,14,217,3,7,166,115,74,179,186,12,9,109,24,146,58,94,12,119,224,43,74,164,126,3,182,59,102,148,220,206,65,192,182,110,188,155,144,113,198,114,49,63,111,127,200,230,
+128,30,182,199,0,254,240,3,212,45,164,61,187,146,110,84,119,227,255,0,212,11,132,10,50,74,204,72,60,15,178,217,160,250,2,110,58,247,60,227,130,7,80,106,15,180,220,12,21,22,132,117,199,218,28,126,162,114,
+59,119,3,175,110,13,63,237,23,152,24,91,97,233,251,210,114,123,228,27,160,14,63,62,120,199,34,128,36,216,227,238,44,216,231,0,67,104,112,70,78,56,186,97,212,231,0,122,241,215,43,139,142,72,243,240,120,
+255,0,81,110,58,244,206,38,28,244,235,199,2,161,18,222,19,247,109,179,158,210,96,227,61,246,220,49,56,60,244,236,122,83,195,221,19,130,35,4,28,252,179,74,125,184,59,201,60,142,153,201,61,184,205,0,72,
+29,212,13,207,113,248,67,7,114,56,24,145,143,62,220,240,79,21,48,116,199,45,49,233,255,0,44,9,207,7,167,204,51,233,156,158,123,243,147,95,253,36,244,8,79,161,146,228,3,156,231,56,151,191,176,249,122,122,
+83,74,92,146,62,72,65,29,183,221,55,227,145,35,14,188,28,103,167,78,244,1,116,52,28,146,103,0,115,146,187,49,144,58,13,195,176,231,175,127,76,211,188,216,15,70,149,187,100,184,24,255,0,208,185,246,36,
+113,140,12,98,179,51,58,147,242,198,73,239,254,159,159,208,149,237,212,0,127,3,74,211,92,244,216,152,224,12,199,126,78,15,25,201,25,207,184,30,249,207,80,13,35,44,89,192,105,1,199,65,50,159,200,99,235,
+159,112,114,69,70,110,213,122,23,227,63,242,210,48,125,57,5,139,126,75,158,188,115,197,0,210,227,36,133,61,184,191,4,122,224,50,156,231,235,237,145,82,175,156,74,147,41,199,112,13,192,244,32,144,192,55,
+235,248,156,208,4,191,107,4,156,51,130,58,102,102,3,235,149,218,14,125,143,78,190,148,27,140,140,135,151,219,15,63,4,245,0,128,58,231,215,211,147,72,0,193,204,174,50,115,128,211,2,57,238,57,39,29,249,
+224,227,131,214,142,70,115,60,248,233,199,158,48,48,125,20,147,140,255,0,23,182,56,24,32,15,243,123,180,179,12,240,54,201,63,4,241,131,243,112,58,224,156,122,250,210,253,171,28,121,147,16,7,4,253,160,
+251,99,169,25,168,183,114,49,113,113,207,102,243,112,9,0,158,114,167,142,112,51,143,160,165,18,73,218,89,49,199,65,33,206,123,144,81,200,61,78,1,246,61,40,1,255,0,110,117,28,9,243,199,85,155,7,56,227,
+37,134,126,163,29,113,73,253,160,196,16,36,149,79,163,44,199,160,235,129,33,235,215,168,52,155,142,1,19,77,159,79,41,207,7,182,90,223,29,189,65,250,118,110,101,207,200,102,96,59,249,104,167,233,151,128,
+142,6,49,131,239,143,64,7,11,201,79,62,100,128,116,39,236,215,31,158,68,171,131,236,58,244,231,128,30,46,156,12,155,153,192,193,255,0,151,91,143,230,215,4,156,15,242,8,32,69,134,35,14,164,251,48,180,201,
+206,14,114,209,243,250,82,109,96,56,132,144,71,4,173,137,244,192,57,35,161,247,57,252,168,2,192,187,207,62,124,228,156,142,96,152,12,126,50,100,113,223,61,125,115,82,172,235,140,172,199,175,32,134,206,
+120,234,25,199,175,67,239,197,83,203,47,34,3,158,58,71,105,143,252,116,158,217,193,231,25,247,160,202,217,56,137,120,227,12,168,59,96,156,140,228,244,231,158,71,64,115,64,26,2,96,121,243,115,211,1,146,
+35,143,193,165,7,235,215,223,2,134,154,38,0,153,163,99,206,70,33,27,79,110,146,129,248,115,147,219,53,155,246,135,28,24,97,239,247,140,99,240,198,7,175,126,62,152,205,31,104,101,39,17,90,227,174,115,14,
+122,247,57,224,96,116,62,217,247,0,212,89,33,61,37,131,166,120,48,14,156,255,0,207,92,255,0,245,232,243,98,3,254,62,34,7,184,15,15,126,123,204,221,71,83,156,243,131,215,140,225,114,252,141,182,160,255,
+0,119,54,164,103,35,177,145,51,244,39,249,114,225,117,48,228,199,110,71,92,135,180,67,199,66,15,218,254,189,179,239,205,0,93,204,124,226,124,129,216,53,191,110,70,63,121,158,224,158,65,201,250,100,14,
+0,27,101,63,79,50,0,122,244,63,49,224,126,60,119,28,213,127,181,158,233,15,61,66,203,108,72,255,0,201,156,224,227,35,154,119,218,209,136,204,113,117,206,124,219,112,79,191,55,135,39,191,31,143,92,208,
+4,198,102,28,2,91,208,249,176,245,232,122,99,35,56,254,67,57,205,48,200,192,242,203,211,56,18,71,235,254,201,231,183,81,158,122,154,104,186,81,252,17,116,224,23,182,61,185,201,23,68,128,125,242,125,169,
+203,116,173,199,147,1,32,115,251,200,185,198,51,144,46,253,253,63,19,64,8,110,66,227,137,8,198,56,242,216,100,19,156,18,234,72,207,212,103,245,67,118,0,206,31,158,153,141,91,29,50,56,39,129,245,60,251,
+84,162,224,169,202,218,199,140,114,55,64,125,8,200,107,130,79,248,241,244,4,224,253,235,66,189,248,75,111,167,31,188,3,175,99,199,177,197,0,67,246,195,156,252,222,249,129,142,51,146,14,0,192,250,156,255,
+0,80,227,118,91,157,206,15,96,45,138,244,199,65,229,145,147,208,31,166,121,224,88,89,162,98,67,91,202,1,234,118,66,62,131,229,115,212,15,79,94,184,230,80,45,49,147,3,147,223,247,104,113,158,228,0,71,177,
+224,247,61,168,2,137,127,73,101,28,130,119,91,131,128,51,235,14,121,193,231,208,245,29,158,29,177,131,35,227,156,98,1,198,121,236,160,100,227,167,99,223,2,172,48,211,251,193,55,161,62,90,96,241,219,117,
+187,15,167,63,137,197,68,82,196,244,137,192,193,235,10,122,142,226,220,114,1,29,112,61,184,228,1,55,129,140,204,231,61,132,42,63,162,145,159,112,71,208,231,46,45,1,224,202,231,61,115,28,96,125,6,72,62,
+252,116,62,231,52,213,134,200,28,242,167,160,218,136,56,244,226,216,158,199,32,158,222,130,148,219,219,18,65,154,95,160,3,57,32,115,197,161,35,56,247,239,128,49,192,2,143,32,19,243,51,100,100,15,42,35,
+255,0,179,12,116,232,70,123,224,117,167,17,15,4,56,200,236,97,182,35,56,244,14,167,219,61,253,249,168,254,203,104,63,229,234,225,123,225,118,31,78,48,109,51,215,175,203,245,199,74,112,130,193,70,26,254,
+224,123,54,193,235,201,197,129,199,160,4,147,156,246,160,4,253,223,57,57,237,196,17,14,157,143,239,0,207,63,231,52,153,128,227,137,72,227,59,99,132,116,235,140,203,211,158,125,71,175,25,111,217,108,115,
+145,168,201,206,58,136,216,119,201,63,232,99,169,29,127,1,206,64,81,109,102,50,69,233,39,185,17,199,156,15,93,214,60,251,255,0,142,40,1,73,133,122,45,211,118,224,91,227,30,219,167,94,51,143,126,41,235,
+52,67,238,193,118,79,241,102,43,95,230,110,127,160,250,113,85,204,118,195,145,123,32,3,253,136,0,250,156,89,117,206,0,224,118,28,156,82,148,132,142,53,19,198,9,220,177,1,211,212,91,41,199,168,220,57,24,
+29,113,64,18,151,78,73,182,184,7,29,60,187,44,28,125,103,56,61,112,9,7,215,176,13,37,15,2,210,83,236,209,88,159,167,6,66,51,156,118,233,207,67,81,20,143,28,95,175,92,231,17,17,233,156,178,12,240,112,7,
+67,216,250,40,242,240,49,168,145,234,68,113,224,156,15,238,171,122,251,126,84,0,141,16,31,118,218,83,206,50,32,211,242,58,246,207,108,15,94,51,223,154,132,198,115,134,130,225,115,215,22,122,97,227,168,
+228,130,120,231,216,158,50,51,86,1,132,100,29,64,147,140,156,219,43,30,113,215,247,96,227,220,17,244,61,105,4,176,228,169,190,233,235,101,156,113,201,226,50,121,199,57,206,122,253,0,42,152,61,18,235,39,
+210,207,77,0,126,42,84,156,122,227,167,212,210,125,144,30,118,92,159,95,244,123,1,248,224,183,79,229,211,210,172,147,25,206,47,65,200,206,126,192,228,125,126,85,82,7,212,231,158,220,83,0,132,159,248,251,
+228,250,88,78,58,142,185,227,25,235,238,59,208,5,127,177,134,39,13,116,167,7,147,5,137,24,207,60,7,233,248,250,115,140,154,13,142,238,173,56,235,156,199,102,123,1,247,124,220,244,237,208,30,196,228,213,
+150,130,32,71,250,75,227,182,45,156,3,235,198,51,206,122,156,243,223,166,99,91,104,78,115,114,78,121,35,236,146,100,252,184,206,10,122,117,28,147,140,122,228,2,185,211,84,231,116,216,231,248,226,183,224,
+28,255,0,118,64,123,254,189,234,63,236,232,1,199,158,51,198,64,142,50,58,231,181,192,232,61,115,237,201,226,193,180,131,113,62,124,216,246,181,151,174,121,192,1,127,46,125,6,7,20,166,210,211,254,126,46,
+249,3,143,176,202,122,231,31,194,78,61,122,245,30,216,0,175,253,157,8,233,56,30,222,82,130,15,78,79,218,199,243,199,167,122,127,246,125,184,224,204,73,239,186,38,227,35,159,249,127,192,61,58,115,223,129,
+79,107,91,80,6,37,189,111,251,113,144,15,94,234,58,126,93,243,81,155,75,108,97,90,239,174,121,177,143,175,94,11,174,122,0,8,233,216,158,72,160,5,254,206,183,207,14,27,215,42,227,25,255,0,118,240,128,120,
+252,61,59,7,155,8,186,249,103,3,161,2,94,14,56,233,120,122,131,142,120,7,28,122,215,107,84,199,202,111,136,3,63,45,156,30,255,0,236,103,61,120,60,103,25,7,165,68,97,65,140,199,126,195,215,236,86,192,158,
+220,230,18,14,79,169,3,250,0,92,26,116,14,112,20,140,14,193,248,231,254,187,3,140,251,147,198,41,63,178,163,234,34,99,232,113,54,125,122,27,174,199,241,253,106,144,129,127,130,45,67,146,115,254,143,106,
+51,212,100,17,25,60,115,216,28,30,157,48,211,18,238,230,27,236,146,122,195,108,7,62,187,98,3,140,113,223,25,250,208,5,198,211,163,95,249,101,38,120,7,228,149,178,61,54,137,73,239,211,158,50,115,214,161,
+107,24,206,78,201,185,29,21,37,31,142,12,185,201,254,188,227,156,85,120,92,100,44,23,67,208,152,224,24,227,190,20,113,158,123,255,0,42,136,71,32,60,36,199,156,97,150,32,123,227,229,42,113,223,183,29,121,
+160,11,70,201,7,38,43,131,219,149,147,223,185,155,145,236,71,230,42,54,180,143,35,48,202,56,56,251,220,113,199,25,98,71,65,215,183,106,174,96,112,70,80,140,245,82,33,83,208,244,27,1,231,174,126,167,167,
+52,130,25,9,5,98,112,121,206,12,101,70,113,207,220,56,199,112,115,248,99,20,1,41,182,81,192,181,115,245,222,59,119,59,71,167,110,1,207,25,197,51,200,65,199,217,228,94,231,230,147,167,208,243,216,243,237,
+142,41,10,184,200,242,164,63,80,15,35,184,217,24,57,30,227,20,133,55,100,50,21,25,193,220,146,140,17,235,242,117,29,51,200,245,246,0,71,137,6,56,144,116,192,50,72,63,152,228,227,212,246,32,212,96,58,140,
+162,63,182,29,182,244,57,25,18,3,223,176,200,61,58,212,191,102,82,1,6,48,48,57,196,160,100,123,121,125,192,245,234,115,158,8,166,155,94,164,180,45,158,194,57,91,143,76,152,136,36,227,161,35,167,56,227,
+0,16,249,147,142,207,145,234,204,79,61,113,146,199,252,250,115,64,150,83,214,54,60,127,117,143,183,79,151,243,24,245,169,5,169,24,195,68,56,232,34,62,253,132,25,201,235,147,199,66,72,164,16,140,149,119,
+60,116,11,3,247,201,24,30,80,201,61,61,189,6,104,1,134,73,1,200,141,135,4,112,8,253,60,220,228,125,1,245,29,169,3,202,49,148,152,116,232,71,31,129,60,254,32,123,211,218,36,60,97,156,116,63,232,236,79,
+78,152,242,198,70,49,211,166,57,53,92,166,8,34,222,70,227,140,90,130,113,219,229,100,252,143,166,59,245,0,148,201,38,120,75,131,207,247,65,31,152,147,31,159,210,144,153,24,100,199,116,58,243,149,199,225,
+151,29,186,244,62,185,235,81,48,110,63,117,42,245,7,54,208,142,227,3,59,9,228,14,123,231,57,207,82,195,9,127,249,96,252,142,191,103,128,118,60,19,130,72,31,64,62,131,154,0,148,228,117,89,240,64,206,230,
+92,100,115,192,18,103,215,129,198,125,169,8,4,140,199,46,112,14,75,38,15,35,182,242,6,58,228,117,231,0,212,38,23,29,109,221,179,211,2,221,72,250,130,70,126,184,250,246,37,164,72,159,242,237,47,95,239,
+196,50,15,221,251,178,15,95,111,64,40,2,195,70,15,5,100,31,138,116,238,112,31,182,9,207,63,133,48,219,196,121,35,28,231,146,57,63,247,216,231,142,51,248,84,96,200,14,69,165,192,36,14,142,157,186,228,249,
+192,146,120,199,56,28,240,123,33,145,199,91,89,125,193,96,64,255,0,190,110,23,24,201,236,63,1,154,0,119,217,160,60,249,142,188,245,4,99,183,79,152,142,79,79,148,144,126,166,152,98,143,35,19,200,64,7,35,
+112,57,199,183,150,112,6,7,7,146,49,193,2,151,205,36,54,45,15,29,3,22,24,193,29,254,209,193,228,240,7,182,77,1,223,129,246,76,3,158,67,62,123,117,197,206,61,112,122,250,123,128,33,91,124,96,200,56,238,
+64,227,31,72,206,113,143,240,246,137,150,12,225,166,141,87,253,209,207,126,134,213,135,97,144,15,94,122,230,172,44,141,255,0,60,118,227,179,51,240,122,115,251,242,79,29,79,92,251,117,144,111,45,147,18,
+177,207,25,123,161,193,244,196,167,166,57,246,237,234,1,156,86,220,114,183,113,46,14,57,141,143,94,195,109,175,126,228,12,28,245,206,41,4,177,12,226,244,14,79,72,36,97,248,31,177,242,115,206,65,235,208,
+103,166,137,121,1,57,136,40,32,244,107,163,142,184,227,115,19,248,142,224,138,110,231,35,2,17,158,223,45,201,3,30,197,192,246,231,30,148,1,75,206,65,255,0,47,172,72,207,38,222,108,246,56,31,232,131,235,
+199,28,116,205,32,184,66,65,55,78,113,129,159,38,224,140,246,31,241,236,217,56,227,178,231,53,105,188,242,112,34,7,159,249,247,184,35,219,230,243,56,32,3,216,14,167,190,67,74,92,99,253,88,199,76,125,150,
+118,239,211,151,245,39,190,59,119,20,1,91,237,145,3,143,180,205,142,126,237,188,184,62,199,54,125,177,129,128,51,212,241,77,55,131,4,172,243,21,236,90,25,80,122,96,31,177,28,250,100,119,62,216,171,12,
+151,92,16,23,25,60,125,138,78,156,113,254,183,142,199,29,189,49,154,137,163,187,57,194,228,19,208,89,16,122,244,249,167,4,147,211,0,19,253,64,32,55,65,177,243,72,72,28,157,147,19,201,255,0,175,80,78,78,
+8,192,25,28,14,188,167,154,196,101,90,80,65,28,8,238,6,115,156,127,203,167,30,227,61,113,158,212,230,142,239,25,17,56,24,207,22,105,206,50,115,131,112,50,72,231,166,122,156,115,80,180,119,135,129,12,184,
+227,143,176,196,120,61,127,229,190,15,92,113,249,243,64,19,25,100,227,50,92,1,198,112,151,167,128,0,199,203,110,184,252,8,207,92,131,77,19,186,224,25,102,62,160,255,0,105,47,94,156,8,79,242,231,29,251,
+84,49,92,134,195,91,206,79,79,248,240,139,60,30,48,13,193,234,79,92,140,231,218,155,228,79,206,96,157,112,50,9,176,80,61,249,251,73,244,29,73,198,79,25,160,13,3,56,108,141,243,103,7,170,234,0,2,58,115,
+229,46,70,15,65,142,184,3,209,158,121,245,148,140,17,211,80,61,51,234,132,140,246,192,25,237,218,168,121,114,224,124,147,46,79,240,216,255,0,141,201,237,237,71,150,235,252,19,28,159,249,240,0,14,123,254,
+255,0,167,167,175,174,13,0,90,105,65,234,204,49,193,221,246,236,250,227,136,198,59,240,15,227,212,211,4,160,159,245,136,58,158,78,164,1,206,49,194,131,140,253,125,0,205,86,98,0,0,198,195,157,185,107,4,
+206,71,76,17,112,14,125,242,14,115,215,169,140,183,162,147,216,127,162,237,231,223,253,43,142,222,184,239,218,128,52,67,3,193,100,192,233,131,170,253,120,202,140,126,159,203,44,34,15,69,207,78,100,212,
+215,39,57,7,134,57,233,158,131,175,0,128,42,154,201,16,206,229,108,28,112,33,35,169,39,168,184,231,143,94,163,142,104,47,111,253,226,188,231,6,41,79,62,255,0,189,110,64,252,253,121,224,2,233,146,48,8,
+109,132,149,206,12,250,134,58,250,97,179,219,177,200,207,67,81,25,83,57,196,71,57,25,19,93,240,125,139,128,123,228,145,248,117,170,230,75,110,62,114,7,80,26,9,187,113,221,250,99,167,191,95,90,114,75,105,
+208,92,109,199,35,48,77,232,114,65,18,113,143,168,245,34,128,38,19,3,192,88,207,174,102,148,182,61,131,18,9,227,169,239,223,20,121,220,109,10,7,76,147,58,169,201,235,198,15,108,116,199,61,200,198,35,121,
+173,186,125,175,211,129,11,3,142,71,121,20,244,192,206,122,246,244,111,157,8,4,45,201,231,24,59,88,125,57,251,70,126,135,35,28,241,234,1,41,148,149,0,196,56,61,126,214,131,39,140,16,165,9,63,80,64,31,
+129,161,118,96,230,29,220,127,13,202,19,206,70,70,209,234,58,227,244,168,190,210,163,143,63,142,1,43,60,224,145,235,129,114,123,122,247,231,174,13,39,158,15,73,143,31,244,245,117,142,125,205,207,31,80,
+70,57,160,9,207,146,120,49,75,244,89,151,182,51,255,0,44,79,249,193,35,213,140,109,192,200,134,126,58,230,226,34,79,191,54,196,224,96,96,30,157,123,28,27,134,62,105,255,0,242,122,113,158,9,25,205,201,
+199,76,100,3,158,79,39,130,214,57,24,251,78,210,49,255,0,47,175,143,160,223,41,39,185,224,241,192,224,17,64,8,30,28,144,21,192,238,62,209,9,207,94,8,251,41,207,184,246,207,110,36,221,15,66,174,56,227,
+152,27,129,207,31,232,156,159,80,121,233,232,115,14,217,135,221,189,66,8,224,125,165,78,58,247,51,17,140,246,7,191,230,50,92,28,19,119,9,246,107,184,131,15,192,78,167,182,58,115,140,17,206,104,2,202,155,
+83,141,210,92,169,25,237,15,175,253,112,207,126,221,115,234,69,33,138,205,242,119,202,14,113,130,177,146,125,248,182,57,7,243,61,51,233,87,203,184,227,109,196,39,61,113,119,31,168,228,98,227,190,56,199,
+62,185,233,81,186,93,231,137,97,36,158,247,40,14,125,114,46,1,231,175,168,32,227,57,20,1,104,218,219,51,127,173,112,185,199,41,207,61,249,131,3,39,128,6,123,242,56,162,171,98,247,161,104,24,0,7,55,17,
+144,49,147,193,105,72,253,70,79,166,57,40,3,217,188,155,160,15,250,156,17,222,36,252,73,196,220,129,199,94,152,56,193,166,178,220,2,119,52,62,184,17,224,14,123,252,231,24,247,200,239,193,224,70,111,35,
+60,181,180,227,156,28,52,223,162,249,61,56,199,80,7,7,216,161,189,136,131,182,27,176,121,206,75,12,103,217,162,24,199,110,132,244,6,128,31,186,65,203,75,16,35,167,10,64,198,15,247,192,7,29,184,246,38,
+154,100,99,159,244,136,65,25,224,172,126,167,174,11,147,156,99,35,166,125,112,42,31,183,19,140,199,116,50,6,49,43,46,48,120,33,188,149,61,113,147,159,108,131,154,70,190,86,200,43,113,215,32,155,142,120,
+207,251,28,31,175,124,16,15,112,7,171,190,236,155,152,72,60,227,107,117,244,192,10,7,243,237,142,166,172,9,71,121,237,128,28,114,37,231,167,25,32,158,185,192,239,197,83,23,145,158,24,79,130,79,62,102,
+121,207,64,48,63,32,120,244,61,106,65,50,49,27,77,199,190,85,72,24,247,193,39,182,65,231,240,52,1,103,207,140,143,154,91,99,142,14,221,248,239,207,43,199,211,4,14,156,245,163,204,132,227,115,219,145,215,
+57,144,96,243,159,186,1,29,178,79,108,250,224,69,230,48,60,6,32,241,209,1,4,116,57,117,31,143,39,223,138,77,167,156,163,243,234,45,134,62,132,237,4,158,249,201,201,63,90,0,145,166,181,28,249,150,195,4,
+114,5,201,246,207,12,160,156,119,207,161,237,77,251,85,184,31,235,35,57,207,34,41,216,125,8,51,118,250,243,249,212,34,23,237,230,0,72,194,249,182,160,14,121,35,156,122,243,234,7,165,60,192,227,188,199,
+24,28,92,91,18,59,247,108,243,215,140,115,159,196,1,198,226,219,251,201,206,15,252,122,92,31,108,229,110,71,36,127,156,82,137,109,155,161,141,136,245,178,186,36,113,212,98,236,140,15,83,223,60,102,144,
+36,188,141,178,122,229,167,128,159,201,100,24,235,219,140,14,130,164,48,190,6,22,78,163,254,94,163,0,250,96,249,249,61,122,99,167,227,64,16,25,32,206,54,177,0,159,187,107,120,163,144,114,121,186,92,241,
+219,36,14,152,201,167,9,173,49,134,8,120,198,26,218,225,186,113,255,0,63,103,219,27,186,113,222,149,162,152,147,182,28,142,153,55,3,241,251,178,245,62,185,201,20,229,75,149,231,202,60,0,121,185,3,156,
+246,45,55,226,56,198,78,15,184,4,108,246,75,201,85,4,112,7,216,110,15,65,216,155,156,245,35,166,113,199,64,106,51,45,145,255,0,150,100,17,233,97,113,142,152,239,43,126,124,231,159,90,148,155,210,8,242,
+83,25,237,122,128,158,120,28,74,49,145,245,231,29,51,76,18,221,12,2,142,163,253,155,222,51,216,241,35,122,113,193,25,63,66,0,16,92,89,42,237,216,236,56,192,251,44,234,72,28,2,55,57,7,30,253,120,207,52,
+241,115,106,71,250,185,200,198,62,91,71,233,208,224,153,79,208,156,117,245,164,15,117,140,126,243,255,0,3,72,61,176,121,39,57,239,199,127,94,41,119,92,12,179,179,143,81,246,137,91,57,236,7,144,221,7,76,
+19,208,208,3,140,214,56,255,0,81,57,61,121,180,148,119,227,33,119,100,241,206,9,199,90,111,155,101,255,0,60,37,0,250,195,56,199,83,208,161,201,199,3,143,215,163,119,48,37,67,57,56,207,55,19,125,63,231,
+221,56,4,140,243,235,199,20,187,102,111,249,105,130,114,48,46,38,247,237,142,121,193,237,199,115,193,160,7,153,172,128,233,50,169,24,25,142,112,49,236,4,68,19,235,146,49,207,124,97,22,234,203,63,127,233,
+186,27,166,199,183,17,0,123,112,167,4,142,253,68,27,24,18,172,146,191,175,250,75,237,231,143,249,230,79,160,228,227,29,207,20,133,35,82,73,18,47,210,118,32,231,60,113,1,255,0,199,137,239,156,2,50,1,99,
+237,118,252,237,98,65,254,237,165,246,115,220,12,67,199,212,246,231,138,26,246,16,56,14,185,254,245,181,230,51,199,108,0,113,254,113,131,152,214,56,142,62,71,36,142,247,18,161,57,62,130,223,29,251,14,
+135,174,79,46,22,233,130,66,178,103,183,218,103,247,39,129,10,231,60,99,160,232,40,0,251,92,108,126,251,99,140,226,222,240,112,120,28,171,47,61,113,207,60,122,83,90,234,223,31,49,148,112,121,16,95,30,
+113,220,100,231,145,220,250,159,81,83,8,16,128,78,227,158,198,121,187,122,131,24,246,227,20,134,8,219,164,64,244,198,110,110,7,3,166,54,158,49,219,7,185,207,25,52,1,80,221,91,142,68,140,73,198,55,218,
+234,3,184,250,174,7,208,227,208,142,3,69,196,71,254,90,17,255,0,110,218,131,126,88,198,127,74,188,34,85,24,16,6,236,20,93,93,96,254,38,69,192,247,228,142,8,230,164,67,40,206,219,116,35,182,103,187,111,
+195,153,8,29,56,252,121,20,1,155,231,196,1,30,108,171,245,182,191,198,125,72,203,16,48,7,127,202,154,94,221,185,51,228,231,133,104,47,249,39,28,242,167,142,7,67,232,70,121,206,161,145,136,59,173,98,7,
+183,239,46,125,241,146,65,227,168,201,61,123,228,224,129,178,8,49,66,184,60,103,237,13,215,232,65,39,176,199,83,142,227,128,12,162,32,233,134,32,247,251,61,224,31,170,131,142,153,246,61,233,18,11,67,193,
+4,146,122,152,238,199,184,236,57,247,199,124,86,142,226,9,10,150,248,28,142,46,198,7,94,161,128,56,24,39,28,231,52,111,113,215,202,4,246,84,185,110,125,254,97,215,216,143,81,215,52,1,158,246,150,163,4,
+21,30,223,233,3,245,40,64,207,81,146,115,233,210,153,246,75,78,172,168,195,63,197,36,199,241,193,135,160,244,200,25,245,25,171,165,189,74,243,159,249,99,125,250,5,152,99,235,140,116,233,81,225,9,59,150,
+18,199,56,221,13,246,72,29,255,0,215,113,220,100,3,193,206,78,104,2,169,130,219,128,162,220,19,217,188,220,12,244,203,24,71,175,176,252,41,69,188,68,113,228,113,206,85,230,7,61,184,217,128,48,57,227,219,
+161,171,94,82,245,34,220,142,63,229,133,249,56,238,126,121,148,122,227,175,214,145,163,183,32,6,17,131,201,207,217,111,8,231,24,251,183,3,166,57,30,164,230,128,43,155,75,112,167,45,8,200,192,221,113,40,
+252,136,65,158,123,113,140,103,39,173,69,246,104,176,64,150,223,183,91,137,48,71,0,245,11,211,131,199,67,211,210,173,152,45,113,203,0,59,109,180,187,85,29,207,45,62,121,231,243,60,30,42,35,5,161,228,62,
+9,227,253,69,200,227,215,137,73,61,58,116,250,19,64,16,121,8,164,145,44,25,199,59,110,165,206,51,212,115,159,175,78,63,85,17,41,255,0,150,202,58,245,185,151,130,61,1,57,228,103,176,201,239,142,42,111,
+179,218,0,57,12,114,9,34,57,198,8,244,220,217,231,131,237,78,17,219,231,10,56,39,0,108,155,25,227,35,239,115,159,167,227,234,1,93,163,56,226,236,142,132,98,230,227,131,215,7,25,192,61,199,92,131,192,60,
+212,69,71,35,237,67,174,57,184,184,193,231,28,229,70,14,61,199,62,135,147,121,162,137,121,9,17,61,50,201,58,254,28,28,117,234,57,233,207,92,211,0,139,32,236,182,237,218,66,63,29,202,199,60,103,61,120,
+246,160,10,225,21,65,34,228,41,239,135,186,110,115,253,224,163,219,144,57,199,90,10,146,119,11,167,57,193,206,251,190,6,122,228,174,71,174,123,244,171,91,225,29,99,132,144,120,11,229,99,158,217,107,125,
+221,7,92,19,235,234,90,210,195,211,236,233,199,117,107,108,240,73,25,6,216,158,221,79,3,35,129,154,0,136,1,142,110,156,142,251,141,193,247,228,50,17,143,126,125,13,59,39,28,93,1,145,212,9,73,29,48,123,
+16,125,57,7,158,115,158,84,79,15,81,4,96,231,230,200,131,167,111,152,218,0,61,57,161,167,132,125,232,129,246,18,90,245,227,168,251,40,235,192,28,142,164,247,160,4,203,21,193,186,12,51,209,162,151,145,
+248,247,227,208,254,56,165,66,7,30,122,103,32,0,109,219,62,135,159,40,228,99,3,175,168,227,173,2,230,220,158,45,207,203,199,30,70,48,9,60,145,24,235,223,145,215,128,105,166,230,0,8,91,124,18,71,80,132,
+117,234,10,17,180,143,166,49,223,56,160,9,114,227,149,150,223,30,174,161,71,57,7,25,140,126,167,60,227,25,160,73,50,146,124,251,115,207,240,136,155,220,144,24,6,228,156,122,158,120,60,212,6,120,179,147,
+109,9,30,227,140,227,29,228,31,254,190,115,156,101,13,213,191,32,218,219,41,232,120,4,241,140,28,249,135,168,231,3,223,140,158,64,38,243,228,25,253,234,113,131,196,112,243,208,247,82,113,159,160,233,215,
+25,163,237,12,122,202,249,201,4,42,194,6,61,136,83,207,95,94,59,212,94,109,129,193,251,52,71,233,128,15,254,63,211,142,123,103,160,233,77,103,211,200,39,236,136,120,228,18,64,227,167,43,40,62,163,36,103,
+215,174,72,5,161,55,169,149,125,14,240,9,224,242,8,42,48,120,232,51,249,138,107,74,122,25,102,28,103,5,201,7,142,196,76,58,125,51,208,129,84,183,216,110,7,236,113,145,207,24,145,186,117,31,235,58,123,
+241,192,249,135,20,226,108,8,36,90,66,123,240,100,79,196,229,143,175,211,243,224,2,83,59,140,31,61,129,237,151,151,219,168,243,115,142,185,30,220,142,104,251,68,160,127,199,203,15,83,153,178,122,245,38,
+79,199,61,71,64,58,102,176,146,204,156,11,27,86,233,212,57,39,63,94,61,250,243,223,210,148,165,166,115,246,11,32,120,32,110,101,206,65,244,5,185,245,201,28,231,52,1,96,205,112,127,229,237,241,255,0,93,
+37,231,216,3,58,142,59,100,251,142,134,147,206,152,114,215,78,56,61,25,216,245,29,133,208,254,103,158,56,205,64,34,128,242,182,22,32,144,50,3,28,118,232,118,30,51,220,19,159,199,53,47,149,9,192,54,86,
+135,36,100,2,167,35,61,142,49,239,142,227,181,0,56,76,228,28,220,220,18,125,165,97,199,175,250,65,192,231,31,78,114,105,86,73,57,38,102,235,252,94,120,61,125,165,28,103,4,28,242,113,237,150,125,150,19,
+255,0,44,109,198,113,192,0,231,142,128,136,191,30,189,51,208,211,205,154,168,202,219,43,123,140,113,232,127,213,49,231,211,131,147,219,145,64,18,163,190,9,107,133,29,176,124,252,122,117,19,14,157,187,
+130,6,49,154,66,207,215,237,81,224,140,227,19,228,159,171,78,216,233,239,159,110,240,249,36,144,162,24,193,238,9,227,244,85,235,223,4,17,198,58,224,185,109,157,240,54,166,58,15,152,128,49,211,248,212,
+227,57,247,7,147,154,0,121,146,65,193,154,51,200,198,76,223,55,94,219,220,103,166,114,49,215,3,154,120,118,61,89,31,28,19,130,79,108,15,153,65,239,156,228,28,12,14,213,15,216,220,19,149,76,18,7,51,100,
+96,117,224,206,167,191,247,135,94,113,158,15,178,49,198,99,207,186,224,103,24,193,13,246,172,159,66,72,24,198,57,206,104,2,113,44,99,27,227,45,234,65,32,31,66,48,113,249,116,224,145,234,228,154,215,156,
+195,143,96,204,115,207,81,134,207,124,31,167,113,140,82,54,147,41,251,160,12,112,88,140,228,103,140,253,168,231,240,247,228,210,155,121,121,253,225,4,243,128,163,191,166,217,88,100,142,115,206,61,6,40,
+3,68,221,218,113,251,151,57,39,140,92,227,61,250,48,3,183,3,232,56,169,62,211,104,0,62,80,83,140,227,202,152,147,159,92,186,99,29,207,3,29,251,214,49,183,148,15,245,146,100,99,179,129,239,252,71,63,82,
+121,236,7,38,129,20,163,3,124,167,28,12,239,31,251,54,7,127,225,207,94,228,100,3,95,237,22,167,254,89,200,15,222,27,68,139,156,246,24,155,61,191,42,84,154,223,156,71,42,231,185,146,79,175,67,63,56,3,167,
+94,195,219,40,36,131,171,16,61,25,228,4,254,115,113,236,73,253,42,95,38,82,163,247,137,128,115,143,56,113,201,233,153,31,223,29,77,0,105,9,160,254,36,124,31,67,39,3,62,191,104,95,192,228,227,154,114,205,
+111,187,10,28,115,223,121,7,216,230,235,4,231,56,237,252,171,56,70,216,251,216,35,142,36,139,255,0,102,140,159,78,156,82,170,183,221,51,99,61,24,53,185,199,126,15,217,216,247,199,36,142,189,104,3,83,205,
+76,240,206,49,142,60,198,207,57,200,4,95,0,62,152,227,223,34,148,77,30,51,230,142,127,191,33,57,193,29,205,235,244,192,244,231,56,199,90,206,88,243,129,246,133,236,57,104,23,3,240,176,57,3,62,152,234,
+51,198,42,65,24,4,15,180,219,254,50,66,196,159,64,63,179,199,111,212,250,113,64,26,38,116,35,137,3,158,78,208,192,254,162,235,35,57,207,94,131,211,138,103,154,199,185,28,115,146,187,113,158,58,92,156,
+250,231,7,39,62,213,68,170,131,204,182,132,244,229,161,24,3,175,77,61,7,97,147,156,159,230,102,16,65,221,103,156,246,146,1,215,235,104,50,127,12,117,231,131,64,23,204,163,35,134,98,121,1,64,232,49,158,
+12,249,239,233,232,122,142,20,76,163,7,201,201,232,3,47,56,250,171,158,15,175,56,201,201,227,53,76,27,114,50,94,212,17,211,247,182,252,251,128,108,136,233,215,175,92,100,102,151,22,131,150,120,9,39,179,
+91,177,61,135,252,195,253,185,193,199,227,212,2,239,156,72,201,183,140,99,63,41,80,199,242,13,147,159,175,233,197,68,110,88,3,182,215,230,255,0,174,68,142,253,6,236,224,115,208,158,56,235,138,132,253,
+140,117,10,216,0,140,36,61,50,6,65,22,203,237,223,28,253,13,61,94,215,130,34,140,99,159,186,128,224,103,174,32,200,30,227,24,160,1,174,174,15,75,110,128,1,251,135,224,243,219,105,36,122,12,241,235,200,
+2,63,180,76,196,147,110,115,215,254,61,51,207,28,130,72,60,231,175,113,212,156,154,155,204,181,232,33,140,158,160,132,127,98,113,181,121,29,58,17,143,90,144,73,0,227,200,81,207,96,252,224,0,79,46,63,18,
+0,235,128,120,25,0,169,230,202,73,253,198,78,122,155,70,4,123,112,196,30,58,128,71,191,108,1,229,29,33,60,159,249,243,110,62,135,204,255,0,10,185,246,136,58,24,228,0,119,88,216,231,219,239,143,192,253,
+121,199,87,45,212,7,32,37,207,28,156,40,24,250,230,224,12,231,169,199,110,58,208,5,35,35,15,189,18,117,57,6,204,228,143,76,253,165,112,64,200,207,233,75,230,72,7,9,24,29,70,109,177,140,143,95,182,228,
+115,223,185,198,15,82,116,68,176,18,72,142,225,189,63,213,228,158,114,121,184,97,249,131,235,205,30,116,107,144,144,207,199,102,72,91,175,168,19,47,56,28,117,25,0,227,212,2,136,158,94,10,249,39,142,130,
+35,184,17,201,25,55,132,28,131,208,100,250,226,154,110,216,31,157,163,4,30,159,103,28,28,255,0,216,71,168,207,97,199,60,240,106,255,0,218,112,115,246,119,233,201,104,173,192,199,3,31,53,200,57,28,28,46,
+115,207,66,112,24,215,128,31,154,60,122,110,142,215,28,15,81,43,243,192,227,62,148,1,76,93,147,255,0,45,35,25,29,60,132,24,239,207,252,76,14,115,159,83,140,145,219,34,69,187,67,193,146,46,58,229,16,103,
+240,23,164,251,84,166,241,79,72,213,143,60,32,183,79,166,72,154,62,231,24,219,156,156,10,111,218,137,39,247,44,14,114,64,104,15,111,123,130,73,228,126,28,243,64,18,45,212,93,75,33,250,34,143,92,157,171,
+114,192,15,92,243,158,220,230,158,46,97,198,114,190,196,70,127,14,124,238,15,191,62,181,88,220,205,192,88,14,120,231,54,164,242,122,3,231,228,115,238,121,201,233,73,246,139,182,228,70,203,142,128,253,
+156,231,215,63,233,0,125,56,235,154,0,159,237,144,28,130,164,174,70,62,86,62,159,244,215,25,30,153,232,123,117,167,11,171,112,15,250,206,122,0,178,15,169,200,145,128,233,215,235,156,156,213,86,150,244,
+142,0,83,244,128,49,31,81,57,227,167,76,84,5,245,33,211,204,30,234,96,35,159,66,210,118,237,249,123,80,6,143,218,97,227,137,142,58,127,172,244,61,120,39,60,245,207,177,197,56,205,25,25,30,104,7,142,114,
+63,82,87,245,35,235,235,156,46,53,78,158,100,252,115,199,145,207,126,191,105,94,123,126,3,30,237,251,70,166,78,119,92,119,199,239,227,29,14,79,202,46,206,15,97,212,224,242,120,205,0,94,12,172,70,30,65,
+201,39,230,207,167,56,36,244,231,158,190,221,234,64,19,60,205,49,207,171,149,29,57,245,244,227,143,83,222,179,196,250,168,28,75,118,59,128,211,198,189,120,36,98,127,169,31,55,127,202,101,184,213,151,31,
+233,23,160,251,92,68,195,35,174,8,186,57,199,78,7,62,128,113,64,22,246,70,120,18,149,0,103,62,103,99,236,70,127,46,152,255,0,122,134,242,112,127,210,129,228,129,186,84,206,71,94,88,128,49,193,198,70,56,
+239,156,194,183,58,169,4,253,174,243,39,61,100,65,143,65,196,196,244,247,35,56,231,131,79,23,58,159,57,191,188,67,232,37,201,239,216,77,158,227,142,156,116,57,38,128,24,85,56,11,121,24,7,184,154,34,59,
+159,249,232,7,212,0,113,239,200,164,17,41,207,250,116,99,241,140,243,223,36,103,60,99,158,72,231,140,112,100,55,55,252,110,189,188,113,192,199,152,192,145,223,7,237,10,58,123,250,103,60,229,223,105,185,
+29,39,190,99,142,66,220,99,32,117,251,211,159,192,122,12,208,4,38,12,255,0,203,244,103,118,79,59,7,67,143,226,200,224,99,219,60,112,121,163,236,99,147,246,216,9,192,229,150,60,122,99,132,39,35,61,114,
+1,252,106,202,222,220,169,251,215,128,103,130,210,131,250,137,123,243,156,224,158,195,147,82,53,228,237,198,251,177,239,230,28,116,233,196,217,3,182,49,142,190,217,0,160,108,70,114,215,54,196,30,255,0,
+116,126,106,1,231,183,249,6,101,179,137,84,230,91,115,245,121,14,125,50,2,145,208,17,207,227,197,88,243,100,99,147,44,224,231,248,139,57,7,61,243,50,251,14,58,30,157,5,47,153,55,67,44,239,159,250,102,
+249,199,167,252,124,40,29,63,1,208,244,192,5,111,178,69,252,62,75,122,109,87,32,96,247,202,30,184,61,62,159,88,154,13,188,21,82,7,60,66,237,144,58,244,92,126,67,35,35,24,233,86,203,54,48,86,229,137,232,
+124,174,58,243,255,0,47,190,157,182,231,154,99,0,48,222,92,173,219,136,1,56,245,32,221,241,219,244,239,201,0,172,177,171,125,219,104,200,198,62,107,105,7,78,224,249,71,28,159,83,159,124,211,196,4,224,
+11,88,207,183,146,195,159,251,243,207,166,122,251,96,80,210,56,200,16,77,193,61,116,244,97,234,78,69,214,79,29,207,61,243,81,111,147,35,48,56,192,232,108,128,31,64,22,236,3,129,143,83,159,83,212,2,199,
+146,20,128,44,249,228,19,130,160,142,185,229,6,121,245,29,189,113,71,148,9,255,0,143,3,206,62,98,209,14,78,79,25,93,221,79,78,72,238,58,212,27,164,39,253,94,57,234,109,28,114,122,242,183,157,191,63,95,
+90,8,115,141,222,94,48,121,251,52,163,61,136,56,190,63,145,94,253,250,208,5,143,43,36,15,177,129,140,224,238,82,112,127,237,153,250,3,207,235,75,176,116,54,228,117,206,76,120,228,250,109,207,127,126,231,
+154,168,96,220,72,197,183,61,119,218,202,189,61,254,217,158,123,145,143,106,141,161,10,126,237,151,254,3,205,158,72,227,155,179,215,174,0,63,92,98,128,46,180,113,142,177,109,236,113,228,243,233,157,201,
+211,129,199,160,29,122,136,136,137,123,21,237,243,60,0,15,111,151,215,169,231,62,135,147,84,217,20,156,24,237,1,199,83,4,191,137,199,218,125,253,240,122,100,230,154,23,178,173,190,71,76,65,114,7,124,3,
+130,249,192,62,131,215,210,128,47,168,132,255,0,24,250,2,27,184,254,37,114,61,125,127,74,26,40,78,51,34,140,142,222,103,35,215,134,3,159,167,78,156,28,85,63,223,227,133,132,1,211,105,185,140,31,174,84,
+12,126,135,3,140,210,136,229,108,238,48,14,184,204,215,57,61,135,76,126,100,129,129,223,184,4,230,222,215,28,200,91,7,180,82,190,121,244,15,234,125,8,252,77,39,151,105,145,182,80,49,140,238,180,156,224,
+125,50,71,111,195,145,131,214,162,48,49,198,13,190,49,255,0,63,87,71,60,115,147,191,156,159,203,167,34,147,236,110,223,242,202,34,127,217,186,185,31,134,48,113,129,211,7,140,30,123,80,4,134,8,243,242,
+76,184,199,107,43,174,158,132,162,228,131,236,48,125,49,154,105,141,71,59,198,71,127,178,95,2,121,227,144,7,183,31,141,71,246,87,4,226,36,7,156,127,164,93,156,30,159,194,49,220,250,15,202,154,109,164,
+61,98,94,71,32,92,93,241,206,1,193,35,61,57,224,12,247,25,160,7,52,106,228,230,225,71,174,44,239,216,228,122,230,54,250,12,21,247,6,162,104,19,175,218,216,142,63,229,202,239,230,32,242,127,212,147,233,
+235,239,79,251,60,234,118,148,56,39,31,235,174,79,108,145,156,144,58,119,227,241,200,165,54,236,15,41,32,60,244,146,239,24,60,96,129,17,237,158,185,60,244,193,20,1,92,91,171,19,137,149,136,4,141,214,87,
+156,15,97,246,82,14,61,207,78,156,210,155,118,0,226,72,200,32,12,125,142,117,61,122,228,217,140,241,156,28,131,159,167,51,253,152,28,146,184,255,0,105,167,187,4,99,140,109,42,49,140,116,192,30,132,212,
+77,106,156,231,118,14,6,60,203,182,92,231,156,227,36,12,123,147,199,161,56,0,174,214,242,128,118,74,131,160,202,197,112,191,202,223,169,193,247,233,192,226,163,104,110,192,192,156,224,116,96,178,143,108,
+115,15,81,244,224,250,145,83,139,123,97,201,192,57,198,65,188,234,7,28,144,7,28,231,7,57,198,57,193,167,24,173,241,157,173,129,207,15,62,9,192,232,90,39,57,7,3,211,223,142,64,40,152,175,134,51,59,176,
+237,146,164,31,127,158,32,123,14,9,25,35,218,153,182,236,30,75,28,103,31,234,64,235,215,36,14,61,198,57,228,154,209,243,44,198,3,9,1,4,255,0,19,96,115,254,213,171,112,72,234,115,193,246,52,195,115,107,
+156,2,253,123,201,24,57,61,0,31,100,237,208,28,16,122,241,205,0,82,34,227,251,204,122,244,91,119,35,63,94,73,235,211,7,25,168,243,112,63,134,70,25,255,0,158,86,227,243,59,128,199,228,121,207,21,120,207,
+103,147,243,72,7,36,254,249,56,35,56,225,108,186,251,129,232,62,143,23,54,88,192,146,110,221,38,155,28,116,251,182,67,159,66,199,28,80,6,112,184,186,95,151,236,178,158,6,8,134,2,115,233,247,155,167,166,
+112,121,199,29,70,154,248,114,182,115,246,198,45,227,3,29,114,48,192,241,156,16,15,35,128,8,197,105,253,170,223,162,9,56,232,77,220,227,143,79,248,247,207,175,56,63,135,24,30,241,115,129,230,250,252,183,
+83,182,79,25,235,106,121,254,157,9,198,104,3,33,174,111,142,65,178,184,193,238,97,69,3,167,76,177,29,240,78,59,250,210,125,162,227,0,125,154,97,237,229,68,122,243,212,184,28,119,7,28,156,15,90,212,55,
+96,140,21,99,147,193,107,169,71,254,133,110,7,60,18,50,113,219,28,211,126,208,152,63,42,131,143,249,239,235,199,70,64,115,142,49,187,39,211,52,1,158,37,152,227,54,210,145,220,152,96,30,248,255,0,90,222,
+135,208,99,60,102,158,37,108,252,208,21,62,165,35,25,232,121,218,120,29,122,159,175,106,182,39,60,133,56,36,99,38,83,143,166,67,47,225,206,61,189,23,205,144,129,159,45,128,235,186,89,142,1,255,0,183,129,
+201,233,215,28,250,10,0,164,207,156,124,132,28,142,161,64,239,206,55,19,236,112,7,110,122,211,11,119,0,116,199,221,94,58,250,231,167,185,224,253,43,68,202,79,7,202,3,161,196,151,157,58,255,0,207,225,28,
+142,224,119,39,189,70,57,57,5,49,211,5,174,155,24,207,65,246,161,253,120,28,115,205,0,82,14,199,32,144,57,233,185,114,123,116,206,8,28,241,199,92,0,106,50,187,142,55,160,250,149,224,30,123,176,231,183,
+7,28,125,69,94,118,98,8,249,58,117,31,104,60,250,97,174,182,147,232,122,99,142,121,204,12,73,254,54,28,113,251,182,108,119,60,121,217,247,228,244,192,238,8,0,170,81,215,248,227,24,250,0,123,117,243,187,
+251,127,58,97,207,105,160,7,35,169,227,56,235,133,185,81,238,112,57,252,234,76,169,63,51,185,57,207,16,184,252,56,186,28,246,198,15,61,129,226,148,72,58,121,146,241,216,71,39,202,79,94,77,222,113,128,
+114,59,228,158,220,0,68,209,200,195,253,101,179,1,215,42,249,60,96,1,139,130,56,254,71,233,76,242,200,28,180,28,228,125,217,0,31,240,21,99,223,32,141,195,233,86,75,177,28,189,201,63,238,79,199,126,211,
+31,208,244,231,235,19,60,132,30,110,78,51,143,221,221,159,253,168,114,59,247,29,79,122,0,132,199,193,57,183,39,32,18,35,156,231,232,3,3,156,158,185,61,79,126,106,38,141,193,200,88,57,7,36,37,216,60,123,
+2,73,227,212,100,247,247,123,73,33,200,217,116,72,61,160,155,24,233,159,153,78,7,126,122,14,115,138,174,77,193,193,85,188,61,127,229,135,113,223,38,46,57,233,140,244,24,160,9,54,77,140,1,110,121,234,86,
+236,246,228,224,245,235,212,142,113,192,29,1,229,207,217,109,48,114,126,229,209,253,24,156,247,206,112,61,65,57,205,125,247,195,32,67,118,70,58,27,108,130,58,112,194,18,15,80,122,30,252,231,154,97,125,
+64,103,247,119,124,127,211,4,237,211,150,139,211,3,28,115,192,245,32,23,85,110,191,187,106,192,127,118,59,159,79,114,78,61,177,216,241,208,210,147,114,56,49,219,123,130,151,92,250,242,234,221,207,32,158,
+159,166,91,62,166,199,132,185,111,102,142,53,56,198,50,113,23,39,241,61,105,66,234,100,28,171,131,206,50,35,231,177,224,160,28,123,123,244,29,0,53,60,171,150,235,21,183,35,24,84,144,130,120,206,115,3,
+1,211,160,7,61,115,130,48,211,20,224,156,36,39,232,172,56,233,140,125,149,122,99,167,211,147,89,109,22,162,65,38,48,221,57,34,46,7,62,136,113,248,128,7,242,170,69,254,72,242,192,235,200,242,148,14,253,
+124,177,207,175,60,146,71,124,80,6,243,45,216,63,234,227,239,131,157,160,247,24,253,192,28,14,115,159,108,113,204,12,111,186,21,24,206,48,29,123,103,177,136,3,142,125,15,76,113,156,98,50,106,37,114,119,
+237,235,195,193,211,220,21,245,206,49,144,122,142,162,154,18,252,224,134,149,78,59,73,16,24,28,255,0,10,129,248,28,156,251,158,64,54,177,121,252,74,7,31,196,208,156,231,25,198,97,56,233,207,92,103,166,
+105,132,93,119,242,193,245,18,91,3,239,214,19,220,12,253,0,231,182,73,23,227,147,36,220,16,15,239,8,199,63,238,145,211,61,62,156,140,101,140,47,8,203,72,227,29,67,75,39,81,212,240,7,190,7,29,77,0,107,
+179,205,140,52,138,73,232,166,75,102,250,159,245,4,17,211,142,255,0,78,149,154,73,0,198,99,7,216,218,130,112,121,227,236,167,183,191,39,176,237,156,4,220,18,238,121,255,0,158,146,31,108,242,217,62,248,
+231,158,71,38,164,95,55,61,38,35,209,100,42,122,131,212,204,190,185,39,215,7,173,0,89,23,50,3,204,169,147,198,225,45,138,250,118,251,48,193,245,4,254,93,154,110,102,0,31,180,38,125,26,226,215,24,56,39,
+164,13,140,18,121,245,192,24,168,154,73,128,63,235,201,227,0,78,195,185,244,152,159,94,132,140,115,198,42,15,54,83,195,11,128,58,255,0,199,203,140,28,250,153,122,103,156,18,9,61,64,160,11,98,234,83,214,
+104,88,140,242,47,44,207,78,227,247,57,28,117,200,199,57,28,138,62,214,217,27,165,139,36,129,205,197,177,227,140,131,155,108,103,182,51,198,51,219,138,194,70,39,143,180,28,158,115,112,196,19,219,32,77,
+201,252,254,158,142,243,156,100,133,144,146,64,255,0,89,47,182,121,89,27,241,224,123,114,40,2,208,186,83,143,158,18,115,129,153,172,248,246,203,90,31,207,175,76,145,158,100,23,114,17,254,182,60,14,223,
+105,178,25,244,255,0,151,49,128,51,216,158,189,79,53,64,73,48,61,7,57,254,41,201,231,190,51,201,199,175,167,161,4,59,205,148,116,11,211,156,179,250,115,157,204,188,228,122,244,227,0,242,64,46,125,182,
+108,255,0,173,65,140,241,231,219,182,113,254,237,167,32,227,56,231,142,253,203,126,216,253,222,18,115,146,11,197,158,58,114,214,234,51,211,30,158,157,234,161,157,242,50,241,228,243,254,176,174,114,112,
+58,201,129,140,243,220,247,166,153,157,121,223,15,167,50,48,235,235,137,9,39,216,30,184,237,154,0,187,246,198,56,225,51,140,29,183,81,160,192,232,72,17,0,56,192,200,246,237,78,23,108,58,44,0,158,50,111,
+81,187,231,161,0,100,158,135,140,159,76,214,97,146,70,60,201,104,190,155,164,124,140,251,110,60,227,158,71,79,94,241,153,27,167,159,104,121,231,99,203,158,157,59,143,200,17,235,156,138,0,209,107,185,148,
+147,152,51,156,228,79,19,99,215,129,144,123,227,36,116,24,28,131,81,53,212,135,230,200,29,126,233,71,28,116,57,14,125,125,0,252,234,160,156,168,230,120,50,8,57,219,38,70,113,232,164,228,255,0,245,136,
+192,167,27,166,36,127,164,196,190,193,103,201,234,1,251,128,251,246,235,248,0,9,205,203,17,203,140,250,55,144,126,159,122,69,253,14,123,116,235,93,174,39,254,18,152,237,242,65,211,254,255,0,143,195,250,
+113,77,105,137,235,119,128,112,56,18,168,252,71,126,15,175,28,251,154,60,216,134,65,186,57,238,85,220,118,227,144,227,25,254,157,51,208,1,166,73,136,249,154,51,206,126,100,76,115,215,56,186,3,174,115,
+142,190,212,83,60,232,178,71,219,100,29,201,243,220,158,184,25,34,108,128,58,17,142,189,7,106,40,3,219,136,185,234,150,209,128,6,126,97,114,217,252,60,214,201,199,255,0,172,230,156,130,243,60,91,70,1,
+61,118,206,189,177,206,100,231,208,113,223,183,118,108,79,238,175,253,242,63,194,174,136,227,56,202,33,249,87,170,175,191,181,0,65,139,178,112,33,141,73,35,170,204,64,245,207,204,122,122,115,156,116,231,
+147,23,92,146,150,224,228,12,52,79,199,212,249,100,224,118,39,39,138,180,136,131,110,21,70,118,231,229,28,244,235,197,29,241,219,119,254,203,159,231,205,0,84,100,187,32,159,244,64,7,251,18,15,124,100,
+91,159,199,39,167,232,153,186,200,195,218,143,168,159,28,115,255,0,62,227,25,60,245,235,233,218,241,3,142,7,67,216,122,154,137,192,192,24,24,231,140,113,219,181,0,86,45,122,163,153,108,112,127,190,146,
+146,51,232,124,161,193,206,15,76,99,174,14,68,70,123,209,128,102,210,49,142,67,69,35,30,61,127,118,115,143,226,201,239,199,165,90,29,62,133,177,249,255,0,245,135,229,75,147,147,201,232,59,251,154,0,167,
+231,222,103,11,62,144,59,127,199,172,220,118,200,34,3,216,142,248,28,158,77,56,75,123,142,110,52,208,15,66,18,101,207,190,126,206,9,31,66,64,207,81,205,108,199,209,126,191,214,140,3,212,3,64,25,30,117,
+200,7,55,90,120,207,28,137,72,247,255,0,150,39,142,56,28,126,35,52,162,105,186,253,179,76,24,61,10,74,51,156,122,66,7,97,223,61,143,165,106,128,8,4,128,78,7,36,2,122,122,212,240,198,141,157,200,135,175,
+85,7,211,212,123,159,206,128,48,77,203,22,195,221,105,252,18,9,2,65,211,216,5,61,59,103,29,251,228,60,220,198,14,62,215,167,103,183,18,117,24,245,144,125,121,207,161,230,182,124,168,183,191,238,227,224,
+140,124,139,199,211,142,41,74,32,28,34,142,189,20,15,225,111,65,64,24,159,108,25,226,243,75,29,0,30,89,99,250,182,57,245,201,228,243,211,151,125,170,44,224,221,233,163,36,30,35,198,79,215,112,232,71,24,
+238,127,1,166,252,48,3,129,184,240,56,29,71,106,114,147,129,201,232,59,159,79,254,185,160,12,225,52,68,127,199,229,167,29,54,150,92,143,64,119,140,122,113,192,226,152,206,156,143,182,90,16,115,128,101,
+57,199,227,113,131,140,250,116,235,158,113,174,140,219,135,204,123,247,62,245,28,221,254,163,249,80,6,67,4,25,196,150,109,254,241,136,231,215,147,49,43,220,251,123,154,3,199,252,82,89,158,8,206,109,137,
+231,167,38,78,222,249,62,226,174,177,57,60,159,226,238,123,40,199,229,218,163,44,193,73,12,115,243,115,147,158,0,199,229,219,210,128,42,1,16,235,37,185,24,206,63,209,215,29,79,31,189,35,166,7,175,0,30,
+121,169,21,96,108,0,208,130,57,36,136,184,36,251,72,61,185,199,76,250,211,221,223,143,153,186,183,241,31,95,173,52,59,146,1,102,35,61,55,28,115,215,189,0,12,138,8,229,14,6,1,2,51,199,215,39,7,28,28,30,
+158,252,210,237,139,146,192,147,232,17,56,35,28,100,186,175,66,49,142,128,14,148,198,102,218,126,102,254,46,231,176,24,252,178,127,58,98,179,110,97,185,177,207,25,56,235,245,160,4,242,173,243,210,112,
+115,216,175,24,29,254,118,3,119,227,219,29,73,1,72,120,203,79,198,127,229,148,108,62,159,117,137,246,227,4,231,7,156,212,236,238,9,1,155,28,113,184,250,125,106,186,59,150,57,118,56,81,140,177,227,147,
+211,158,40,1,224,219,237,59,164,184,60,127,207,186,156,0,125,225,57,28,116,254,162,148,53,168,63,241,245,58,158,156,65,16,35,191,7,200,207,177,193,7,140,156,242,106,38,146,77,255,0,125,255,0,139,248,155,
+212,15,95,78,62,156,83,90,105,87,238,203,34,240,122,59,14,235,232,104,2,193,22,132,100,94,93,100,1,243,8,84,175,94,228,67,158,78,15,126,188,122,208,30,220,1,254,151,117,140,18,9,137,206,122,100,143,244,
+96,48,63,30,188,245,225,124,233,128,108,75,32,234,56,145,186,109,28,117,168,158,121,192,140,137,165,7,119,81,35,231,175,214,128,6,154,2,78,221,70,224,14,251,163,144,116,235,159,221,129,216,118,233,220,
+228,138,97,184,136,244,212,101,56,254,34,141,159,126,64,30,188,114,120,233,158,105,86,230,227,229,255,0,72,155,163,127,203,89,61,71,251,85,23,218,110,78,115,113,57,231,188,178,122,15,246,168,2,77,241,
+156,127,167,177,36,227,129,40,62,252,110,206,79,161,29,125,198,68,137,183,147,246,189,220,99,230,18,131,219,158,79,110,121,62,190,184,166,249,210,148,92,203,39,44,1,249,219,145,176,240,121,166,52,178,
+229,71,155,38,51,140,111,110,153,28,117,160,9,182,158,210,43,246,39,124,128,12,12,30,0,97,187,215,128,48,122,115,154,104,133,242,78,244,39,177,243,72,60,246,25,135,3,158,192,99,4,250,112,197,154,95,152,
+121,178,99,113,227,123,123,123,209,20,243,19,204,210,158,87,254,90,63,175,215,216,126,84,1,33,138,70,235,179,208,126,250,101,233,198,115,28,35,175,94,64,239,206,49,131,203,113,252,80,129,158,67,92,93,
+227,29,122,121,4,143,174,8,224,103,38,160,107,155,140,145,231,205,140,158,60,215,199,229,186,154,243,77,129,251,217,62,238,127,214,55,94,121,235,215,222,128,45,133,99,128,26,47,79,248,252,153,70,120,232,
+94,0,113,237,131,143,198,164,72,102,60,102,7,28,158,111,88,99,175,92,194,63,80,127,78,40,36,178,224,126,242,78,74,231,231,110,120,62,244,229,146,66,167,46,231,230,31,196,222,163,223,220,254,116,1,162,
+44,219,25,49,196,7,25,197,222,78,123,96,155,114,126,246,126,167,159,170,27,37,235,132,92,30,64,186,92,99,167,32,217,156,145,215,241,250,230,158,230,17,185,12,115,207,57,57,237,222,162,220,217,95,153,185,
+47,158,79,60,154,0,191,246,53,24,62,116,8,115,193,55,41,187,39,219,236,138,15,183,56,198,122,12,210,139,81,198,110,161,61,70,68,160,145,156,14,162,44,103,142,163,3,61,253,114,229,145,193,225,220,96,140,
+97,136,199,29,185,170,102,89,126,111,222,73,247,191,190,223,237,123,208,7,64,45,20,127,203,228,92,117,204,185,36,241,198,74,128,9,200,192,198,121,192,52,207,32,3,255,0,31,118,237,146,62,83,33,31,66,62,
+98,1,3,161,32,115,211,156,227,156,14,228,156,187,31,171,19,252,77,234,125,135,229,82,142,83,39,147,130,114,121,231,158,104,3,123,202,224,143,180,196,64,28,97,227,56,235,142,140,6,73,235,140,116,227,24,
+38,152,208,177,233,112,163,57,200,57,108,140,142,70,46,135,127,110,61,61,57,246,224,224,112,55,17,142,216,1,176,49,79,31,119,61,242,220,247,251,164,255,0,62,126,188,208,6,195,66,20,97,229,87,238,48,167,
+35,29,241,231,182,113,158,48,56,247,200,21,88,149,76,226,69,232,120,96,114,51,201,35,13,237,142,72,250,241,196,10,1,25,32,18,24,96,144,15,113,76,160,9,140,216,60,73,30,49,208,237,97,143,163,75,145,158,
+255,0,94,41,173,60,157,21,33,218,120,200,227,29,113,192,114,73,227,39,146,56,24,25,28,163,112,120,227,147,211,142,203,76,60,245,231,235,205,0,47,157,54,65,8,155,185,201,201,199,83,142,27,183,79,195,131,
+64,185,156,28,148,136,99,208,199,158,160,99,169,56,3,61,179,239,73,128,122,140,212,107,247,191,224,35,249,10,0,156,222,200,127,135,215,186,30,188,147,156,28,231,255,0,175,205,48,222,72,120,249,136,239,
+149,129,128,62,220,144,120,232,125,121,244,21,93,137,193,228,244,61,205,46,230,254,241,252,205,0,75,231,202,113,133,94,189,12,118,254,222,172,120,39,36,240,127,90,11,204,199,229,68,206,123,71,108,78,72,
+192,227,204,25,206,122,1,158,157,133,84,154,71,193,249,223,160,254,35,235,143,95,78,62,149,66,105,36,1,113,35,142,79,71,97,253,104,3,111,23,71,141,202,189,198,32,128,115,232,72,184,29,178,9,253,58,84,
+171,111,114,121,224,131,233,10,123,14,118,220,144,61,240,122,231,145,198,121,232,230,148,237,204,178,30,123,187,122,253,105,194,89,121,253,236,157,63,190,222,163,222,128,58,53,180,185,206,126,100,247,
+17,43,12,117,7,13,54,61,243,200,207,233,40,183,184,251,167,113,29,11,27,104,186,126,18,228,147,128,73,228,130,43,154,89,36,35,151,115,207,118,99,233,234,106,220,108,205,188,51,18,55,99,4,147,199,167,52,
+1,182,44,156,231,35,156,142,62,198,188,122,114,174,71,191,39,168,244,56,10,116,249,8,31,32,56,3,59,96,141,65,25,235,130,217,200,36,240,79,57,206,59,214,106,170,158,74,130,120,228,129,232,15,243,166,48,
+25,35,28,122,126,20,1,170,154,100,143,207,151,237,131,12,121,250,2,172,71,94,163,235,237,86,6,150,112,51,3,17,223,105,132,99,175,80,85,184,207,61,51,249,230,185,253,171,232,63,33,82,69,26,51,28,162,31,
+170,131,216,250,138,0,221,26,116,104,57,134,65,239,152,8,227,169,199,146,221,59,17,131,144,56,239,65,178,135,178,145,234,90,104,144,246,207,203,228,16,73,247,198,62,167,35,10,72,211,112,27,19,25,35,27,
+70,49,145,199,78,158,212,227,12,88,7,202,143,57,60,236,92,246,246,160,13,183,182,85,28,38,56,193,196,208,19,207,161,251,41,207,215,62,135,235,17,183,95,86,4,114,63,127,0,24,207,39,34,216,100,253,127,74,
+197,104,227,0,226,52,31,54,56,69,232,84,100,116,167,36,113,237,31,187,78,255,0,194,190,167,218,128,53,90,209,142,14,246,227,140,253,186,37,56,25,224,17,8,231,61,190,167,154,137,160,108,99,124,132,115,
+255,0,49,72,215,216,159,245,103,131,253,57,246,172,232,131,24,69,29,122,40,30,158,130,145,0,200,24,24,231,140,12,116,244,160,9,154,9,64,251,210,241,206,70,170,135,35,175,85,65,212,119,199,211,56,205,32,
+66,51,251,215,232,6,14,166,160,143,94,4,126,216,61,120,62,134,163,96,50,70,56,244,252,41,180,1,33,112,167,253,116,170,221,120,190,206,62,132,69,77,105,134,56,187,99,207,3,237,211,125,56,11,110,79,255,
+0,175,140,138,149,0,32,100,118,111,234,127,152,7,240,169,97,234,199,184,233,237,242,246,244,160,10,6,64,8,38,226,83,208,113,123,55,39,211,13,110,14,56,247,234,6,73,6,131,50,117,51,204,185,201,230,226,
+228,245,247,22,224,99,158,217,199,76,115,90,50,59,134,32,59,1,207,1,136,29,79,161,168,188,217,55,99,204,124,109,233,189,189,126,180,1,80,92,68,50,124,217,8,29,205,221,193,200,244,3,201,7,39,223,159,97,
+205,32,187,128,96,179,185,110,121,251,69,192,0,99,24,25,137,187,243,207,92,118,193,173,54,145,249,249,223,238,177,251,199,175,28,245,235,85,204,178,111,3,204,124,17,200,222,216,239,219,52,1,8,190,183,
+200,195,144,50,63,229,171,177,224,115,199,145,156,245,193,227,29,177,78,55,214,252,102,114,57,228,126,247,166,0,235,229,12,244,236,15,124,242,106,235,187,142,140,195,142,204,71,240,31,122,129,100,144,
+182,11,185,25,232,89,177,247,219,182,104,2,33,121,104,71,51,161,200,234,5,192,3,57,235,229,194,58,142,15,60,156,147,193,197,33,190,178,94,60,248,241,142,255,0,108,192,252,12,96,30,157,8,199,78,120,173,
+96,204,58,51,15,161,35,250,213,87,150,76,127,172,126,135,248,219,212,123,251,159,204,250,208,5,31,183,216,118,158,22,36,12,143,38,83,248,228,167,56,207,82,113,140,31,164,139,127,100,191,242,245,31,28,
+159,221,47,35,140,127,3,30,126,152,231,235,76,51,206,1,2,105,64,218,199,2,71,3,60,115,141,221,105,209,220,78,118,230,121,143,94,178,57,233,156,117,106,0,83,168,216,19,197,220,45,156,127,203,43,113,142,
+253,90,44,158,78,120,239,200,205,60,95,90,224,149,186,183,82,14,72,104,173,143,78,71,34,31,76,122,122,28,116,160,73,33,28,200,231,167,86,99,252,35,212,208,37,151,143,222,73,247,143,241,183,109,216,239,
+219,181,0,32,190,183,57,205,213,170,227,3,136,45,143,30,227,203,4,19,235,252,197,31,107,181,32,109,187,128,115,200,91,88,1,244,237,31,211,28,243,147,198,115,72,102,155,126,60,217,113,145,199,152,216,237,
+219,53,89,166,155,113,253,236,191,247,241,189,62,180,1,113,110,237,148,255,0,199,234,131,237,109,111,219,235,22,120,28,117,28,123,243,79,55,177,150,27,47,65,235,156,90,90,227,211,31,50,175,174,13,67,28,
+211,17,204,178,30,23,172,140,123,31,122,149,228,147,123,13,239,140,47,27,155,29,251,102,128,20,93,103,35,237,109,200,235,246,59,16,56,231,184,61,71,60,251,0,51,214,101,146,67,199,219,186,244,196,22,106,
+125,121,192,31,207,57,227,167,74,202,238,118,229,155,183,241,31,241,173,24,201,56,201,39,229,29,254,148,1,6,249,185,31,218,15,199,60,193,111,142,189,62,92,15,203,3,158,180,160,92,140,145,118,196,117,207,
+217,163,62,255,0,194,221,113,219,57,57,198,15,38,174,0,50,120,236,199,241,193,230,172,70,6,79,3,248,191,244,42,0,204,6,224,227,253,46,117,0,114,86,203,156,126,50,140,118,227,142,192,28,244,153,99,149,
+134,77,229,217,200,224,11,35,207,78,72,89,88,147,223,142,189,241,91,8,170,81,73,80,78,58,144,9,252,205,74,145,198,114,74,38,120,231,106,251,251,80,6,40,128,131,147,121,124,7,79,248,240,111,229,230,12,
+247,239,198,79,173,75,229,161,4,11,251,209,146,51,186,199,111,174,78,60,197,35,174,65,252,207,53,177,52,81,3,196,113,143,151,178,40,254,33,237,85,217,16,2,66,174,120,231,104,207,81,223,20,1,156,177,40,
+251,218,141,234,129,255,0,78,234,7,191,38,64,125,120,57,29,249,29,23,201,137,185,58,157,214,49,131,242,0,123,100,224,74,51,233,201,231,166,78,5,93,96,6,220,0,62,81,211,143,90,184,170,191,221,29,187,14,
+234,51,249,247,160,12,95,179,91,142,91,81,187,63,246,201,200,36,227,146,60,225,207,176,198,123,210,8,173,249,255,0,76,184,32,31,226,181,153,134,57,29,77,199,57,56,236,1,247,207,27,111,192,227,142,123,
+113,216,212,10,73,47,146,79,61,201,61,205,0,102,109,181,198,5,228,235,144,50,126,197,62,51,158,163,55,3,28,245,63,78,249,167,121,86,252,31,237,9,128,29,65,181,35,118,49,199,55,4,142,253,207,166,114,50,
+117,72,24,7,28,241,207,226,223,224,63,33,81,183,79,207,244,4,143,200,243,245,160,12,183,22,138,72,107,210,122,143,248,245,148,158,61,71,159,223,129,215,29,125,64,166,1,106,71,203,120,167,215,54,179,112,
+65,61,133,206,72,250,227,28,250,85,151,119,218,126,118,237,252,71,233,235,233,199,210,161,86,96,70,24,142,71,115,235,64,16,188,22,236,114,46,115,158,57,181,185,35,61,190,237,193,206,122,227,249,26,103,
+144,163,133,185,192,237,254,129,114,125,7,81,114,1,252,64,57,56,226,180,152,144,153,7,7,105,57,28,115,242,243,245,247,168,25,155,113,228,244,61,207,247,104,2,167,149,206,124,221,195,223,74,156,228,158,
+56,204,221,122,100,242,56,201,193,200,39,150,228,16,25,113,200,231,74,147,191,124,52,132,113,207,98,126,160,212,210,51,2,112,196,117,232,79,247,133,64,73,61,73,63,90,0,79,179,204,114,50,135,161,255,0,
+144,122,46,120,235,243,17,140,99,145,237,201,230,144,218,93,146,49,199,39,143,177,219,14,49,215,230,152,19,249,99,62,184,169,194,33,3,40,167,142,234,15,94,189,69,86,153,16,6,194,168,250,40,31,195,236,
+40,1,94,210,243,24,0,1,159,226,180,179,63,135,19,18,127,47,67,208,84,127,101,188,207,220,28,244,219,103,101,239,211,51,15,175,166,120,237,85,169,195,238,183,182,220,123,114,122,80,4,255,0,102,212,84,100,
+15,148,245,6,219,78,199,126,63,227,227,211,250,103,39,129,27,71,168,46,7,148,132,113,201,131,78,7,29,206,77,200,28,103,145,158,199,154,82,204,3,96,145,130,49,130,70,62,239,165,68,206,248,63,59,116,63,
+196,125,62,180,0,241,29,243,31,154,217,27,182,10,105,128,31,196,93,30,188,113,238,122,245,169,22,9,216,157,214,41,128,125,108,143,62,248,187,95,99,158,121,207,176,12,136,150,127,152,238,224,245,231,183,
+189,52,187,130,112,204,57,61,24,142,249,245,245,160,11,63,103,144,14,109,136,207,181,177,247,232,183,203,130,59,30,220,226,151,105,81,254,170,64,64,233,136,177,245,249,117,60,245,227,145,232,61,204,33,
+155,229,249,143,221,245,63,236,212,82,59,134,24,118,31,50,244,98,59,125,104,2,98,71,32,134,39,166,55,48,35,7,156,98,253,200,63,79,168,35,173,68,100,140,156,24,91,61,200,105,215,56,201,57,34,243,190,73,
+224,18,57,38,163,105,36,193,253,227,245,199,223,110,155,71,29,122,123,84,108,204,85,114,73,206,115,146,78,121,29,125,122,15,202,128,44,135,136,31,245,82,3,216,137,103,192,252,62,211,252,200,61,134,69,
+51,237,3,161,140,228,99,172,151,57,227,166,63,127,140,1,142,14,127,48,77,64,17,14,204,170,156,238,206,84,28,254,98,156,99,143,31,234,211,168,254,5,245,30,212,1,55,218,99,199,59,131,14,128,52,237,211,166,
+79,159,193,254,95,83,195,190,217,24,232,228,115,200,45,62,51,207,172,204,115,244,4,0,115,235,80,136,162,198,124,168,242,51,131,177,125,87,219,220,254,102,161,104,162,221,254,174,63,186,127,129,123,3,142,
+221,176,49,244,160,11,70,253,59,79,2,143,246,227,156,142,189,15,36,117,239,145,248,85,118,191,45,187,109,205,191,114,63,119,47,65,254,246,125,125,129,235,159,88,76,81,30,177,198,126,168,167,250,84,45,
+20,64,144,35,140,15,64,138,59,125,40,2,115,125,33,233,115,22,70,120,17,57,39,159,101,193,231,142,125,41,194,242,83,146,46,99,246,255,0,71,110,58,231,3,29,126,185,60,231,7,53,92,70,159,47,200,157,72,251,
+163,167,203,199,78,158,213,36,145,198,0,194,32,233,209,87,186,243,219,189,0,77,246,169,248,197,202,140,227,63,232,143,237,130,112,220,16,59,247,230,165,23,142,23,63,104,201,236,22,206,102,31,150,241,248,
+231,30,196,30,106,137,68,25,194,40,249,155,162,129,232,125,61,121,160,128,9,192,3,147,208,99,189,0,93,55,110,122,76,65,28,241,101,55,76,245,249,164,28,231,220,227,140,246,166,53,211,117,18,185,97,235,
+100,235,245,249,183,140,12,103,161,57,245,170,189,243,223,215,191,231,81,185,39,169,39,159,95,101,160,11,70,238,224,231,18,18,49,211,236,206,57,61,206,27,28,14,158,185,200,246,97,158,232,158,94,83,236,
+182,210,30,115,143,93,184,246,200,35,167,20,212,3,112,224,126,94,198,155,49,32,224,18,7,160,56,29,7,106,0,26,75,133,29,110,129,61,133,179,115,235,206,210,122,142,205,129,234,122,22,25,164,61,124,227,207,
+59,161,110,64,245,37,91,243,25,233,193,192,38,153,185,191,188,127,51,68,142,248,63,51,116,95,226,62,131,222,128,3,51,14,74,182,61,124,150,200,244,39,133,25,7,29,178,49,218,163,55,9,131,184,201,219,164,
+61,122,127,120,144,57,231,63,211,138,174,238,224,140,59,14,59,49,29,207,189,55,204,147,251,239,255,0,125,55,248,208,4,174,202,217,34,73,49,140,229,173,226,63,151,202,114,49,250,28,231,138,128,168,39,137,
+156,31,104,99,94,157,129,217,239,215,147,233,142,208,111,127,239,55,253,244,127,198,160,119,126,187,219,59,250,238,57,234,190,244,1,123,102,8,30,108,184,246,69,28,254,42,6,79,78,9,227,211,165,30,72,117,
+37,230,184,192,255,0,96,99,183,99,25,60,227,168,3,144,57,205,101,137,101,249,143,153,38,113,215,123,122,129,235,233,197,61,102,155,56,243,100,198,209,199,152,222,131,222,128,47,152,35,224,9,174,48,115,
+203,0,0,224,240,24,39,127,81,215,235,128,25,228,70,14,62,209,54,58,99,205,198,70,58,112,20,142,253,79,31,94,42,138,205,46,225,251,217,63,239,182,247,247,169,210,89,114,71,155,38,48,188,111,108,125,239,
+76,208,5,129,110,132,146,183,51,0,122,1,46,70,15,76,157,217,29,61,125,253,42,38,128,2,63,210,231,24,199,89,121,4,30,185,40,220,123,99,145,248,26,130,105,100,221,254,177,255,0,239,182,244,30,244,197,150,
+76,15,222,63,223,3,239,183,79,78,180,1,100,198,253,22,229,207,97,186,105,15,167,4,11,114,123,158,217,239,142,64,166,109,145,0,38,233,70,9,60,207,50,241,207,24,16,3,211,169,228,103,223,128,248,201,56,36,
+146,119,99,36,147,199,28,84,204,205,146,55,54,62,110,50,127,186,40,2,183,153,34,243,231,158,58,159,181,74,1,3,175,6,33,199,233,158,212,195,114,115,133,153,248,255,0,167,135,63,159,238,142,71,25,206,125,
+123,113,86,76,142,122,187,159,171,31,241,168,149,220,158,89,143,35,171,19,217,189,232,2,17,52,217,36,59,177,235,254,178,102,25,28,241,182,223,60,247,193,7,223,208,251,68,195,25,142,92,99,147,182,102,36,
+158,235,152,199,160,236,120,234,42,203,147,131,207,240,231,241,35,36,254,124,213,117,102,37,1,102,32,129,144,73,35,248,123,126,38,128,24,110,159,60,197,116,216,207,75,118,63,78,150,237,140,253,41,13,212,
+191,243,194,232,115,211,200,218,71,126,190,64,193,245,61,120,228,113,83,133,82,204,8,4,114,112,64,35,57,235,85,88,0,72,0,1,232,0,29,168,0,91,222,112,209,94,19,147,247,99,201,56,7,32,126,235,168,29,51,
+235,130,49,76,105,209,201,13,109,168,18,122,159,41,70,0,207,32,108,37,134,126,157,63,10,145,149,75,114,170,126,101,234,7,161,168,221,84,6,192,3,7,140,0,49,207,181,0,68,76,29,13,190,160,79,7,27,23,142,
+163,60,170,240,122,241,200,3,24,61,226,38,28,241,111,120,58,158,81,61,241,208,96,224,244,207,32,96,227,160,169,88,13,199,129,254,64,167,162,169,28,168,60,227,144,15,28,113,64,21,74,161,193,17,76,51,219,
+102,113,238,64,69,28,122,100,113,144,6,77,48,172,107,156,164,132,176,56,204,100,99,241,221,129,193,237,215,181,92,112,6,48,7,115,208,117,227,154,172,73,201,228,245,61,207,173,0,64,68,25,198,25,125,126,
+83,207,177,249,79,76,118,206,121,227,165,48,71,30,73,221,208,28,100,204,167,243,84,3,129,250,31,106,157,217,176,14,230,206,113,156,156,227,158,58,212,6,71,249,190,119,251,163,248,143,251,94,244,0,132,
+40,255,0,150,136,121,199,222,184,227,35,212,70,222,157,248,61,72,205,51,104,32,97,237,179,208,6,91,188,231,234,33,35,156,243,255,0,234,20,43,185,32,23,98,61,11,19,216,251,210,183,83,254,225,160,4,17,158,
+62,123,16,123,134,91,210,79,94,8,17,224,243,142,227,60,17,70,233,151,1,78,159,238,119,95,174,122,117,196,71,223,160,252,122,83,227,36,224,18,72,220,56,39,233,78,144,14,120,236,127,66,216,160,6,111,159,
+7,38,205,185,0,237,125,69,125,200,31,232,220,142,199,147,207,122,66,211,12,99,236,188,228,241,38,163,140,127,192,236,206,61,58,19,156,246,205,66,73,0,144,112,112,121,31,74,172,236,216,234,122,250,159,
+122,0,188,100,184,39,3,201,238,62,89,111,134,7,24,36,253,128,247,231,143,161,166,153,110,151,128,241,112,50,127,125,121,253,108,84,99,177,206,79,215,24,21,48,61,7,229,85,217,16,177,37,20,144,112,9,80,
+112,1,224,14,59,80,6,151,218,46,215,39,204,143,216,173,212,227,158,127,189,106,7,224,58,113,199,161,84,196,113,225,15,150,153,219,215,98,231,169,61,113,235,207,214,138,0,255,217,0,0};
+
+const char* CompressorAudioProcessorEditor::brushedMetalDark_jpg = (const char*) resource_CompressorAudioProcessorEditor_brushedMetalDark_jpg;
+const int CompressorAudioProcessorEditor::brushedMetalDark_jpgSize = 462527;
+
+// JUCER_RESOURCE: c4dm_png2, 4439, "../../../../../Users/Antoine/Desktop/SAVE window choice and tests/Assets/c4dm.png"
+static const unsigned char resource_CompressorAudioProcessorEditor_c4dm_png2[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,232,0,0,0,43,8,6,0,0,0,114,213,196,98,0,0,0,1,115,82,71,66,0,174,
+206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,196,0,0,14,196,1,149,43,14,27,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127,0,0,0,7,116,73,77,69,7,215,12,11,9,54,
+44,101,11,42,46,0,0,16,199,73,68,65,84,120,94,237,93,9,88,85,213,22,94,128,40,34,206,8,168,32,14,32,206,138,3,138,3,166,224,152,13,250,28,178,50,135,202,207,231,243,89,54,137,169,89,62,123,233,179,52,
+125,166,169,101,78,153,165,105,105,206,56,207,130,243,136,8,40,10,14,56,224,12,226,208,250,55,28,60,28,238,112,238,225,94,186,93,207,250,62,190,175,238,61,123,90,123,175,181,255,245,175,117,174,78,79,
+88,72,23,93,3,186,6,236,82,3,206,118,57,43,125,82,186,6,116,13,8,13,232,6,170,31,4,93,3,118,172,1,221,64,237,120,115,244,169,233,26,208,13,84,63,3,186,6,236,88,3,78,90,73,162,181,187,206,210,136,105,59,
+236,120,105,142,55,181,106,190,165,232,149,246,213,29,111,97,207,240,138,226,47,220,164,225,253,154,24,213,128,102,3,253,96,242,54,218,24,157,244,12,171,182,224,151,62,102,96,40,189,252,92,181,130,31,
+88,31,209,102,26,152,247,199,9,234,219,165,150,209,254,53,65,220,251,25,15,105,199,225,100,155,77,90,239,56,175,6,156,157,157,168,77,99,95,93,53,14,164,129,139,87,239,82,133,114,197,76,174,72,147,129,
+238,56,148,76,25,15,30,57,144,170,236,127,41,33,181,125,168,164,71,17,251,159,168,62,67,213,26,216,126,48,153,90,54,168,104,125,3,221,184,79,135,182,170,119,193,74,15,134,135,84,178,82,79,122,55,246,162,
+1,32,209,162,69,10,89,215,64,31,100,62,34,88,190,46,5,167,1,103,39,39,106,219,196,175,224,6,212,71,178,185,6,46,49,188,245,41,107,26,222,98,18,22,67,220,157,135,83,232,94,250,67,155,47,64,31,224,169,6,
+26,214,244,162,50,37,220,116,149,56,144,6,182,115,152,216,42,216,52,188,213,100,160,81,123,117,120,91,208,231,36,66,135,183,5,173,114,155,143,135,75,206,221,205,52,188,181,216,64,51,31,62,166,109,7,47,
+216,124,242,250,0,79,53,192,232,150,225,173,30,127,58,210,153,184,116,237,30,195,91,119,85,75,178,8,226,238,57,122,145,238,220,203,84,213,177,254,144,117,52,80,63,176,28,149,43,93,212,58,157,233,189,216,
+133,6,118,240,37,215,82,5,188,181,248,6,213,225,109,193,239,111,68,83,255,130,31,84,31,209,166,26,184,115,63,147,138,185,185,170,26,67,245,13,250,232,209,19,218,122,224,188,170,78,245,135,172,167,129,
+112,157,189,181,158,50,237,160,167,203,215,1,111,205,179,183,210,84,85,27,232,190,227,151,232,230,157,7,118,176,196,191,102,10,126,222,197,233,227,1,33,52,61,50,156,190,27,221,142,60,220,213,121,192,252,
+204,182,78,181,178,228,227,169,110,51,155,247,95,76,147,23,29,200,25,110,253,158,115,20,252,234,66,74,76,190,105,241,20,144,74,67,219,31,86,30,207,105,251,248,241,19,194,231,249,145,57,191,31,19,253,130,
+203,248,187,200,124,46,197,195,156,145,179,180,134,108,63,112,65,21,123,107,177,129,70,237,59,103,141,249,89,165,143,183,187,214,165,73,239,181,182,74,95,106,58,41,82,216,133,102,179,81,182,168,95,129,
+226,47,164,81,204,137,203,244,144,17,133,173,37,63,240,182,136,171,11,149,45,233,70,46,46,170,125,112,174,229,160,173,187,44,137,254,235,166,56,106,218,247,39,186,126,43,221,214,203,182,171,254,139,50,
+211,10,93,48,87,103,21,17,240,182,168,122,231,174,106,247,224,61,55,199,216,15,123,235,235,237,65,53,42,151,177,138,194,212,116,130,177,188,203,184,211,148,159,14,210,87,11,247,211,183,191,30,161,116,
+43,121,84,83,227,231,167,122,168,117,35,95,138,154,209,157,42,249,20,87,179,196,92,207,20,102,227,70,219,94,237,131,44,110,235,104,13,122,68,84,23,186,112,51,83,241,163,102,221,87,24,222,122,241,57,178,
+68,92,62,101,49,215,32,230,228,21,90,178,225,180,209,199,0,195,130,131,188,168,46,51,142,197,216,227,164,166,221,39,229,47,29,149,40,86,152,234,5,122,82,131,234,94,228,202,7,224,42,63,35,23,120,149,170,
+21,75,18,60,140,139,179,51,213,175,94,78,60,143,154,223,91,119,159,66,107,95,134,154,109,27,251,9,232,183,239,216,37,242,44,85,84,252,93,187,153,78,40,40,175,94,169,52,61,18,112,236,49,5,240,127,135,214,
+171,64,215,111,222,207,129,40,128,166,117,3,202,81,195,26,94,132,91,230,42,183,51,245,171,76,128,182,77,235,248,136,126,182,176,147,194,24,69,10,23,162,219,247,158,206,169,114,249,18,212,132,107,101,125,
+189,60,232,62,207,247,46,175,65,46,165,185,200,192,159,13,229,198,173,12,206,125,185,82,48,143,93,179,74,25,74,48,1,63,225,20,6,188,88,219,160,206,143,197,95,163,95,120,63,144,242,202,96,216,89,165,66,
+73,250,158,225,99,109,134,196,161,117,203,139,54,73,151,110,211,31,219,19,201,159,231,230,198,8,64,18,80,252,75,162,78,211,42,254,238,202,141,251,84,209,171,56,237,103,68,112,36,46,149,170,251,151,22,
+143,193,33,47,90,27,75,133,92,156,152,65,118,167,131,177,87,104,237,238,179,98,190,30,188,79,167,206,222,160,163,103,174,114,91,15,145,203,187,198,123,185,126,79,18,143,151,64,235,118,159,163,211,231,
+110,80,113,222,111,236,139,92,208,15,66,37,32,32,23,214,163,33,193,185,88,190,57,158,188,152,185,190,200,115,93,190,249,12,161,180,20,233,38,236,5,228,56,175,255,247,173,241,60,102,22,170,195,26,229,178,
+120,93,172,56,3,202,88,111,245,206,68,209,167,252,249,243,151,111,211,207,235,79,211,202,109,9,132,34,156,120,94,35,106,158,177,103,144,147,137,215,197,56,181,170,150,17,123,47,9,224,254,42,238,15,122,
+196,218,129,172,112,198,203,240,109,107,76,214,240,43,154,225,156,50,131,3,84,43,170,12,20,56,252,120,194,181,60,125,162,142,112,120,223,198,244,249,224,150,212,190,153,63,53,174,233,77,175,116,8,162,
+230,245,43,10,197,74,130,207,166,125,212,150,186,182,13,20,48,17,158,25,6,141,162,251,244,236,162,251,230,108,0,223,125,210,158,206,156,79,163,169,31,182,161,158,237,170,115,159,149,169,87,187,32,74,187,
+147,145,51,254,87,195,90,115,255,21,196,65,239,206,222,77,250,155,201,183,90,113,247,194,180,106,74,87,97,32,67,94,9,166,33,61,27,80,24,211,217,56,24,56,176,221,218,6,208,55,28,67,118,15,15,36,140,215,
+147,251,110,82,203,135,118,153,168,142,154,252,254,115,220,46,80,44,5,55,26,198,243,241,116,23,155,134,245,127,58,176,25,141,126,187,25,181,224,162,231,206,45,171,80,159,206,53,9,132,26,198,148,164,71,
+68,32,97,222,208,225,252,255,116,164,46,173,170,242,184,222,52,127,213,73,163,251,4,157,193,137,40,5,122,125,111,210,86,118,58,233,2,42,253,190,37,158,112,200,98,217,104,228,6,186,151,157,215,216,217,
+123,232,197,176,170,57,135,45,150,13,103,192,103,235,233,80,108,170,48,30,204,113,217,166,51,226,112,109,59,144,44,246,14,130,24,17,207,193,25,98,159,112,112,55,71,159,23,28,196,3,254,14,186,60,155,114,
+139,154,213,41,79,165,138,23,161,17,255,223,65,56,252,112,172,216,207,213,124,16,225,64,48,70,173,42,101,115,150,160,198,64,79,39,165,209,240,169,219,201,181,144,139,152,127,218,237,12,58,112,42,107,158,
+48,184,228,43,119,104,240,248,77,92,205,150,73,209,236,88,96,168,94,236,68,224,240,36,25,48,118,61,207,203,77,56,86,185,140,156,190,139,46,94,189,67,29,66,43,139,143,209,239,235,163,215,208,217,139,183,
+196,58,224,236,118,30,74,17,142,8,231,25,178,134,215,53,233,199,253,212,159,157,165,107,161,44,192,121,142,159,31,56,46,138,86,237,72,20,78,204,137,189,199,222,99,23,105,215,145,148,156,179,98,104,99,
+225,156,66,20,115,50,103,168,102,75,25,30,243,245,178,145,55,199,144,12,123,173,33,189,220,38,128,38,204,139,166,95,55,198,113,92,246,88,28,134,70,92,154,38,73,135,80,127,54,226,38,98,195,22,175,143,21,
+10,14,15,241,163,200,126,33,244,65,159,198,52,106,250,206,92,93,143,232,31,66,223,255,118,140,86,108,139,231,87,113,60,104,212,155,77,233,221,87,27,18,94,16,199,77,250,246,184,13,244,217,160,80,97,88,
+157,135,46,55,56,47,120,104,188,103,55,100,194,38,113,115,226,6,65,89,213,232,183,154,209,111,91,206,208,162,53,167,40,145,15,88,27,190,137,35,251,55,33,140,249,254,228,173,6,251,122,147,55,27,94,239,
+203,97,97,98,51,225,189,37,25,216,173,46,117,106,81,133,62,157,185,91,120,96,87,87,103,250,224,245,70,52,164,87,3,177,233,202,151,10,34,249,197,220,119,191,218,34,98,88,115,85,36,134,170,135,112,88,191,
+92,16,35,214,242,229,187,97,124,56,156,5,113,35,173,211,220,102,79,152,27,45,116,49,127,108,199,156,219,237,71,214,5,250,4,10,48,38,112,104,248,241,199,255,206,217,39,98,127,101,217,225,59,188,63,104,
+47,221,48,152,211,48,118,34,83,22,29,164,142,205,43,171,78,41,200,199,135,35,154,195,14,187,86,213,178,2,69,13,30,191,145,38,206,143,22,243,94,252,69,103,10,100,116,132,106,28,236,207,172,101,71,132,243,
+181,84,22,173,61,197,241,101,81,90,49,233,37,70,69,79,111,53,83,113,54,208,214,24,222,239,155,124,105,44,28,215,137,2,253,74,229,12,155,146,122,199,232,20,82,25,173,0,141,88,42,102,99,80,120,91,64,24,
+165,192,120,254,193,27,7,195,252,153,13,15,198,9,185,193,36,130,60,95,250,47,190,197,64,45,195,136,193,40,98,243,214,236,60,75,235,25,50,117,230,195,13,207,37,23,120,235,5,171,79,10,111,13,120,129,141,
+194,77,101,73,204,137,118,211,151,28,22,55,41,224,26,54,18,183,41,230,246,197,15,209,20,199,183,52,230,187,97,239,57,1,81,80,136,174,150,45,149,230,138,13,237,221,161,6,247,145,36,188,56,28,25,14,210,
+120,94,39,54,234,205,151,234,228,209,217,236,229,71,5,44,199,156,76,21,124,96,211,149,176,13,157,173,99,157,73,107,129,113,66,0,151,6,117,175,111,118,223,47,176,99,196,13,214,187,99,141,92,208,179,55,
+223,154,249,45,132,64,104,34,55,78,220,68,120,177,28,97,64,2,255,98,128,22,129,243,132,113,66,160,107,32,47,172,29,177,53,140,19,2,39,215,140,33,61,206,151,150,2,26,156,43,236,133,132,226,164,121,154,
+170,123,62,22,127,149,14,159,78,21,251,43,55,78,180,133,77,24,19,132,35,97,13,205,215,222,42,219,155,53,80,99,175,150,85,243,229,77,225,171,125,203,126,227,228,17,20,136,184,33,11,94,6,230,130,164,8,42,
+16,87,32,126,146,203,6,198,243,114,129,50,32,222,42,75,163,240,108,204,201,203,185,250,112,97,24,130,159,11,57,199,243,120,177,117,181,92,243,0,68,129,84,85,204,195,220,161,194,186,112,112,0,143,229,2,
+120,187,231,232,37,30,47,75,63,114,65,44,175,70,140,145,67,48,50,24,36,214,34,151,90,50,120,103,172,255,228,43,183,197,87,65,217,135,91,122,14,134,21,32,187,5,212,204,79,249,12,32,54,144,80,248,160,165,
+130,233,13,123,235,23,250,104,202,118,241,88,74,234,93,45,93,230,73,69,84,203,158,99,171,224,220,47,173,7,176,158,33,105,183,45,103,151,17,122,0,42,183,27,188,84,32,27,196,208,230,82,73,73,140,140,32,
+13,24,250,91,34,64,127,8,193,44,21,147,6,138,235,220,152,129,2,26,64,12,221,174,210,36,36,146,0,111,141,35,22,146,255,5,49,33,1,162,65,30,120,163,221,229,235,185,55,20,222,24,98,140,84,48,180,96,196,103,
+114,129,71,132,145,130,137,85,206,163,78,128,167,152,135,165,34,145,1,55,12,28,12,124,6,67,82,230,74,65,86,169,145,136,166,134,107,111,193,28,131,216,82,216,189,24,75,169,71,229,56,112,28,66,143,217,14,
+73,254,61,98,71,173,130,155,107,224,231,81,124,59,167,82,63,142,211,144,39,94,249,245,203,244,237,199,225,162,75,9,89,89,218,127,177,162,185,163,47,201,217,129,132,148,139,83,54,113,163,38,233,165,252,
+141,246,122,76,106,174,157,214,141,6,247,168,79,128,160,163,103,236,162,14,67,150,137,216,210,152,72,249,80,115,239,113,202,219,131,248,42,167,32,204,212,234,195,228,206,224,58,7,124,48,36,151,174,101,
+25,82,121,19,137,116,48,134,128,126,235,56,126,124,227,147,181,6,255,246,43,110,59,181,19,55,245,156,114,179,174,165,165,11,207,184,37,230,188,209,121,32,192,183,68,46,243,218,32,48,122,165,224,51,192,
+49,57,251,172,182,239,202,21,74,228,185,33,165,182,128,80,128,141,136,127,228,146,204,144,26,80,205,148,128,113,133,128,132,147,11,156,48,72,34,115,34,97,129,39,138,113,128,112,240,110,227,191,57,238,
+6,65,22,90,175,188,96,179,255,202,98,4,24,143,242,220,34,126,79,76,201,11,183,113,171,245,123,161,54,253,200,241,36,28,11,144,209,12,14,143,140,49,251,126,217,105,171,248,100,243,58,147,116,186,149,139,
+19,194,26,106,251,185,26,147,6,26,101,226,151,19,64,165,195,163,191,16,102,252,71,172,96,20,39,18,174,83,59,102,196,44,161,150,205,29,22,120,109,36,143,37,86,205,220,243,112,18,135,227,174,82,27,38,123,
+204,145,51,230,250,146,190,7,217,133,56,185,125,54,35,40,125,142,195,1,18,231,100,98,94,214,91,77,223,237,76,212,222,34,222,130,44,147,49,228,248,255,229,204,112,154,147,74,62,37,68,28,15,162,78,30,175,
+137,212,3,27,152,57,1,43,10,73,96,114,77,46,153,143,178,16,142,20,19,227,191,113,184,145,186,248,171,4,151,70,12,51,166,114,137,98,190,65,66,17,210,231,74,56,11,199,130,76,4,28,158,60,141,38,239,167,78,
+53,79,42,203,183,225,2,102,224,149,253,25,91,47,28,53,82,48,90,196,180,129,154,120,247,19,76,215,44,38,61,0,199,70,114,9,28,226,24,16,62,72,13,200,9,146,241,115,247,137,124,217,55,195,219,138,239,74,122,
+20,22,244,61,218,77,124,39,76,203,156,41,142,169,120,24,60,216,93,120,236,70,172,84,115,50,145,201,27,207,82,110,2,130,33,197,129,92,23,54,4,100,196,215,156,74,177,84,0,221,230,172,56,38,250,122,143,153,
+91,28,10,196,134,96,123,209,55,72,42,45,98,170,56,1,169,4,176,162,211,126,62,68,83,23,31,20,36,23,24,88,188,252,107,206,1,2,22,127,248,70,99,66,178,188,215,136,85,130,180,195,47,51,34,61,133,125,145,160,
+162,177,57,215,229,156,52,198,24,247,221,30,81,172,129,118,232,11,105,24,172,23,169,136,31,86,28,103,210,45,65,176,202,202,91,94,139,46,180,182,233,202,153,5,220,160,72,21,129,192,124,103,226,102,154,
+187,242,68,30,50,172,15,163,186,49,223,238,166,165,76,116,130,216,196,158,253,194,57,98,252,254,147,49,131,66,106,43,146,179,18,64,151,125,62,89,35,178,19,104,11,125,32,61,164,20,228,231,61,179,195,65,
+45,235,49,106,160,96,66,77,209,198,24,108,46,215,106,130,122,239,192,135,102,201,132,46,180,121,102,15,174,83,109,207,44,91,169,156,185,32,45,1,69,33,113,253,61,211,230,91,102,245,164,149,147,95,162,177,
+131,154,115,78,77,91,109,39,130,249,165,172,72,228,170,166,177,225,163,54,214,156,128,185,237,59,102,157,40,125,155,53,170,29,207,163,135,128,52,95,12,105,73,15,31,107,171,13,93,200,94,20,213,69,61,152,
+205,94,61,181,43,45,253,95,23,10,242,47,35,242,148,200,177,89,42,112,92,136,205,77,201,184,127,182,160,55,158,175,69,27,56,15,59,97,94,140,40,248,152,57,50,130,26,179,163,240,203,134,177,104,143,184,27,
+142,75,94,1,3,67,156,247,89,71,122,142,153,80,220,154,216,39,232,162,16,231,247,228,49,18,242,122,104,91,94,86,212,13,216,62,123,84,132,48,72,192,100,228,32,1,227,133,51,138,108,43,28,20,210,99,115,57,
+189,21,192,253,78,24,218,74,244,1,164,35,9,152,114,124,166,36,207,228,235,69,33,4,158,41,81,44,55,187,15,231,143,207,221,21,101,114,232,31,159,35,54,151,164,7,231,208,17,87,194,129,204,88,122,132,227,
+115,236,121,132,96,130,229,4,219,11,156,143,190,192,228,25,32,237,72,38,185,144,243,236,198,198,61,145,83,88,146,120,179,14,208,191,156,3,193,229,178,96,108,39,161,51,48,243,99,102,238,226,74,187,243,
+66,55,74,217,202,36,170,86,120,139,190,140,254,46,46,60,52,60,162,26,129,119,246,229,138,20,144,34,96,237,140,121,79,224,125,255,242,197,69,108,134,248,212,28,99,166,102,108,45,207,96,158,72,99,220,101,
+168,156,194,7,53,191,243,0,65,3,54,26,144,31,240,72,171,244,231,88,104,104,239,96,173,205,53,181,3,148,123,126,232,111,194,201,2,9,233,98,93,13,224,133,3,236,171,86,49,122,131,90,242,203,125,136,57,64,
+181,227,214,53,5,109,112,24,80,166,134,180,75,126,141,66,235,130,209,14,49,24,110,118,20,19,88,99,30,32,104,64,180,228,199,56,49,175,252,212,222,170,209,7,42,100,0,201,128,140,144,179,5,143,0,152,123,
+47,35,147,94,235,84,67,77,23,250,51,22,104,0,97,160,28,65,88,208,52,231,81,131,55,104,92,210,13,234,25,185,74,75,127,122,27,141,26,0,68,4,76,182,165,156,58,123,93,84,98,201,73,34,164,194,70,189,213,148,
+90,107,100,25,109,57,223,191,123,223,40,178,65,17,76,126,126,207,216,160,129,34,88,6,182,214,165,224,52,128,20,5,200,38,91,11,110,251,36,70,59,183,56,85,131,26,86,196,88,202,188,170,173,231,240,172,244,
+159,95,120,11,61,25,52,208,110,31,174,212,244,162,239,179,162,120,91,172,19,255,62,7,88,101,93,28,71,3,168,75,207,111,216,162,249,31,79,114,28,53,234,43,209,53,96,191,26,208,94,227,101,191,107,210,103,
+166,107,192,97,52,160,27,168,195,108,165,190,16,71,212,128,110,160,142,184,171,250,154,28,70,3,186,129,58,204,86,234,11,113,68,13,232,6,234,136,187,170,175,201,97,52,160,27,168,195,108,165,190,16,71,212,
+128,110,160,142,184,171,250,154,28,70,3,127,2,16,73,2,138,24,57,209,70,0,0,0,0,73,69,78,68,174,66,96,130,0,0};
+
+const char* CompressorAudioProcessorEditor::c4dm_png2 = (const char*) resource_CompressorAudioProcessorEditor_c4dm_png2;
+const int CompressorAudioProcessorEditor::c4dm_png2Size = 4439;
+
+// JUCER_RESOURCE: qmul_png2, 23512, "../../../../../Users/Antoine/Desktop/SAVE window choice and tests/Assets/QMUL.png"
+static const unsigned char resource_CompressorAudioProcessorEditor_qmul_png2[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,123,0,0,0,112,8,6,0,0,0,255,142,208,124,0,0,0,1,115,82,71,66,0,174,
+206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,196,0,0,14,196,1,149,43,14,27,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,65,100,111,98,101,32,73,109,97,
+103,101,82,101,97,100,121,113,201,101,60,0,0,3,102,105,84,88,116,88,77,76,58,99,111,109,46,97,100,111,98,101,46,120,109,112,0,0,0,0,0,60,63,120,112,97,99,107,101,116,32,98,101,103,105,110,61,34,239,187,
+191,34,32,105,100,61,34,87,53,77,48,77,112,67,101,104,105,72,122,114,101,83,122,78,84,99,122,107,99,57,100,34,63,62,32,60,120,58,120,109,112,109,101,116,97,32,120,109,108,110,115,58,120,61,34,97,100,111,
+98,101,58,110,115,58,109,101,116,97,47,34,32,120,58,120,109,112,116,107,61,34,65,100,111,98,101,32,88,77,80,32,67,111,114,101,32,53,46,48,45,99,48,54,48,32,54,49,46,49,51,52,55,55,55,44,32,50,48,49,48,
+47,48,50,47,49,50,45,49,55,58,51,50,58,48,48,32,32,32,32,32,32,32,32,34,62,32,60,114,100,102,58,82,68,70,32,120,109,108,110,115,58,114,100,102,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,
+114,103,47,49,57,57,57,47,48,50,47,50,50,45,114,100,102,45,115,121,110,116,97,120,45,110,115,35,34,62,32,60,114,100,102,58,68,101,115,99,114,105,112,116,105,111,110,32,114,100,102,58,97,98,111,117,116,
+61,34,34,32,120,109,108,110,115,58,120,109,112,77,77,61,34,104,116,116,112,58,47,47,110,115,46,97,100,111,98,101,46,99,111,109,47,120,97,112,47,49,46,48,47,109,109,47,34,32,120,109,108,110,115,58,115,
+116,82,101,102,61,34,104,116,116,112,58,47,47,110,115,46,97,100,111,98,101,46,99,111,109,47,120,97,112,47,49,46,48,47,115,84,121,112,101,47,82,101,115,111,117,114,99,101,82,101,102,35,34,32,120,109,108,
+110,115,58,120,109,112,61,34,104,116,116,112,58,47,47,110,115,46,97,100,111,98,101,46,99,111,109,47,120,97,112,47,49,46,48,47,34,32,120,109,112,77,77,58,79,114,105,103,105,110,97,108,68,111,99,117,109,
+101,110,116,73,68,61,34,120,109,112,46,100,105,100,58,70,55,55,70,49,49,55,52,48,55,50,48,54,56,49,49,66,49,50,51,66,48,67,48,66,70,67,68,65,53,69,67,34,32,120,109,112,77,77,58,68,111,99,117,109,101,110,
+116,73,68,61,34,120,109,112,46,100,105,100,58,67,53,69,66,52,65,68,52,70,68,57,55,49,49,69,48,57,57,50,48,57,48,49,67,49,52,70,51,54,55,56,55,34,32,120,109,112,77,77,58,73,110,115,116,97,110,99,101,73,
+68,61,34,120,109,112,46,105,105,100,58,67,53,69,66,52,65,68,51,70,68,57,55,49,49,69,48,57,57,50,48,57,48,49,67,49,52,70,51,54,55,56,55,34,32,120,109,112,58,67,114,101,97,116,111,114,84,111,111,108,61,
+34,65,100,111,98,101,32,80,104,111,116,111,115,104,111,112,32,67,83,53,32,77,97,99,105,110,116,111,115,104,34,62,32,60,120,109,112,77,77,58,68,101,114,105,118,101,100,70,114,111,109,32,115,116,82,101,
+102,58,105,110,115,116,97,110,99,101,73,68,61,34,120,109,112,46,105,105,100,58,70,55,55,70,49,49,55,52,48,55,50,48,54,56,49,49,56,69,69,48,67,52,55,54,67,69,69,57,65,57,56,51,34,32,115,116,82,101,102,
+58,100,111,99,117,109,101,110,116,73,68,61,34,120,109,112,46,100,105,100,58,70,55,55,70,49,49,55,52,48,55,50,48,54,56,49,49,66,49,50,51,66,48,67,48,66,70,67,68,65,53,69,67,34,47,62,32,60,47,114,100,102,
+58,68,101,115,99,114,105,112,116,105,111,110,62,32,60,47,114,100,102,58,82,68,70,62,32,60,47,120,58,120,109,112,109,101,116,97,62,32,60,63,120,112,97,99,107,101,116,32,101,110,100,61,34,114,34,63,62,181,
+3,247,42,0,0,87,214,73,68,65,84,120,94,237,157,5,156,85,213,22,198,247,208,221,136,18,210,45,13,210,221,40,165,34,130,232,179,27,44,12,84,76,236,14,196,68,20,155,16,16,4,21,36,165,187,27,21,233,238,30,
+222,255,219,247,158,203,157,97,226,230,56,192,89,191,119,31,227,204,185,39,214,222,103,237,181,215,250,214,183,98,78,35,198,21,87,3,174,6,92,13,184,26,56,175,53,144,230,188,126,58,247,225,92,13,184,26,
+112,53,224,106,192,106,192,53,246,238,68,112,53,224,106,192,213,192,5,160,1,215,216,95,0,131,236,62,162,171,1,87,3,174,6,92,99,239,206,1,87,3,174,6,92,13,92,0,26,112,141,253,5,48,200,238,35,186,26,112,
+53,224,106,192,53,246,238,28,112,53,224,106,192,213,192,5,160,129,243,202,216,255,56,125,189,25,57,251,239,11,96,216,220,71,116,53,224,106,192,213,64,112,26,56,111,140,253,201,83,167,205,171,35,22,155,
+103,127,156,111,142,159,140,13,78,11,238,209,174,6,92,13,184,26,56,207,53,112,222,24,251,121,235,119,154,249,43,182,154,133,171,183,155,89,124,92,113,53,224,106,192,213,128,171,129,51,26,56,47,140,253,
+137,83,177,230,145,175,102,25,163,90,96,62,125,190,153,99,142,158,56,229,142,179,171,1,87,3,174,6,92,13,120,53,112,94,24,251,137,75,183,152,169,139,54,25,147,49,157,49,25,210,154,63,151,108,54,191,47,
+250,215,29,100,87,3,174,6,92,13,184,26,56,95,140,189,188,250,151,134,46,52,38,54,46,197,207,179,63,44,48,71,143,187,222,189,59,211,93,13,184,26,112,53,32,13,156,243,158,253,194,13,187,204,236,181,196,
+232,241,232,125,146,46,141,89,252,215,46,179,136,143,43,174,6,92,13,184,26,112,53,112,30,24,251,125,7,142,154,35,199,78,26,19,19,227,55,158,49,214,209,95,191,237,128,59,198,174,6,92,13,184,26,112,53,112,
+46,122,246,177,48,50,111,221,115,196,236,57,116,204,28,198,200,23,191,36,167,201,155,51,83,220,48,14,199,100,33,126,95,169,104,30,115,18,171,191,109,223,17,179,139,69,225,84,188,80,143,59,3,92,13,184,
+26,112,53,112,161,104,32,230,92,226,179,223,125,240,152,121,98,240,28,51,108,230,6,147,62,109,26,83,32,87,38,211,163,73,25,243,243,220,127,204,100,37,100,211,121,67,57,224,236,107,148,189,200,116,173,
+87,194,12,231,216,245,91,15,152,52,105,98,76,195,242,23,155,183,110,169,99,10,231,205,122,161,140,175,251,156,174,6,92,13,184,26,176,26,56,103,140,253,73,18,177,173,159,31,107,254,152,249,151,49,153,211,
+123,96,150,138,220,80,76,149,49,75,6,115,236,100,220,100,108,166,244,105,205,209,195,199,9,84,121,195,59,58,158,69,160,90,133,2,102,202,11,87,154,108,153,56,135,43,174,6,92,13,184,26,184,64,52,112,206,
+36,104,167,82,48,245,199,66,188,247,172,25,141,193,171,55,36,97,237,191,36,102,143,37,128,169,63,122,156,56,62,6,223,30,227,28,159,41,157,89,176,124,155,25,191,120,243,5,50,188,238,99,186,26,112,53,224,
+106,192,163,129,115,198,216,79,91,177,205,99,180,157,60,172,186,41,42,6,111,187,42,38,210,89,81,127,23,117,130,127,231,197,180,49,110,133,173,59,251,93,13,184,26,184,224,52,112,206,24,251,75,114,103,57,
+147,132,37,164,147,22,195,95,170,96,78,83,190,72,110,226,241,60,134,191,65,199,198,199,128,206,209,223,75,241,119,29,107,141,190,13,251,196,186,49,251,11,110,154,187,15,236,106,192,213,192,57,19,179,23,
+140,178,66,175,33,230,216,209,147,38,87,142,76,102,84,159,86,166,2,134,60,27,161,153,33,51,54,152,27,222,252,195,19,218,145,128,210,121,255,190,70,166,91,253,146,214,190,175,218,188,207,244,120,251,15,
+179,158,127,99,48,252,171,62,188,214,148,6,197,227,138,171,1,87,3,174,6,46,20,13,156,51,158,125,177,252,217,204,93,173,203,27,179,255,168,233,215,189,166,105,88,225,98,147,55,123,70,147,145,184,124,135,
+154,151,154,12,74,218,122,195,58,74,216,94,81,189,136,253,123,30,62,117,65,230,188,216,227,114,99,14,29,55,87,55,40,97,74,20,200,113,161,140,175,251,156,174,6,92,13,184,26,56,183,98,246,130,78,202,200,
+87,173,86,216,148,38,60,227,47,27,119,29,50,39,149,144,149,27,79,248,230,36,9,219,253,135,79,196,57,70,48,205,74,149,11,154,143,238,104,64,232,223,191,0,203,157,9,174,6,92,13,184,26,56,255,53,112,206,
+120,246,26,10,193,37,199,63,215,206,84,45,150,39,206,200,12,248,117,133,137,221,123,196,247,187,83,120,255,95,79,89,27,231,152,114,133,114,153,177,79,181,177,222,190,43,174,6,92,13,184,26,184,208,52,112,
+206,196,236,19,27,24,27,143,127,103,162,169,81,60,175,73,147,54,173,1,108,99,246,28,60,106,214,16,227,255,230,254,166,166,212,37,110,200,230,66,155,212,238,243,186,26,112,53,112,182,6,206,121,99,191,143,
+194,169,156,196,232,227,139,168,17,132,191,23,109,130,43,174,6,92,13,184,26,184,208,53,112,78,27,123,25,250,189,36,93,15,30,61,97,54,237,62,108,249,111,50,224,221,95,4,87,78,129,92,153,77,158,108,25,77,
+102,140,125,86,215,224,219,121,174,118,141,107,216,9,205,223,176,211,44,253,123,183,89,244,247,30,179,121,207,97,115,26,56,106,134,12,233,76,137,139,178,155,10,133,115,154,154,165,242,155,106,37,242,153,
+130,121,178,80,128,236,230,55,46,100,35,161,119,108,193,122,216,99,227,77,3,253,103,85,118,211,9,57,90,225,234,235,95,114,112,171,153,167,202,211,249,4,56,117,122,208,118,213,184,166,235,192,133,166,225,
+128,140,189,140,68,6,7,214,24,218,117,34,246,173,45,24,167,169,203,183,154,95,225,194,153,179,122,135,89,242,207,30,139,157,87,193,85,90,197,112,16,91,111,117,226,164,201,76,181,109,213,75,243,152,86,
+85,11,155,150,85,11,1,213,204,101,114,171,2,247,63,22,113,240,167,99,34,171,22,32,37,68,93,187,68,247,252,246,200,37,102,204,252,141,230,32,11,164,173,59,72,239,173,46,182,74,227,35,61,66,59,17,195,226,
+120,113,206,204,230,134,38,165,205,237,173,202,187,161,176,148,24,164,84,122,141,73,52,6,106,245,204,24,79,65,163,191,224,96,9,222,124,39,243,35,146,18,203,142,188,199,123,147,204,144,73,107,76,12,14,
+136,79,160,69,201,133,19,55,229,133,43,140,242,111,174,4,175,129,128,140,125,159,175,231,152,71,59,85,54,185,241,148,255,11,145,29,90,250,207,110,51,120,226,90,243,205,212,181,102,243,118,168,139,213,
+152,4,170,132,66,192,40,91,99,200,69,110,150,159,201,128,9,53,187,136,217,139,252,236,183,133,155,204,150,157,28,123,140,99,129,102,86,33,177,123,79,219,138,166,227,229,69,173,231,255,95,200,1,94,146,
+215,104,140,126,55,48,210,130,42,20,139,178,108,218,125,200,244,253,102,174,213,219,113,33,148,68,22,167,213,208,91,96,134,187,228,249,217,169,54,214,75,237,252,157,69,34,111,158,172,230,185,235,107,154,
+155,48,252,89,93,62,161,40,143,86,234,59,253,20,104,74,26,63,62,242,140,177,119,56,169,120,255,234,86,42,104,38,195,51,37,143,59,82,178,235,192,49,83,234,222,31,204,222,125,71,185,38,19,211,143,3,43,39,
+239,247,172,87,58,154,178,241,208,120,145,186,246,249,126,158,128,140,253,181,111,76,48,235,182,236,55,35,40,100,42,146,47,101,25,35,55,19,158,25,240,219,10,243,30,94,233,126,194,52,50,74,105,48,58,157,
+106,23,51,61,175,168,104,202,23,206,101,242,83,100,21,103,203,103,157,212,211,102,7,168,28,45,18,131,38,172,54,63,254,185,222,156,56,130,71,27,147,198,20,43,152,195,188,250,191,58,166,125,173,34,38,179,
+191,247,16,229,209,86,184,169,199,91,19,205,202,173,251,204,162,55,175,178,53,2,209,148,121,235,118,154,238,20,147,173,38,92,99,11,206,188,20,207,133,169,89,104,83,163,136,173,85,80,136,43,13,47,212,97,
+12,251,1,10,214,198,204,251,199,204,92,185,205,236,100,43,109,185,133,100,248,249,223,117,141,75,153,119,111,173,75,136,236,191,89,36,163,169,39,247,220,137,107,192,26,251,62,163,124,198,94,155,209,211,
+108,0,53,47,244,238,204,123,179,179,125,7,35,37,226,173,106,249,36,215,243,190,151,246,122,118,215,121,218,228,198,216,207,124,185,131,41,227,26,251,144,212,29,144,177,255,126,218,58,211,237,217,95,76,
+89,40,130,199,61,221,198,20,203,159,61,164,139,5,251,37,81,23,63,250,229,44,179,146,110,84,214,88,17,122,40,135,119,254,209,221,13,41,148,42,16,112,104,233,4,223,155,177,122,187,185,231,227,105,102,153,
+206,37,97,6,93,213,176,164,121,249,134,203,77,153,20,168,166,21,61,115,251,23,127,53,211,121,166,190,24,205,231,186,214,136,219,111,37,88,229,36,115,188,194,54,45,24,179,157,187,14,123,140,54,198,188,
+20,241,248,215,111,170,99,234,148,41,96,46,206,157,176,209,214,123,245,55,59,167,97,211,55,152,167,191,159,103,14,31,97,55,32,15,11,79,174,9,133,106,35,89,240,115,168,128,205,149,11,66,3,113,140,61,206,
+66,131,138,23,195,45,181,131,233,132,197,167,182,229,179,7,154,154,91,155,151,141,136,46,100,212,239,228,29,253,116,212,18,219,79,186,16,142,101,145,124,217,204,204,229,91,172,147,230,26,251,240,212,28,
+208,254,171,114,209,188,38,51,74,95,181,126,167,105,247,252,56,163,4,74,52,69,94,249,128,113,43,76,199,23,198,153,149,120,230,118,149,103,114,117,99,82,77,125,169,131,105,92,241,146,128,13,189,238,83,
+219,204,70,120,177,19,158,191,194,220,217,174,162,103,107,72,56,99,248,148,117,166,33,91,212,121,60,87,52,69,189,112,219,66,207,60,93,172,157,24,202,230,108,127,163,25,174,215,142,166,211,43,191,155,157,
+236,138,28,67,127,59,207,61,245,229,142,118,71,148,152,161,151,14,20,209,41,70,162,246,97,194,118,127,190,210,193,84,41,145,215,19,203,231,229,155,132,215,255,224,192,153,182,33,140,43,23,160,6,152,7,
+205,42,21,50,101,229,201,107,78,48,91,190,157,186,206,38,254,35,33,7,216,121,143,154,243,183,167,197,104,44,116,228,128,4,46,187,52,119,188,46,116,145,184,210,133,121,142,128,140,189,66,55,69,11,100,179,
+6,114,5,134,177,253,139,227,204,33,181,2,140,130,200,208,191,52,108,161,185,167,255,20,115,90,217,120,197,152,241,32,30,189,182,186,249,236,158,134,38,31,33,155,80,165,0,33,8,133,34,158,184,174,134,221,
+22,106,17,217,78,215,171,166,79,140,50,115,214,238,8,245,180,73,126,79,47,66,231,215,126,55,179,73,116,25,120,124,114,145,43,40,121,113,244,176,255,39,121,174,123,63,157,110,254,218,184,215,99,232,209,
+221,253,87,85,49,239,223,86,215,92,28,100,158,162,106,177,188,132,238,90,155,106,165,47,178,59,3,67,248,108,224,47,75,121,193,227,22,172,69,69,113,238,73,83,159,6,112,189,139,95,148,205,180,164,18,221,
+38,248,113,162,254,36,228,247,207,206,131,17,185,215,5,236,186,183,41,31,103,217,109,99,76,103,28,19,139,188,137,166,103,20,145,59,63,55,78,18,144,177,207,142,55,90,159,176,137,93,205,121,225,23,174,218,
+110,99,193,145,110,243,167,109,220,155,108,225,158,254,98,166,7,41,34,99,79,24,225,134,86,229,44,85,66,36,32,87,138,147,63,123,93,117,115,71,187,10,24,48,15,231,253,1,18,151,141,159,26,77,227,242,200,
+26,124,61,79,223,239,231,154,113,228,11,108,195,21,22,178,138,120,42,209,140,123,143,91,176,209,12,153,188,198,122,226,50,244,109,235,22,51,175,19,170,10,53,63,80,140,151,251,231,39,90,155,252,234,238,
+101,17,60,105,77,207,79,166,27,229,82,92,185,192,52,192,252,205,5,154,173,123,131,82,30,3,204,231,24,237,65,103,172,130,126,60,76,81,187,209,111,84,245,174,93,35,159,236,217,50,153,166,151,93,98,78,58,
+108,181,97,158,223,253,122,16,124,246,77,47,99,53,119,112,175,24,252,81,147,215,154,79,126,95,25,81,29,14,159,181,193,60,246,249,116,143,161,210,100,194,88,149,7,243,61,0,62,27,181,33,140,148,232,92,239,
+225,225,215,44,127,137,101,200,212,182,241,8,120,226,102,125,199,68,52,68,245,27,240,208,215,134,44,244,24,122,9,19,183,69,229,66,65,133,160,130,121,230,253,44,140,15,145,227,240,160,107,98,77,86,94,204,
+207,239,105,20,54,90,162,16,120,251,79,217,85,233,156,242,186,246,67,77,241,218,200,197,137,117,17,8,230,150,221,99,207,49,13,168,41,144,32,204,23,145,228,183,243,1,249,145,252,78,184,142,223,158,131,
+199,205,207,132,9,237,78,30,167,178,17,29,229,10,129,4,219,15,58,199,245,236,35,51,73,2,182,160,42,180,17,254,218,199,27,143,193,191,239,163,105,70,212,195,145,16,109,5,111,126,111,50,11,138,215,163,103,
+117,79,79,152,101,216,163,45,128,252,69,190,10,86,158,238,87,247,55,54,25,4,39,84,72,135,255,62,180,255,136,233,246,246,68,28,254,240,99,144,123,72,200,118,123,11,218,101,11,99,244,66,200,88,84,236,14,
+41,74,50,126,209,38,179,230,47,114,28,122,97,8,187,188,120,67,45,99,251,0,68,64,196,34,218,162,102,81,223,226,248,201,184,229,102,227,142,200,108,223,35,112,123,238,41,82,72,3,170,217,80,161,98,135,90,
+204,5,133,246,152,107,147,150,110,54,91,169,127,9,71,150,82,47,179,85,185,64,1,49,48,246,157,46,47,102,157,162,19,241,218,141,134,115,141,11,253,187,1,27,123,25,13,209,12,219,173,188,4,47,63,150,193,190,
+125,192,84,79,102,62,12,81,127,217,219,7,76,51,7,246,65,102,230,96,118,241,32,122,182,175,20,213,2,10,21,103,60,122,117,85,187,131,176,130,225,159,70,24,228,243,63,86,135,241,52,30,251,222,247,251,249,
+102,143,3,95,212,217,4,85,203,156,193,147,112,138,130,72,135,111,253,12,138,65,23,103,241,202,71,66,253,198,198,165,35,118,165,116,120,244,125,187,84,243,44,92,140,253,17,60,177,239,167,19,158,114,229,
+130,210,128,83,130,113,109,189,226,190,185,112,16,64,192,52,98,247,225,200,79,51,55,176,120,8,230,123,218,100,128,254,164,13,236,182,18,213,205,184,18,25,13,4,4,189,212,165,180,77,187,253,163,169,230,
+139,177,43,60,217,114,107,192,248,96,240,167,188,214,209,52,4,150,25,170,140,153,183,209,92,9,76,208,119,94,174,149,141,208,199,202,15,186,216,173,92,52,69,229,224,69,239,248,206,236,195,19,183,137,33,
+22,179,236,20,143,253,251,105,119,147,35,75,104,16,195,229,255,238,49,85,30,24,206,169,212,29,203,59,89,89,80,234,16,10,155,4,34,40,212,248,121,82,122,88,132,71,127,249,163,35,204,113,121,91,132,166,122,
+93,83,213,188,123,75,221,136,170,78,73,249,170,15,15,55,107,85,181,140,84,160,116,125,246,107,157,226,208,81,28,32,148,164,248,171,36,35,94,95,38,103,174,4,121,39,74,108,31,241,46,194,210,160,24,79,227,
+215,82,36,116,74,93,255,47,118,28,179,215,108,103,13,63,101,54,237,58,98,233,51,210,3,31,45,87,56,183,197,132,7,155,168,78,232,58,218,253,173,99,87,187,124,227,110,136,247,142,147,164,60,100,50,101,76,
+107,178,241,188,69,47,202,97,23,245,75,89,112,211,121,171,186,147,122,124,121,203,78,31,101,85,85,39,4,109,213,245,214,108,221,111,150,161,251,125,135,143,153,191,119,28,178,243,51,35,206,145,40,191,107,
+148,200,111,159,51,210,18,7,122,73,157,200,192,135,155,155,155,155,149,49,130,18,151,185,111,136,217,181,23,143,158,123,235,8,140,121,216,35,45,66,162,15,23,229,73,213,222,195,205,223,212,242,200,171,
+87,177,214,20,138,181,228,96,116,123,125,130,249,94,11,65,144,56,251,157,212,228,168,176,82,72,59,157,71,17,136,28,153,85,25,158,69,40,78,152,115,243,154,226,5,178,39,73,247,32,155,167,218,24,71,84,147,
+162,115,249,203,62,238,125,49,136,193,197,188,127,210,137,142,151,126,84,11,32,154,117,251,250,243,58,168,186,95,115,56,84,209,43,37,180,146,131,131,75,71,4,36,216,136,71,192,198,94,55,105,241,246,64,
+250,108,76,221,17,12,64,115,182,116,99,159,106,29,82,92,93,47,245,229,143,143,48,139,86,145,28,117,12,3,231,188,167,99,101,211,255,246,122,161,234,38,224,239,73,137,143,127,61,219,188,246,221,188,51,177,
+117,22,128,151,110,175,111,250,128,98,9,86,116,190,94,3,103,152,15,134,47,180,59,5,127,61,61,213,189,150,121,190,91,116,240,245,239,255,178,204,244,250,112,42,99,163,16,78,172,153,253,214,213,166,86,169,
+124,193,222,126,178,199,63,251,227,124,243,220,32,242,2,60,155,94,26,21,135,85,42,234,161,156,214,14,175,206,227,163,48,68,132,246,88,231,30,236,80,201,60,201,162,19,138,124,199,92,235,249,25,249,27,206,
+147,35,107,6,51,1,106,235,226,64,66,19,147,67,20,132,13,197,40,8,178,187,140,151,207,190,164,252,206,230,153,188,161,180,76,156,39,127,142,204,166,59,134,233,206,54,229,147,60,95,98,215,209,51,206,89,
+179,195,188,78,21,244,248,197,155,204,65,229,124,152,47,214,81,240,86,123,166,199,51,205,204,92,190,170,118,81,115,119,155,138,230,242,210,249,147,84,193,43,63,45,50,111,252,180,216,102,208,84,9,62,251,
+213,78,190,188,142,174,55,91,215,227,152,241,75,54,155,67,122,46,91,251,112,230,122,242,132,243,227,160,220,3,188,246,14,192,12,225,32,214,226,223,104,124,99,255,249,195,205,204,45,205,202,162,210,211,
+230,127,31,76,49,131,209,183,66,160,57,178,103,48,107,251,119,181,5,142,193,202,100,112,244,205,159,28,109,78,105,172,120,190,15,123,53,177,21,230,146,110,20,116,126,79,39,186,64,141,253,186,109,251,205,
+55,228,19,7,77,88,101,182,179,227,56,228,80,131,104,209,85,0,66,14,24,115,87,134,178,84,129,156,230,129,142,151,153,182,213,138,36,88,81,191,252,223,189,166,73,223,209,38,246,36,33,229,140,105,204,240,
+71,90,218,70,72,146,35,192,169,53,254,125,200,145,173,101,33,57,166,235,104,29,96,14,140,121,238,10,211,28,196,82,23,238,125,250,18,80,120,60,87,97,230,238,180,23,175,180,78,108,40,178,132,57,221,146,
+156,162,131,129,188,177,105,105,243,22,53,51,193,72,192,97,28,157,84,47,117,230,108,48,76,250,247,123,101,82,79,230,161,215,110,217,23,204,117,125,199,46,164,248,103,17,232,30,11,19,148,112,110,229,6,
+110,226,97,82,66,180,242,118,107,80,210,164,151,23,239,44,155,228,10,222,38,36,34,175,63,88,217,3,58,65,147,205,247,60,206,9,24,112,77,128,104,160,200,228,129,252,78,188,222,67,129,112,218,228,33,161,
+90,242,226,232,20,190,53,161,198,33,141,119,81,62,125,60,214,66,239,252,101,59,161,56,149,188,139,148,78,212,16,161,138,94,38,231,60,242,152,78,41,175,146,136,40,223,115,21,78,200,77,80,93,207,90,182,
+197,28,84,82,15,39,34,45,198,61,3,159,24,239,11,118,20,227,191,17,104,223,171,44,88,13,129,219,10,35,30,140,168,126,161,55,11,93,99,42,60,71,176,24,217,235,104,65,33,60,167,235,164,231,163,23,251,4,243,
+102,63,199,14,250,117,165,169,255,216,8,243,26,134,220,217,165,36,116,61,45,76,210,151,158,119,59,201,111,103,142,104,46,61,136,227,208,132,123,29,201,245,14,121,43,200,211,103,103,167,162,231,82,46,139,
+235,29,103,7,180,137,144,225,147,28,219,154,58,24,157,43,90,226,4,85,180,3,233,170,80,142,12,52,159,253,64,152,103,134,128,202,145,41,25,51,119,163,57,165,29,41,63,171,58,190,21,244,39,62,9,16,152,161,
+221,228,104,18,188,181,31,25,97,158,129,30,100,3,187,132,67,26,31,126,175,121,144,158,49,74,47,219,197,191,138,70,28,98,55,182,104,253,14,115,51,121,181,118,212,243,136,86,36,190,104,161,117,230,160,254,
+61,230,205,31,104,247,120,31,240,230,14,124,111,25,30,189,221,149,41,252,172,92,25,239,134,118,244,218,189,43,239,176,107,31,4,141,120,228,186,214,60,167,160,51,132,193,25,54,227,47,179,141,29,235,46,
+104,36,142,49,183,255,215,164,76,208,103,9,202,216,107,91,122,169,170,103,253,95,60,117,134,194,187,209,128,5,43,26,160,143,104,60,98,225,86,206,44,226,65,138,177,189,138,100,9,118,114,247,165,45,87,57,
+8,211,176,40,158,67,25,184,29,108,203,227,27,178,228,206,163,191,171,82,119,207,46,18,151,254,147,148,73,35,124,125,180,184,245,101,96,133,81,182,201,109,244,87,163,120,62,147,61,140,45,99,82,207,169,
+222,189,217,229,189,169,102,158,73,61,157,23,220,9,219,232,101,245,71,77,165,13,99,101,59,171,153,88,34,161,219,13,24,239,122,143,141,52,191,205,249,203,179,88,163,247,26,229,11,152,103,224,243,25,210,
+187,185,25,254,88,75,27,94,120,243,206,250,166,14,133,117,182,26,152,147,111,34,12,114,35,139,195,167,1,34,202,118,98,188,229,169,189,55,124,17,92,113,178,74,49,166,16,11,234,83,61,106,153,111,30,108,
+106,134,3,36,208,245,222,190,163,190,185,182,105,25,144,80,30,195,143,83,104,30,251,236,79,115,15,112,213,196,138,209,252,245,148,129,115,75,135,10,67,180,125,110,172,233,175,235,97,204,229,189,95,221,
+168,148,121,251,182,122,230,71,174,51,226,209,150,246,186,15,95,85,213,194,20,237,59,196,162,54,127,217,102,115,253,59,147,194,70,199,36,62,7,206,12,68,117,138,158,178,217,185,224,89,136,191,97,65,18,
+145,89,48,114,232,216,9,51,124,22,99,167,1,199,152,86,166,136,175,136,96,190,65,136,46,47,100,96,199,126,44,116,226,212,209,47,120,135,235,16,14,234,7,45,138,198,101,196,227,45,241,204,91,152,47,122,54,
+54,79,116,175,97,46,45,148,211,115,77,12,244,124,28,150,107,8,23,57,161,52,231,210,254,83,78,167,204,130,19,168,49,188,235,227,63,205,192,113,203,60,223,247,30,84,156,243,213,164,30,165,30,0,140,188,94,
+178,197,246,181,46,53,89,88,152,237,216,176,219,22,101,139,118,68,193,138,28,5,11,75,21,28,29,91,162,162,204,210,33,244,233,8,202,216,43,230,212,128,23,201,83,61,231,39,60,180,60,75,103,229,11,244,97,
+118,179,90,254,2,11,99,124,47,184,85,149,194,17,193,212,7,122,31,194,239,183,133,25,83,3,226,19,12,153,6,39,88,72,217,200,217,127,159,205,16,200,96,151,39,25,28,45,124,189,98,158,91,133,123,215,2,131,
+193,175,12,165,68,36,201,169,252,245,40,218,232,194,202,163,104,206,242,66,41,86,25,9,244,82,160,99,229,127,156,60,254,70,79,252,108,54,17,203,214,75,155,143,5,245,235,135,154,154,9,207,182,51,207,66,
+71,161,162,28,161,136,244,239,67,36,251,127,127,166,173,25,138,145,44,140,51,161,23,240,20,99,124,15,192,128,233,201,36,23,149,252,190,141,16,217,100,59,87,211,88,182,210,231,48,242,115,95,239,108,94,
+32,44,167,176,208,21,53,46,181,4,123,15,92,121,153,25,124,127,19,51,29,194,174,218,229,88,92,4,104,200,152,222,12,34,204,246,206,104,18,232,73,9,247,148,63,111,22,51,31,74,225,186,44,96,179,8,219,200,
+160,52,231,220,191,19,26,248,129,120,185,206,223,137,235,180,131,219,72,59,210,55,110,170,109,230,146,51,107,44,111,88,33,37,22,133,95,73,156,79,128,99,38,218,162,144,77,171,42,92,87,30,47,115,225,215,
+249,255,154,61,10,103,4,33,43,55,237,51,235,160,51,182,94,49,186,186,145,5,45,131,126,14,66,134,19,190,187,155,144,146,93,103,24,171,203,200,37,253,241,220,149,102,252,51,237,108,24,81,227,223,142,121,
+112,37,189,170,21,49,120,145,112,234,124,198,238,105,21,87,218,241,73,103,102,82,221,254,131,234,97,18,17,205,1,133,96,6,195,198,249,237,239,56,168,54,191,119,202,180,38,132,61,242,137,86,150,160,77,97,
+154,63,225,238,169,47,167,2,209,187,210,204,79,63,178,13,251,226,181,75,13,228,49,133,84,90,75,72,137,192,191,93,92,52,223,66,169,57,10,202,216,203,81,107,84,1,108,122,252,173,21,19,114,197,166,189,54,
+81,21,140,136,131,126,155,16,43,254,231,99,229,19,181,65,74,243,168,215,82,92,213,159,152,140,159,39,47,219,106,14,7,81,41,44,207,96,249,198,61,103,194,65,142,50,152,80,50,6,209,162,137,86,120,225,164,
+88,64,109,24,39,214,84,210,46,37,74,162,254,189,54,118,238,69,101,137,15,63,190,71,20,165,75,199,57,173,22,225,255,189,63,217,252,43,67,193,88,229,226,197,250,165,111,27,115,61,198,34,49,142,117,57,43,
+87,215,41,102,102,240,98,94,44,66,63,206,161,151,248,58,182,242,73,133,89,62,135,72,111,164,245,172,212,9,45,198,12,195,75,124,10,100,82,98,137,94,141,115,101,66,158,163,201,99,117,172,95,194,131,246,
+194,160,60,242,249,76,194,157,44,76,73,200,6,222,135,206,175,254,110,214,178,136,166,197,184,60,222,173,166,249,233,241,86,246,157,72,172,119,178,118,166,42,124,43,192,206,219,161,251,238,55,108,65,196,
+104,12,18,187,93,37,43,175,135,32,207,78,60,126,222,203,92,88,24,100,168,98,132,188,122,205,93,57,227,60,111,27,226,231,193,136,98,244,55,9,178,237,157,251,215,183,44,107,105,81,154,86,186,36,201,4,166,
+218,147,202,33,120,160,51,121,57,91,107,147,206,188,66,184,45,49,102,0,133,101,38,178,248,246,250,124,134,117,168,50,240,223,111,179,91,212,174,81,48,84,45,124,241,129,23,26,47,25,102,27,151,67,63,91,
+216,133,138,179,42,24,209,70,224,71,161,222,20,42,98,190,230,35,68,219,132,98,179,80,36,40,99,175,11,40,217,20,163,237,132,255,110,132,135,87,50,100,47,49,198,96,228,15,121,46,241,182,250,105,89,213,255,
+11,10,211,138,20,138,216,184,155,179,205,226,190,182,131,187,15,166,82,116,47,177,90,197,78,125,197,103,82,134,244,68,28,175,33,69,34,209,146,197,52,34,177,225,9,73,186,24,115,9,19,34,90,98,81,45,226,
+19,183,161,55,32,152,188,168,66,191,88,73,36,212,18,141,123,153,6,27,227,104,197,220,133,144,96,254,141,197,107,175,69,45,72,32,162,36,232,104,250,17,91,88,31,47,225,70,22,232,65,19,169,58,78,64,20,203,
+125,104,16,21,221,202,83,224,201,189,1,194,73,158,98,32,206,136,18,165,3,225,124,191,68,59,9,205,43,190,255,192,23,51,206,132,189,226,95,15,227,176,139,247,232,31,28,167,24,174,247,41,33,7,237,28,84,193,
+158,156,232,152,123,96,129,117,106,70,22,110,216,29,213,216,189,115,63,117,8,93,40,68,105,175,203,156,248,18,207,55,208,80,133,114,21,67,148,124,101,206,42,132,90,6,164,84,81,193,187,3,20,25,230,174,111,
+254,97,14,10,178,173,56,54,73,221,79,238,106,24,240,14,90,166,231,225,142,149,8,145,161,95,126,86,72,208,58,107,94,241,77,103,126,208,51,61,63,100,1,121,154,163,36,107,211,153,161,132,7,123,93,113,89,
+178,136,24,241,120,229,16,83,44,223,143,197,177,24,202,243,6,19,201,81,152,107,8,241,122,27,194,97,254,180,36,2,17,106,2,62,104,99,47,188,189,245,236,156,248,182,247,37,63,134,247,18,204,118,94,113,222,
+45,94,216,150,79,187,76,150,172,120,104,25,244,96,41,44,217,73,220,196,89,153,153,9,66,10,45,3,70,25,168,40,140,125,86,92,150,80,65,54,98,120,209,108,184,160,152,189,53,180,194,40,103,202,16,103,173,9,
+244,222,3,61,78,33,140,172,153,48,124,74,14,114,77,37,177,20,70,74,73,209,60,123,156,30,11,118,113,198,227,185,11,35,87,91,252,61,65,72,141,146,249,160,204,192,56,202,235,182,94,221,162,4,159,227,179,
+241,171,204,97,12,176,12,89,53,226,177,247,180,133,102,35,8,209,86,254,157,91,65,149,105,39,196,117,126,37,20,180,102,115,18,222,189,168,2,88,36,190,33,206,124,51,177,255,248,80,191,164,46,221,160,92,
+1,147,198,139,148,59,140,145,88,161,173,127,148,69,125,33,234,113,93,107,15,88,160,198,82,167,18,232,14,95,187,156,117,78,120,130,197,226,58,194,82,193,80,142,43,63,160,240,76,14,244,85,142,252,193,7,
+183,213,15,58,188,33,15,191,132,226,223,156,235,40,206,170,18,177,103,9,243,92,182,96,187,146,184,204,247,143,169,38,111,79,72,40,144,5,95,124,92,237,84,51,224,77,226,14,159,165,80,78,224,239,203,98,232,
+201,55,106,247,106,67,180,49,22,214,25,200,117,19,26,246,160,173,170,18,127,90,173,44,140,201,79,210,112,51,193,116,94,210,234,38,42,221,56,241,127,21,30,177,61,202,167,164,70,10,139,86,249,92,234,101,
+235,60,151,242,69,120,14,65,133,40,18,242,108,153,36,85,137,161,139,83,36,90,178,13,4,135,179,67,82,206,40,90,225,34,231,254,229,73,91,65,105,50,188,170,22,142,182,248,123,67,235,153,55,179,87,110,181,
+187,153,44,24,211,135,218,95,22,18,202,233,30,224,151,105,181,104,113,158,141,24,30,187,67,242,147,253,188,148,159,141,135,18,196,54,209,56,141,151,93,51,36,221,182,229,101,47,36,14,118,133,141,136,217,
+138,22,36,65,225,239,121,152,251,227,216,165,40,30,31,172,136,119,201,89,28,100,8,215,41,151,17,101,81,168,162,171,66,85,182,216,46,141,217,69,40,103,250,234,228,11,172,180,225,29,71,156,252,148,66,40,
+202,115,2,25,238,128,1,13,38,167,175,221,204,179,16,36,78,33,44,247,11,59,181,108,33,84,218,75,95,182,145,145,77,16,131,190,161,241,145,35,103,165,82,249,123,43,118,117,55,210,200,39,80,145,126,110,6,
+170,234,232,71,141,151,2,13,229,104,55,241,29,164,131,177,114,20,248,159,26,9,213,42,25,216,238,53,34,198,94,133,45,45,149,116,240,127,251,212,50,12,67,233,108,55,229,181,175,101,162,125,63,109,61,221,
+165,214,240,112,187,207,138,31,42,86,106,147,57,254,69,39,2,57,112,254,96,19,52,129,42,62,169,227,50,209,177,201,22,41,248,63,23,171,113,66,49,251,101,108,245,84,115,48,24,194,49,253,236,36,113,245,252,
+57,133,194,136,131,72,56,109,219,34,70,211,0,251,16,16,232,79,137,217,104,119,20,243,223,166,107,172,131,217,209,133,58,86,254,235,232,144,25,235,45,246,89,9,245,182,228,66,130,217,250,251,95,95,136,134,
+42,120,132,122,201,213,135,119,236,2,40,168,253,68,243,246,95,10,115,100,141,138,20,204,101,26,193,229,30,138,40,87,112,125,67,98,219,74,100,50,223,71,206,249,39,78,213,185,191,81,81,146,89,136,142,80,
+68,249,4,167,16,80,231,212,98,149,18,162,38,56,170,97,80,204,242,52,186,28,171,68,118,50,114,140,240,223,87,10,157,217,62,21,167,76,121,22,42,21,135,5,43,178,23,234,64,167,2,169,80,68,200,167,35,135,89,
+112,116,31,66,22,38,6,241,69,161,105,113,68,223,99,151,150,88,238,36,177,235,215,42,157,207,92,12,161,160,197,248,43,212,197,115,251,16,108,73,220,180,138,178,44,82,201,238,96,79,154,107,235,23,39,31,
+149,124,72,47,177,83,6,237,217,235,68,74,0,102,146,167,234,24,70,30,162,72,254,172,182,65,181,66,10,125,6,207,54,245,40,174,233,246,250,239,230,70,146,95,141,159,252,217,244,254,114,166,141,239,58,162,
+175,122,104,22,82,48,208,155,204,108,56,203,171,208,246,205,15,121,36,163,254,22,172,156,245,65,74,116,35,137,118,227,91,19,77,131,62,63,155,91,65,2,40,110,173,10,187,74,150,127,219,123,33,133,181,241,
+118,154,1,149,74,41,209,75,30,76,76,48,165,238,43,220,235,56,6,81,189,1,198,47,244,34,77,120,208,107,192,122,135,186,173,85,200,160,153,147,236,194,104,76,165,184,199,217,201,73,135,19,225,124,113,122,
+243,170,190,32,84,56,171,230,85,171,170,212,88,88,168,95,26,179,138,208,197,86,112,233,142,248,222,0,254,126,20,79,55,212,197,83,14,148,122,27,159,57,113,202,188,91,170,114,175,69,88,204,38,90,49,158,
+90,204,132,148,74,74,214,147,88,181,97,38,75,124,118,154,176,72,209,160,67,48,225,206,41,125,95,33,200,83,26,228,228,32,163,44,72,181,89,212,66,89,84,180,171,191,170,78,113,175,126,98,108,168,43,193,112,
+81,188,7,82,13,210,102,229,195,188,33,156,27,160,63,9,38,122,18,95,63,33,25,123,121,82,106,109,231,83,16,138,234,192,96,41,6,39,195,174,106,212,29,138,199,123,139,12,246,17,11,123,31,188,240,19,223,204,
+241,25,34,109,159,20,207,116,152,243,156,27,179,158,98,152,92,59,161,76,2,193,70,15,31,21,162,197,239,5,225,197,201,225,87,45,252,49,88,222,135,161,140,176,49,55,53,84,225,197,85,82,250,75,218,38,214,
+238,253,147,249,13,248,169,37,136,114,38,14,139,96,110,58,66,149,138,34,127,189,158,213,105,180,174,69,70,148,176,209,14,171,88,163,229,21,121,86,209,160,127,136,63,134,206,176,28,36,22,173,106,66,121,
+200,233,120,137,202,11,47,29,134,200,200,216,80,34,23,248,123,251,65,139,111,151,168,48,102,38,149,171,206,88,182,16,135,123,24,162,238,110,57,69,74,119,58,134,254,170,71,64,125,156,41,56,139,19,46,224,
+62,206,10,31,4,113,221,112,190,27,196,101,226,28,170,93,235,77,10,85,200,115,229,231,77,132,42,22,0,31,77,74,70,210,177,141,149,213,30,146,134,119,169,3,152,244,104,139,156,53,1,46,68,161,48,8,254,171,
+91,251,79,53,77,169,144,93,98,243,114,201,44,140,188,87,122,183,67,217,161,235,204,221,26,16,234,18,218,15,231,111,27,53,60,115,105,25,154,148,200,217,208,14,192,206,77,244,90,148,228,117,197,48,219,63,
+134,100,236,21,238,104,40,188,189,98,73,74,10,98,16,181,82,53,122,234,103,179,82,172,139,138,125,251,195,41,245,51,199,188,131,193,87,17,142,29,96,126,85,36,175,50,239,113,141,171,120,66,84,192,146,210,
+162,80,200,110,161,137,252,52,162,106,62,39,62,45,148,205,67,84,205,89,35,239,255,108,50,124,60,219,118,98,149,93,212,164,4,3,225,41,58,98,180,240,88,46,187,52,175,103,81,139,162,20,200,37,35,226,121,
+205,181,206,4,91,27,16,236,173,29,177,113,86,79,28,91,219,224,92,118,11,31,93,113,118,43,218,218,218,202,92,174,47,143,254,32,21,172,234,156,182,145,23,40,148,143,16,33,25,53,62,140,227,14,12,189,147,
+108,22,253,194,26,11,235,76,67,85,103,58,187,128,170,82,55,148,107,232,59,218,213,102,5,111,111,98,180,221,139,161,55,114,2,168,143,232,170,48,170,103,87,67,19,171,71,77,64,236,130,48,229,137,161,114,
+148,236,180,152,118,189,71,24,179,162,20,167,93,22,5,184,176,230,140,236,210,212,229,91,141,232,68,186,82,20,87,147,10,91,245,174,80,229,236,64,156,180,133,216,163,227,14,108,57,9,13,9,129,88,33,12,99,
+171,231,83,239,107,61,239,105,116,52,84,161,200,36,182,224,170,130,214,14,192,225,235,234,76,53,174,64,36,225,72,72,198,94,47,153,112,191,158,10,50,216,47,25,52,85,34,238,84,162,208,159,55,199,255,206,
+188,198,161,39,124,245,218,110,234,28,249,114,48,57,252,137,178,248,157,184,44,252,201,135,194,121,184,96,190,171,109,103,156,100,44,3,162,85,92,112,48,153,209,39,191,157,107,142,57,28,40,9,157,152,85,
+123,63,247,254,238,152,101,230,152,23,150,168,129,109,83,173,80,80,136,138,96,238,217,57,182,160,245,24,181,110,130,32,98,193,138,166,177,215,162,104,195,113,50,248,92,51,3,99,111,243,20,146,40,186,149,
+142,75,240,23,94,163,125,71,44,66,226,148,185,130,190,190,85,30,26,110,170,65,164,37,50,173,64,63,246,120,72,221,4,221,179,161,58,230,242,49,12,191,147,255,144,161,218,41,100,6,94,137,134,179,47,187,213,
+234,236,222,2,61,191,115,156,115,95,13,113,132,182,106,183,235,165,240,22,204,239,124,18,161,244,106,43,215,32,212,9,115,98,20,212,5,106,96,159,144,108,100,209,92,46,188,185,98,209,40,183,19,30,115,40,
+201,213,196,244,167,98,77,21,121,62,76,19,164,186,208,85,52,126,122,180,233,133,163,54,140,90,137,45,240,54,29,194,153,20,37,139,32,148,37,105,185,154,81,14,92,82,115,87,241,122,28,191,96,99,245,254,247,
+39,135,200,230,109,52,215,216,149,142,82,168,43,33,228,143,247,75,170,136,223,142,147,96,109,44,182,229,218,122,37,130,74,94,39,164,155,144,140,189,78,84,167,204,69,38,141,182,37,188,20,50,222,150,119,
+58,57,30,11,148,186,16,207,215,233,249,170,70,30,113,208,56,10,67,0,133,251,47,94,132,21,106,227,231,24,105,107,184,78,155,156,172,164,194,252,43,15,241,3,201,230,68,23,50,71,179,60,255,105,182,92,150,
+121,82,194,66,166,100,91,48,8,131,80,12,64,57,95,79,80,207,183,45,17,89,148,68,11,201,26,167,48,8,29,105,151,39,26,141,168,139,215,218,11,121,228,49,200,158,95,236,195,171,223,141,225,220,5,25,213,238,
+32,62,246,120,190,119,16,56,221,105,17,139,89,226,180,19,190,10,80,121,159,154,215,206,142,73,244,219,193,94,67,247,227,124,103,47,177,215,83,114,22,100,0,9,95,252,23,187,215,104,142,145,101,168,84,1,
+145,198,70,181,11,204,17,129,23,18,18,113,216,156,80,37,169,69,240,24,42,143,3,171,91,72,238,254,149,55,19,97,156,170,143,91,63,247,139,121,27,50,194,53,188,215,167,229,152,48,158,153,216,121,148,42,146,
+219,220,10,124,246,171,94,77,32,156,235,104,105,20,4,143,140,31,78,142,115,45,109,198,248,69,66,108,164,201,221,147,255,223,175,169,91,220,164,149,115,139,1,223,73,36,32,177,222,215,114,52,190,101,97,
+138,149,77,101,14,150,230,253,174,84,148,92,96,152,18,178,177,87,97,74,105,197,75,189,149,148,113,44,154,119,43,231,180,24,115,194,61,210,216,105,12,161,80,58,18,197,254,115,90,69,251,45,171,252,168,242,
+245,64,178,213,97,62,123,156,175,47,254,27,79,195,225,181,215,95,120,174,218,44,104,42,75,214,150,244,168,32,89,90,101,109,120,198,107,4,116,223,158,184,201,153,115,57,150,157,223,91,124,125,24,91,191,
+64,159,175,48,137,241,116,154,68,82,35,247,184,154,23,45,90,73,90,229,83,236,98,172,133,29,117,228,103,252,124,84,171,41,144,15,180,180,209,94,81,178,170,37,80,184,142,77,74,153,14,84,114,134,252,193,
+72,117,224,211,158,234,219,124,224,174,37,251,33,175,178,198,94,130,50,69,187,123,53,24,231,144,175,161,251,179,215,41,97,218,243,111,13,161,128,206,51,145,243,150,86,33,92,68,134,106,248,204,191,206,
+114,152,149,124,30,244,7,177,104,75,55,16,107,10,65,7,93,163,100,222,176,52,161,234,231,47,136,193,215,126,228,39,243,232,192,153,102,53,49,248,211,66,213,112,13,21,76,213,165,234,255,29,56,139,166,246,
+187,210,204,124,165,131,249,236,222,70,166,7,227,81,21,90,5,133,88,253,231,84,82,55,18,238,59,165,90,155,50,2,112,200,102,242,17,185,89,66,118,78,40,197,159,68,187,34,103,154,227,186,3,195,13,135,30,217,
+121,166,144,141,189,226,143,54,148,227,175,1,61,4,171,104,78,20,88,146,133,160,5,248,226,102,76,128,162,36,40,85,94,108,183,120,24,163,159,73,206,40,84,35,174,24,161,28,236,239,125,119,20,99,198,0,221,
+10,10,223,30,214,84,145,163,117,202,140,82,194,40,14,109,131,177,248,97,121,178,195,196,167,173,237,183,165,78,128,0,139,69,170,30,188,39,45,224,35,17,100,44,175,112,186,122,6,103,225,179,139,197,41,83,
+29,66,178,220,81,196,215,59,143,173,48,74,33,91,42,239,41,169,158,181,122,199,25,67,21,166,110,226,127,93,140,127,27,69,244,166,69,141,112,78,21,104,1,124,68,94,81,12,227,156,245,24,204,59,113,229,15,
+125,164,185,25,218,187,37,255,182,8,251,51,140,170,200,242,112,222,75,52,191,237,182,93,243,155,255,61,14,225,216,247,15,53,179,229,241,225,94,107,24,252,60,66,17,57,146,146,106,139,240,116,136,115,186,
+34,80,80,84,147,225,246,134,114,134,83,45,106,41,153,253,68,115,103,137,66,56,42,156,228,56,209,87,100,13,131,180,79,33,69,161,225,110,129,212,78,140,161,78,243,163,188,0,35,122,66,177,61,233,121,56,114,
+160,79,184,159,90,12,117,219,203,27,175,134,7,176,104,212,28,163,248,186,206,200,124,85,161,156,117,14,9,97,201,174,40,7,21,95,212,11,123,159,58,127,49,255,210,226,108,118,97,71,16,9,9,217,216,235,93,
+111,45,242,48,199,209,194,16,22,1,75,58,160,103,35,51,139,237,209,2,120,206,127,127,186,173,229,33,95,244,246,85,144,83,93,97,110,167,201,183,66,63,235,216,222,41,105,165,151,73,252,219,113,180,13,130,
+103,3,137,177,213,74,142,165,144,200,83,93,161,130,26,167,75,150,188,242,92,153,232,23,91,208,34,111,230,96,60,99,136,179,93,133,231,55,25,239,96,14,13,59,254,124,169,61,196,90,237,236,86,112,30,164,74,
+170,120,172,4,99,159,157,232,122,123,209,75,179,42,5,67,202,222,7,251,216,130,118,137,129,208,142,5,250,93,176,97,167,15,85,18,232,185,4,243,250,155,88,106,114,176,63,97,207,15,29,98,130,122,243,53,242,
+230,2,105,42,18,232,125,36,119,156,138,142,156,205,147,238,85,73,85,53,8,81,162,56,18,31,231,220,25,45,225,25,119,195,34,175,177,223,76,184,71,161,10,125,34,113,29,127,184,104,10,108,136,146,83,107,68,
+254,174,102,53,214,152,121,123,21,175,167,214,102,157,173,83,56,35,163,69,103,172,176,153,182,133,188,111,90,244,130,121,126,255,133,81,94,241,61,159,254,105,190,131,187,200,34,255,236,34,13,7,17,228,
+103,34,38,83,159,105,241,207,135,66,26,22,17,133,196,59,137,158,83,161,156,116,90,220,120,127,118,179,240,205,162,201,142,191,232,153,44,10,71,15,202,252,22,27,111,164,216,114,67,54,246,186,193,138,196,
+191,50,105,219,203,224,93,75,85,217,108,140,222,93,173,43,216,56,183,86,76,197,236,180,74,169,48,73,108,153,226,173,248,13,246,62,121,161,150,127,29,81,7,249,66,20,172,156,9,7,241,75,86,235,47,18,225,
+42,137,198,32,8,134,117,74,33,28,231,77,39,174,122,35,124,209,106,116,33,68,198,65,146,158,95,60,208,212,124,79,227,6,237,102,148,140,210,51,105,33,208,246,74,225,168,238,44,4,19,241,34,238,134,149,208,
+41,158,241,97,184,163,113,211,126,231,20,182,90,101,227,14,132,240,0,201,102,53,94,8,70,94,128,247,163,26,137,206,142,175,252,102,139,139,20,179,78,72,212,104,194,234,138,241,21,74,197,105,230,96,143,
+13,230,173,13,230,230,116,53,239,91,174,110,76,142,161,212,28,251,11,184,100,52,68,209,57,235,113,202,177,103,62,10,37,118,190,120,224,209,208,151,115,206,38,116,99,19,119,188,85,28,243,228,39,21,5,121,
+69,115,106,40,161,29,79,98,54,214,86,132,134,211,166,83,40,155,65,99,161,26,86,49,36,222,178,208,42,163,33,195,123,237,198,218,244,115,0,249,146,10,69,53,9,151,43,145,109,145,140,198,114,50,249,135,114,
+148,203,17,165,134,135,11,39,214,220,210,188,76,196,160,205,97,25,123,241,78,171,90,179,6,161,152,175,238,111,106,89,0,247,99,248,223,160,139,79,153,123,126,52,245,105,186,112,11,91,172,123,225,127,110,
+15,106,226,87,140,136,140,251,4,188,227,173,144,250,43,68,162,194,150,167,175,173,22,55,148,195,239,6,130,238,217,18,102,19,227,64,198,90,140,145,31,253,70,73,188,67,171,42,20,14,77,14,212,111,85,182,
+127,10,19,234,23,40,115,255,199,98,166,138,196,161,196,217,110,235,63,197,212,162,5,96,217,123,127,52,93,95,31,111,143,145,241,23,207,198,219,55,215,49,55,182,44,199,132,79,111,202,192,253,158,82,162,
+93,136,133,190,121,170,213,136,7,6,71,184,164,246,118,123,208,197,88,98,133,87,60,255,139,233,241,246,68,12,105,92,175,76,196,83,62,200,28,215,208,98,31,74,145,73,56,58,41,234,215,234,47,22,35,28,12,81,
+93,48,215,85,167,41,219,18,211,27,26,83,1,80,20,215,178,96,110,45,85,31,91,156,221,125,57,39,46,205,46,72,243,197,97,20,213,14,122,174,60,89,47,167,81,167,203,47,77,178,45,96,82,15,170,220,145,16,114,
+246,37,229,231,220,192,157,39,179,219,182,97,225,84,44,66,248,117,111,68,34,91,158,3,187,112,193,43,253,185,114,102,208,200,105,143,232,202,113,224,210,145,111,16,233,94,164,36,44,99,175,46,243,205,88,
+201,63,133,24,72,219,94,25,195,142,47,253,102,30,249,96,178,169,192,128,79,233,215,222,204,128,223,185,114,241,60,230,55,86,171,54,20,48,188,49,114,137,245,252,251,116,174,234,131,50,245,192,43,46,171,
+22,122,78,133,45,219,230,3,24,250,247,192,198,70,91,6,208,60,197,198,199,156,120,61,6,237,126,184,207,109,134,30,81,152,73,161,10,25,149,250,84,5,119,121,113,156,165,65,253,238,193,102,230,229,27,46,55,
+243,40,142,104,76,98,72,13,211,213,89,72,5,70,47,95,95,203,136,13,48,218,180,5,254,186,41,136,97,178,60,218,202,224,99,168,190,35,155,175,248,122,160,34,92,185,101,46,100,50,158,166,223,224,16,168,32,
+84,32,231,191,13,95,64,49,202,58,39,220,197,162,120,23,44,131,254,205,74,2,189,86,64,199,197,115,163,157,77,87,38,28,1,15,122,2,191,30,186,4,233,63,26,162,173,191,250,2,88,15,140,23,79,219,109,85,239,
+186,146,180,6,52,62,150,214,215,206,165,180,160,97,246,152,13,160,146,36,106,227,119,68,181,44,22,133,35,250,223,82,65,87,63,59,11,174,120,127,20,122,116,120,240,251,16,186,169,70,194,245,92,16,245,88,
+200,164,174,89,232,97,31,118,101,206,26,207,28,150,243,251,213,36,66,82,122,72,230,157,118,0,145,236,193,29,150,177,215,118,186,55,20,161,242,240,116,163,221,241,6,39,193,189,220,22,47,88,196,68,226,244,
+158,79,252,248,185,175,230,152,227,218,23,99,72,180,26,47,194,96,248,211,182,234,197,26,12,20,42,141,23,119,107,159,156,45,244,219,236,16,226,195,183,116,29,53,18,30,72,143,201,23,135,46,160,3,208,159,
+230,33,240,180,111,142,92,140,162,214,216,142,77,218,10,5,82,133,171,138,223,151,126,156,119,134,199,158,109,103,49,22,41,113,149,59,198,69,220,232,218,126,118,125,115,130,89,165,130,49,37,5,225,197,249,
+27,152,151,24,232,230,188,209,217,180,166,20,250,219,209,75,205,29,24,124,93,87,97,158,247,232,40,20,53,67,152,192,140,150,199,208,75,44,142,22,145,67,101,47,144,196,247,126,89,26,240,220,191,141,221,
+72,23,80,45,122,89,109,56,136,49,249,7,253,92,254,232,79,224,195,129,59,178,99,232,253,21,189,103,237,172,60,109,114,240,140,130,204,157,45,94,43,205,132,13,7,114,154,93,168,14,127,144,150,247,231,44,
+232,191,190,154,219,219,36,87,140,109,69,151,20,23,125,32,10,72,168,248,71,115,187,30,104,44,203,221,228,165,56,16,119,122,184,18,205,26,136,112,239,45,18,223,151,157,186,18,190,34,133,248,236,84,193,
+49,82,200,86,112,217,111,167,64,73,45,75,198,216,229,99,135,38,78,155,96,197,9,225,201,6,28,145,131,162,121,134,131,165,162,163,144,228,63,136,205,9,201,216,88,125,65,108,126,239,180,249,122,10,180,208,
+220,188,32,222,227,22,18,222,22,152,5,125,93,7,64,36,148,138,221,196,244,16,150,177,215,73,5,95,210,13,141,154,243,183,25,163,120,28,161,140,231,97,7,204,228,109,4,50,142,238,53,118,165,82,66,15,35,164,
+238,64,43,18,192,223,214,132,205,237,153,238,53,61,120,103,137,45,114,33,118,254,206,36,219,115,81,162,194,167,187,63,154,102,106,80,16,115,43,141,43,158,162,145,192,0,122,197,10,79,219,155,80,145,154,
+89,212,123,124,164,169,13,206,182,11,109,198,180,32,200,3,240,231,228,113,20,33,4,78,143,119,57,183,40,18,116,111,94,158,158,33,160,45,226,227,105,183,17,114,154,33,38,63,193,27,49,2,39,143,157,50,31,
+140,91,110,17,47,242,222,63,186,179,129,73,71,129,216,80,98,255,226,171,150,145,19,211,101,56,198,46,148,137,219,6,244,83,217,98,120,55,242,64,121,217,94,161,98,89,139,82,32,34,202,214,111,201,75,104,
+55,214,68,68,119,66,30,97,240,119,179,104,72,175,3,198,174,48,179,150,163,3,21,205,49,70,247,147,155,40,148,0,111,126,122,133,195,52,115,185,7,155,167,14,1,175,166,239,88,198,70,200,159,226,139,18,164,
+182,62,67,194,181,148,236,95,10,13,108,56,50,130,185,219,19,167,97,157,215,3,117,206,213,136,144,64,90,45,126,200,81,10,96,126,133,165,49,28,89,69,254,231,30,232,54,228,144,248,27,125,127,228,113,56,231,
+79,45,223,45,166,80,142,173,253,240,212,222,168,17,252,26,198,115,30,125,88,61,196,103,177,150,76,49,232,202,114,229,79,124,243,9,126,120,25,123,126,167,16,78,168,70,81,209,137,148,22,205,225,219,154,
+67,47,225,13,229,168,91,159,162,34,218,61,30,246,22,90,169,38,64,13,143,34,41,97,27,123,221,140,188,217,119,71,19,114,209,205,51,152,194,125,59,98,111,88,198,94,198,131,98,146,236,240,173,215,23,255,117,
+60,145,97,124,138,173,216,117,66,231,56,108,125,24,215,249,52,169,232,73,245,155,188,117,85,75,126,138,97,223,139,167,153,1,104,92,70,182,243,25,5,109,20,44,210,139,219,85,83,233,245,52,63,31,201,14,227,
+86,140,121,141,135,127,50,87,67,90,54,152,38,224,107,248,189,94,50,25,250,103,190,159,231,105,251,38,3,46,244,0,247,254,5,9,216,154,34,116,138,39,130,225,229,80,210,201,73,90,114,188,98,147,142,151,145,
+159,164,97,9,111,67,143,190,236,92,148,204,251,47,68,33,164,143,239,110,224,89,184,208,137,26,46,223,244,254,164,128,239,71,147,176,22,225,180,159,105,179,86,83,33,33,141,25,59,172,223,230,109,52,247,
+125,50,205,167,227,220,36,164,31,84,34,58,158,72,31,182,127,168,94,114,244,169,246,122,193,122,178,50,244,47,14,93,104,250,210,52,250,172,166,237,222,235,41,25,157,85,192,0,111,157,67,31,116,30,108,239,
+83,231,214,213,156,228,38,230,201,7,132,23,171,223,63,212,67,126,230,21,245,109,184,28,52,135,245,192,208,173,22,207,228,8,190,18,27,119,33,135,110,37,215,243,9,215,169,79,37,110,63,158,209,209,77,172,
+26,33,156,71,34,208,130,37,254,82,40,135,240,238,130,245,187,45,47,214,49,156,36,39,132,211,173,126,201,176,72,189,236,2,169,255,99,190,168,222,194,199,15,21,132,30,181,110,44,33,202,160,2,167,168,54,
+129,72,224,158,212,109,42,135,32,219,24,199,93,56,84,114,36,196,117,111,95,28,66,177,117,177,145,130,178,70,82,34,98,236,15,18,27,182,241,51,203,251,77,85,163,31,181,170,12,251,23,224,147,43,179,3,168,
+195,214,101,204,147,173,121,136,132,43,46,101,44,62,187,187,145,185,70,164,74,78,67,12,18,157,159,254,186,220,84,188,127,136,89,187,121,175,233,11,197,232,151,192,28,127,238,211,202,140,229,92,163,168,
+128,251,186,119,51,243,230,29,245,76,99,188,133,92,226,165,113,132,133,71,247,162,164,227,141,132,97,106,63,58,210,220,76,62,225,94,22,143,87,121,217,172,151,202,136,107,109,87,87,160,155,18,225,169,22,
+86,254,75,194,76,121,116,110,6,162,6,84,183,125,187,84,247,65,14,181,216,89,143,3,131,240,15,144,210,104,197,145,3,25,120,209,205,246,104,67,131,13,138,130,180,144,77,194,80,247,30,52,43,168,248,189,94,
+86,181,185,187,88,100,119,222,242,110,187,160,90,104,10,28,219,44,138,9,229,35,52,126,182,91,148,22,69,174,45,8,104,48,141,26,20,46,123,10,35,255,244,87,179,225,43,241,67,71,233,149,240,203,142,10,145,
+115,115,115,156,2,121,254,140,225,4,60,243,159,102,255,21,136,122,226,28,163,235,93,247,214,68,179,95,77,170,49,74,39,48,30,197,212,152,199,43,242,22,213,243,213,113,98,118,176,75,122,246,135,249,65,239,
+86,100,151,250,17,114,252,83,8,52,230,210,17,230,100,53,242,88,14,100,213,118,204,58,207,68,205,182,133,17,151,8,107,63,92,92,56,222,186,133,156,24,185,218,101,66,224,101,151,154,188,170,82,141,69,26,
+56,240,53,47,119,139,88,46,17,106,134,196,212,170,93,185,118,254,109,104,234,110,67,190,222,9,230,79,26,26,205,33,201,131,179,210,129,94,194,78,77,66,31,154,241,140,81,173,143,119,103,124,11,16,214,72,
+135,129,35,98,236,213,68,215,66,245,164,48,148,62,119,221,25,198,59,253,234,38,110,124,26,216,244,241,160,112,108,195,242,36,68,213,152,106,216,124,43,69,16,214,179,244,86,194,109,223,118,144,88,237,37,
+230,193,14,151,217,230,1,173,40,104,106,74,85,163,184,226,197,57,161,134,210,99,201,19,204,4,95,59,224,238,134,166,14,113,221,76,182,137,177,182,146,220,4,134,88,100,86,131,233,60,244,249,216,229,190,
+10,208,52,156,255,201,235,106,38,217,144,64,207,160,48,199,220,183,174,50,147,95,236,96,155,63,251,135,48,246,177,48,253,165,16,0,198,65,62,154,237,28,245,31,137,12,238,135,183,215,179,156,31,142,103,
+222,127,212,98,27,178,82,109,67,160,34,100,85,119,45,126,78,19,118,69,225,48,134,79,147,124,86,67,248,132,68,122,210,98,99,39,44,63,111,3,125,161,62,190,129,136,60,236,91,250,79,54,47,99,76,37,57,188,
+149,172,137,125,247,97,230,65,246,156,236,32,245,162,50,182,221,49,218,42,198,11,84,228,85,43,215,51,77,223,177,45,7,99,205,231,189,26,123,186,176,249,137,198,189,154,114,4,222,176,214,251,232,114,208,
+196,213,65,245,119,85,117,231,243,223,177,83,209,117,88,132,111,97,110,139,65,209,49,241,41,89,167,16,168,126,194,61,174,60,59,93,219,1,74,239,175,30,212,1,64,240,62,182,224,189,13,58,132,227,189,33,39,
+228,85,162,64,14,147,77,5,82,56,31,170,202,255,70,45,42,3,20,133,54,123,125,54,221,220,70,33,214,81,133,141,125,205,120,48,95,41,148,132,215,123,218,85,76,152,10,107,161,155,245,132,248,118,123,25,87,
+179,48,247,163,65,139,30,17,99,175,134,9,42,102,176,130,97,237,55,116,254,89,21,176,74,200,250,142,137,55,40,82,176,146,165,175,12,91,104,94,133,219,66,147,255,67,226,224,111,209,208,215,22,68,200,203,
+195,219,28,73,60,188,53,43,241,164,101,91,18,100,212,19,92,174,44,149,187,66,137,252,6,92,114,194,11,87,152,7,58,85,129,107,31,15,85,179,196,75,42,228,137,189,123,110,66,36,110,95,243,242,246,164,56,99,
+226,210,45,73,246,237,20,204,176,17,219,175,248,85,177,130,57,158,208,78,68,201,34,206,233,228,43,2,156,123,17,63,76,186,158,10,12,173,152,154,65,104,50,19,119,30,133,103,85,27,82,168,143,64,31,137,67,
+36,49,70,66,141,133,96,134,247,17,195,254,2,248,171,145,247,36,225,165,205,138,87,170,238,78,73,229,34,154,130,206,178,59,2,45,254,232,246,206,15,167,216,14,80,137,133,238,229,36,204,128,121,176,221,243,
+99,205,55,191,175,178,33,181,78,188,4,175,253,175,118,92,250,138,120,90,146,7,254,62,139,154,53,194,220,144,152,11,175,126,249,119,91,144,146,156,151,39,246,202,59,200,253,244,7,0,160,121,165,58,145,59,
+169,182,180,29,151,226,137,160,193,223,224,124,100,80,194,209,34,115,136,183,2,39,126,252,235,217,54,113,157,148,8,134,252,58,192,1,233,192,169,192,46,77,241,155,26,96,248,203,249,231,215,27,91,127,210,
+161,86,177,184,144,106,61,52,99,117,77,221,18,161,147,3,122,39,146,106,91,108,5,191,108,3,139,253,107,236,156,20,130,243,81,92,36,48,48,98,71,253,88,116,228,48,95,14,248,25,240,2,246,64,16,233,44,106,
+179,169,243,242,223,254,99,26,237,113,17,98,79,13,196,61,187,103,76,177,94,44,22,174,22,149,11,123,186,103,69,88,210,62,139,132,123,78,109,55,148,92,88,201,182,93,219,234,157,120,144,251,121,249,212,190,
+80,157,147,18,18,197,88,165,216,95,64,83,60,73,60,175,47,49,244,49,20,96,140,95,178,201,172,160,225,114,11,66,50,205,73,196,181,192,115,255,139,243,109,80,194,14,131,179,153,159,7,211,170,75,69,67,170,
+166,84,56,65,70,62,190,40,126,173,198,188,217,64,117,44,129,12,233,47,167,69,155,94,88,219,141,70,174,170,199,58,239,97,69,157,183,122,187,249,10,180,192,24,194,30,106,77,166,239,170,72,35,185,173,148,
+96,101,215,66,109,124,194,18,255,144,159,230,122,47,225,253,70,130,203,34,156,113,145,193,239,218,160,148,25,207,11,176,77,133,71,232,227,32,11,146,182,138,95,1,203,84,201,250,202,77,251,240,246,15,90,
+88,233,196,101,155,205,16,22,132,119,129,187,62,11,195,227,84,190,119,212,22,126,240,80,222,242,238,227,24,175,211,232,76,20,24,137,53,12,145,190,132,133,31,194,2,170,69,230,8,158,236,224,201,235,236,
+226,175,123,58,129,238,85,147,176,145,23,111,17,137,202,190,223,206,51,218,194,170,93,155,198,229,122,114,54,106,210,173,208,224,215,228,89,244,2,8,33,36,8,108,124,111,176,10,187,23,145,97,255,41,4,3,
+243,76,222,250,8,146,129,19,22,111,182,113,92,45,92,26,105,167,0,78,115,230,107,158,253,62,194,120,19,25,103,187,232,115,47,87,55,45,109,147,236,137,117,72,203,207,92,168,5,50,103,8,40,172,83,214,83,141,
+49,51,169,173,248,137,240,209,206,253,199,108,114,80,185,6,1,1,68,145,188,146,249,43,135,228,129,207,102,216,122,17,235,141,146,199,40,66,161,207,12,118,184,241,157,133,73,56,25,147,57,94,231,21,250,171,
+23,61,117,67,97,88,20,5,137,106,70,14,9,114,203,185,180,235,13,181,235,149,51,247,84,85,61,136,112,135,211,182,175,35,236,139,129,64,28,101,183,242,0,47,20,27,174,207,171,71,17,10,179,190,114,67,45,58,
+106,5,70,215,59,12,208,135,165,131,70,135,153,89,112,111,35,124,167,119,83,243,175,46,99,210,31,160,132,108,137,122,63,127,11,231,150,152,69,181,64,107,30,74,31,234,81,32,68,223,91,0,57,122,1,232,248,
+145,57,101,245,131,20,103,247,241,35,33,225,29,140,225,42,11,26,161,235,21,20,39,2,58,72,182,239,63,130,115,180,210,82,18,167,101,140,85,107,19,106,87,180,132,222,101,133,162,100,63,230,193,5,230,171,
+222,231,157,123,229,166,218,166,2,8,199,72,75,12,30,158,166,98,216,162,190,138,85,123,13,245,222,180,208,45,167,76,23,8,124,30,191,186,170,197,138,42,70,37,145,97,209,203,48,106,246,63,102,36,198,93,219,
+119,235,49,105,81,112,184,72,120,105,46,193,115,27,242,104,11,155,204,213,160,9,190,245,46,240,198,233,20,29,156,112,176,186,24,176,50,120,242,117,192,163,214,229,35,99,160,213,88,28,214,179,89,124,102,
+172,218,106,86,254,187,207,227,253,137,138,151,73,210,153,114,101,197,232,180,200,236,97,144,173,49,83,152,71,179,211,26,54,62,12,174,122,155,138,217,243,58,188,76,109,169,46,197,147,112,12,191,14,19,
+167,250,76,238,229,22,144,42,155,196,50,41,195,65,56,235,222,206,85,128,93,214,13,26,63,28,246,0,36,114,2,133,148,94,195,131,253,0,221,29,211,36,151,158,245,172,94,157,171,119,176,35,177,74,68,202,50,
+121,115,47,246,133,96,119,160,73,185,2,195,236,233,42,20,107,158,187,190,166,121,164,83,229,68,155,67,235,229,123,144,16,201,123,236,212,28,4,147,194,105,106,134,157,141,4,125,22,118,11,50,138,118,203,
+172,6,22,92,50,35,252,62,15,179,11,235,75,129,157,118,70,131,48,18,55,227,125,235,126,196,181,52,247,245,78,9,54,129,209,88,170,136,175,31,21,192,135,213,29,201,75,30,165,103,72,195,253,106,215,169,133,
+95,215,82,221,65,172,22,46,111,98,79,207,119,15,33,21,45,206,50,178,201,137,118,126,93,72,246,239,146,71,239,4,119,81,101,90,174,35,84,135,66,144,74,196,234,217,236,117,108,104,211,115,214,122,56,62,63,
+96,88,4,187,139,47,2,11,60,175,240,21,231,20,131,232,154,254,215,134,132,46,217,74,162,177,42,201,223,109,222,162,156,55,216,29,61,204,142,37,28,153,2,64,162,113,159,81,30,131,205,156,31,248,48,141,208,
+129,28,7,34,170,71,41,223,107,136,217,40,202,4,205,59,188,240,14,216,132,159,64,188,5,26,186,234,6,156,91,45,64,245,94,230,38,87,163,186,29,213,233,56,50,130,92,77,183,87,199,123,64,8,186,71,94,78,65,
+184,229,168,105,220,149,80,63,165,156,154,108,128,198,76,134,155,177,186,11,230,203,222,29,42,147,163,201,102,110,253,112,170,25,200,162,161,191,247,224,217,196,136,169,97,83,242,182,42,0,15,245,128,77,
+207,156,157,0,61,138,13,83,70,80,102,224,100,214,163,78,199,121,183,114,226,192,174,31,208,53,228,48,87,82,183,22,49,99,47,3,216,251,203,89,230,173,239,137,77,102,193,176,75,91,12,64,38,94,34,17,158,21,
+202,235,161,24,248,135,16,130,120,174,79,58,220,240,142,231,239,188,28,36,202,242,131,225,110,75,92,248,54,188,185,134,138,151,122,69,147,71,171,252,112,188,183,241,120,111,242,246,247,40,62,110,89,40,
+253,30,211,187,37,99,180,161,60,200,8,194,38,63,152,240,162,118,160,202,178,154,203,11,83,220,110,50,47,239,15,76,36,85,192,90,67,40,187,151,214,27,226,241,34,61,116,86,77,178,6,36,151,149,29,207,201,
+246,244,24,215,251,147,213,120,14,198,222,210,144,202,208,99,76,178,103,203,100,214,14,184,214,62,111,106,18,169,67,161,20,45,150,35,105,118,189,91,139,156,223,194,234,11,30,11,102,200,115,199,240,210,
+40,100,245,63,114,45,183,183,44,107,61,167,210,119,255,224,193,53,131,109,151,190,91,129,178,234,221,177,178,229,237,16,84,85,212,2,254,225,43,25,87,197,170,159,37,86,173,198,46,158,151,221,187,152,232,
+134,44,135,56,100,102,124,79,132,114,189,59,86,177,249,28,199,163,253,12,15,245,246,143,207,24,251,57,175,117,52,165,147,168,72,86,211,152,15,199,173,48,63,209,20,66,125,5,236,243,57,139,151,174,167,5,
+206,34,175,120,217,49,2,245,112,34,122,226,65,119,162,66,49,185,221,155,255,88,138,222,121,208,31,171,108,167,35,237,50,125,78,130,23,51,109,255,91,161,71,239,162,89,18,86,199,135,58,85,178,124,228,242,
+72,19,18,237,108,20,194,212,61,235,152,77,159,118,15,201,216,171,226,188,210,131,195,205,46,189,19,156,235,229,30,181,204,227,56,31,225,136,118,40,77,41,174,115,140,253,39,15,52,179,115,34,16,145,218,
+31,28,52,211,188,43,48,132,13,131,157,50,3,169,180,15,116,177,208,53,174,122,109,188,135,114,193,107,236,167,19,158,20,123,164,35,186,198,84,22,164,7,216,173,45,16,72,68,122,215,59,41,123,224,5,77,56,
+77,82,114,97,72,219,51,222,242,208,85,201,239,44,56,253,201,225,221,7,112,67,58,171,197,123,62,237,197,246,86,255,11,169,171,169,193,226,233,24,251,223,250,182,53,66,209,68,82,4,96,168,248,192,48,179,
+73,57,63,222,171,238,45,202,81,115,212,56,224,197,48,152,123,137,152,177,215,69,245,130,11,237,242,61,197,77,246,101,211,74,235,231,69,121,94,12,14,148,81,213,207,50,210,54,1,203,36,199,64,182,228,165,
+239,65,159,69,21,99,37,228,1,249,63,152,226,178,98,208,91,189,121,63,215,61,105,227,208,242,98,213,76,163,16,222,147,98,94,226,182,41,94,32,155,221,89,36,182,45,86,204,120,41,134,240,15,96,152,122,129,
+133,133,22,167,190,189,63,223,66,36,111,223,11,143,147,231,168,56,184,55,177,98,143,99,17,202,198,206,101,52,9,98,133,174,82,171,104,238,171,247,167,12,191,16,67,139,245,114,96,233,79,120,159,77,240,82,
+113,221,168,216,165,2,236,143,254,113,195,105,44,110,237,224,8,63,112,208,131,242,177,134,20,29,228,194,235,206,71,44,95,185,140,79,72,140,199,215,243,95,236,122,38,45,217,98,57,146,132,157,23,188,83,
+195,175,134,17,234,118,214,128,197,92,252,40,241,91,27,106,7,232,20,212,233,59,181,75,231,79,150,208,74,139,184,198,111,14,134,127,62,213,190,107,153,27,116,1,180,139,59,116,102,220,171,7,246,91,3,120,
+173,10,1,195,9,181,109,82,123,59,116,56,135,29,164,138,4,165,91,135,42,87,97,197,90,165,46,178,225,142,106,144,227,57,213,216,137,205,11,233,101,189,23,227,175,93,148,238,49,148,190,186,10,149,205,196,
+83,116,120,141,202,224,1,135,27,118,80,85,248,92,181,103,212,60,231,93,174,200,187,169,94,211,129,138,29,71,139,212,243,236,32,133,214,10,166,179,153,188,107,27,71,71,191,10,9,95,158,200,60,16,248,66,
+115,76,33,188,229,132,100,78,49,32,233,189,117,61,101,224,222,210,188,86,77,144,56,115,226,207,81,25,220,217,56,110,114,122,52,47,181,163,151,177,87,68,65,187,119,235,43,112,251,114,26,131,185,247,64,
+116,164,14,120,151,97,236,247,106,87,138,61,28,129,13,145,99,26,13,137,168,177,215,13,202,8,127,73,201,111,191,31,23,152,45,60,136,21,167,177,137,147,36,245,110,183,10,224,193,107,165,236,84,187,56,177,
+197,139,204,37,76,162,96,188,172,72,43,68,133,13,115,214,238,180,48,190,177,160,52,148,33,247,133,118,100,228,181,91,145,205,247,162,16,173,193,227,37,168,132,241,80,66,57,57,164,81,164,239,55,220,243,
+41,130,167,56,183,134,69,143,150,88,126,197,185,142,120,59,186,189,49,222,252,173,109,185,45,146,243,198,40,88,28,171,227,17,137,105,80,12,148,137,137,140,145,188,41,29,33,3,30,109,145,209,115,162,115,
+250,55,90,115,203,95,143,122,166,80,11,124,162,173,143,11,229,252,30,40,244,153,233,153,18,115,45,84,221,254,72,61,80,215,151,127,179,139,225,37,180,105,93,242,206,213,150,99,43,26,18,113,99,239,220,164,
+86,116,37,109,229,49,171,225,248,70,254,91,158,54,204,43,54,249,32,111,174,50,213,158,197,136,133,167,198,193,216,14,246,122,5,77,16,38,112,255,75,217,206,45,144,135,193,54,89,225,138,195,172,248,218,
+61,200,115,19,101,105,187,26,69,194,242,18,163,49,176,209,58,167,188,172,47,73,190,126,1,132,117,3,201,175,227,218,21,48,190,149,48,246,243,97,61,77,202,216,71,235,158,220,243,186,26,56,23,53,160,69,169,
+205,11,227,204,31,2,11,176,58,221,70,88,241,83,118,199,209,146,168,25,123,255,27,22,74,193,110,165,241,174,148,41,63,215,68,220,43,39,133,4,194,216,91,102,5,126,150,177,87,232,225,66,245,226,180,109,86,
+152,69,113,77,161,153,114,18,202,185,79,253,10,146,194,101,158,107,3,239,222,175,171,129,40,106,64,16,231,74,61,135,24,91,111,143,211,52,133,157,177,127,142,50,210,151,142,138,177,87,102,92,93,106,148,
+105,22,188,207,151,140,229,129,98,49,6,39,181,199,82,236,64,113,111,197,240,237,206,63,241,237,127,164,31,58,217,243,233,254,188,200,156,52,132,37,210,121,227,247,25,136,167,202,184,11,113,97,57,117,248,
+91,105,98,128,213,9,227,92,7,202,32,210,241,188,100,239,211,61,192,213,128,171,129,115,82,3,130,138,94,209,111,156,249,13,84,162,194,194,101,200,133,44,161,104,211,118,244,139,146,68,220,216,43,78,122,
+199,128,169,230,75,113,196,219,224,172,23,234,23,165,7,72,241,211,250,22,39,174,172,159,109,230,255,180,169,73,162,241,55,58,115,165,36,173,113,138,63,187,123,65,87,3,174,6,34,162,129,15,104,186,210,19,
+150,92,11,21,6,9,56,24,218,23,81,189,71,83,34,158,37,83,140,254,75,226,185,246,33,108,82,51,5,61,118,11,183,138,166,186,226,109,64,108,86,147,103,36,52,53,23,180,138,186,206,184,226,106,192,213,128,171,
+129,196,52,32,132,143,32,201,61,63,250,211,87,123,160,170,234,144,41,154,131,80,117,196,61,251,121,64,222,234,210,228,227,132,138,24,18,169,158,77,242,254,28,124,172,14,178,5,79,94,248,166,131,123,247,
+150,22,199,16,82,241,148,131,249,89,119,231,199,56,235,11,255,161,255,86,129,139,45,188,16,138,196,91,192,229,71,109,108,143,177,159,16,22,39,47,97,199,15,52,191,22,158,218,21,87,3,174,6,92,13,168,106,
+87,248,133,234,106,194,142,109,218,67,253,199,103,227,87,154,241,20,136,158,148,61,194,110,8,33,54,251,173,206,80,162,115,76,148,37,226,198,94,80,190,207,41,175,238,73,245,227,113,47,52,209,83,192,227,
+53,222,122,122,85,98,58,134,214,49,226,250,59,133,23,122,120,167,169,179,240,176,90,47,114,3,69,202,151,61,139,45,191,182,24,95,142,205,145,53,189,197,207,171,128,73,61,88,5,233,83,211,16,137,18,169,42,
+113,22,214,118,7,168,26,85,233,238,166,170,86,52,168,250,219,238,3,199,105,200,125,196,87,197,233,137,198,196,218,143,133,109,57,12,122,14,188,208,97,124,212,243,88,138,5,239,199,91,67,16,195,239,238,
+185,226,50,243,38,101,206,241,241,226,81,30,63,247,244,174,6,92,13,164,82,13,212,163,242,120,134,168,16,100,243,28,39,210,134,129,177,31,48,182,102,164,24,241,115,138,204,174,87,103,175,20,144,136,27,
+123,221,179,144,55,211,86,108,51,159,83,242,62,141,234,182,221,224,215,101,192,179,3,91,84,18,83,73,78,149,51,171,112,74,133,59,226,64,23,73,154,146,19,185,249,123,46,144,29,194,154,58,85,153,42,82,145,
+225,23,210,67,6,59,84,196,135,238,203,226,202,181,16,120,63,42,26,57,14,179,227,110,254,221,75,193,208,78,144,37,170,244,85,2,229,95,120,65,84,168,181,105,215,97,22,134,99,132,214,78,217,30,187,42,187,
+23,102,60,15,247,170,66,141,155,161,100,86,51,6,21,196,184,226,106,192,213,128,171,1,105,192,26,123,64,42,113,4,187,34,251,39,10,150,231,105,214,100,41,193,83,72,162,98,236,253,239,125,23,198,243,192,
+145,147,214,88,203,104,139,63,68,101,53,231,154,97,212,2,113,140,100,236,97,26,48,168,98,247,56,59,0,45,94,226,227,9,148,231,35,133,198,212,189,140,171,1,87,3,169,64,3,139,161,118,153,186,124,11,78,227,
+33,194,54,167,76,54,28,92,85,110,139,98,68,236,188,41,13,67,143,186,177,79,5,58,119,111,33,2,26,80,73,185,248,128,20,107,204,193,142,70,120,224,80,152,25,35,112,43,201,158,66,117,29,98,146,60,1,25,159,
+152,44,69,133,107,169,178,83,153,248,167,156,66,73,21,165,178,199,113,111,39,149,107,192,53,246,169,124,128,2,189,61,17,116,169,23,128,242,14,162,247,21,9,150,26,144,56,242,23,20,194,234,178,164,92,70,
+102,118,36,253,186,215,32,15,146,48,49,87,66,215,20,209,88,93,182,165,177,208,190,150,130,135,123,193,155,157,83,109,213,240,6,158,181,236,125,67,204,9,118,149,153,208,193,146,183,175,78,144,49,51,80,
+221,70,227,56,17,250,245,99,60,22,254,189,203,100,98,33,122,159,6,245,137,21,212,140,164,211,218,176,233,27,96,115,140,177,205,85,158,185,182,122,52,110,41,232,115,138,64,240,11,72,225,180,104,213,102,
+78,220,77,31,9,87,82,175,6,34,14,189,76,189,143,122,126,223,153,18,207,159,211,252,227,75,154,147,12,226,179,79,196,74,126,178,157,30,190,95,194,205,253,21,127,83,2,125,63,116,204,193,136,60,79,27,122,
+3,102,154,218,147,208,194,83,121,238,53,173,101,226,116,240,85,106,94,161,126,5,250,252,151,173,35,197,78,217,224,137,159,205,15,112,72,137,184,109,17,4,94,98,131,77,76,102,174,222,97,6,67,193,171,241,
+27,22,68,71,166,96,198,55,148,99,85,65,61,136,122,26,221,215,248,32,186,132,133,114,45,247,59,225,107,192,53,246,225,235,48,85,156,65,136,36,85,248,202,192,197,192,189,45,132,144,191,216,144,139,159,1,
+12,54,4,163,100,122,159,171,170,154,103,187,213,180,30,92,106,54,248,42,108,19,181,239,179,215,213,48,143,194,145,175,38,55,146,113,11,254,53,237,33,157,186,146,198,245,79,195,33,255,95,201,119,52,217,
+216,167,22,116,80,112,139,101,241,162,220,89,147,108,230,225,44,92,26,63,33,56,82,139,136,97,86,16,104,221,87,250,84,24,38,75,45,122,74,45,247,225,26,251,212,50,18,169,236,62,60,53,12,103,68,176,214,167,
+174,169,106,158,161,113,201,189,52,126,8,135,65,210,97,163,136,196,35,39,212,123,71,141,72,158,160,105,206,51,44,76,125,174,170,98,17,94,18,127,30,163,108,161,212,128,4,113,195,73,213,246,109,218,10,155,
+170,174,79,227,150,199,104,2,179,238,163,174,182,199,113,164,69,186,137,63,142,201,93,35,185,227,133,104,115,68,208,230,228,36,128,67,206,58,69,40,223,73,238,62,220,191,83,98,20,137,182,132,174,34,255,
+123,13,168,153,248,151,244,17,56,5,166,87,49,251,251,218,86,4,190,122,38,38,175,208,193,39,162,176,16,207,55,222,228,253,182,245,93,26,203,96,57,157,196,235,6,194,8,226,63,95,242,207,110,219,138,237,103,
+26,196,252,11,83,169,208,3,130,205,170,94,65,29,131,116,236,63,92,75,13,159,127,166,197,225,4,10,68,230,209,142,82,16,90,255,110,79,195,248,254,68,120,236,197,124,90,134,166,35,66,30,8,214,58,130,248,
+179,250,6,252,138,151,61,119,221,14,251,123,241,189,59,136,166,213,132,53,126,160,61,226,108,66,23,130,183,42,175,48,112,194,74,27,122,81,195,17,237,72,196,188,169,56,246,39,132,164,198,208,113,76,33,
+44,65,122,157,182,133,130,198,126,67,139,73,245,182,21,215,188,154,93,72,39,107,48,178,67,248,189,112,207,151,147,96,86,255,4,237,127,212,122,239,91,90,39,234,94,183,113,110,233,65,199,75,212,54,78,207,
+45,94,243,221,64,115,75,94,156,221,247,183,248,163,190,147,80,217,112,218,232,169,112,102,26,241,236,209,220,155,96,189,133,161,174,117,22,26,203,57,15,15,254,148,133,255,90,188,245,13,192,118,197,175,
+47,56,113,98,73,90,53,109,159,180,152,214,139,140,131,234,76,238,104,89,46,209,9,39,3,47,154,238,193,180,223,211,125,171,195,155,66,69,154,11,234,22,231,236,247,22,210,121,108,56,77,65,102,3,13,212,179,
+74,207,170,126,255,144,50,254,159,231,252,3,237,71,38,219,172,199,145,125,20,4,125,206,56,12,100,110,108,160,71,65,41,198,84,80,229,239,38,123,122,87,92,198,60,185,166,94,113,123,184,144,107,130,28,126,
+70,37,253,216,5,27,173,78,212,44,72,99,228,63,39,213,115,64,253,155,149,15,42,144,43,139,77,162,255,200,216,247,167,53,230,44,126,39,32,64,65,111,237,204,127,255,134,157,251,119,224,38,104,207,253,49,
+180,79,32,164,76,179,103,126,193,184,156,180,33,156,149,239,117,177,70,203,17,85,54,215,236,61,194,26,186,108,212,49,172,254,160,139,45,58,43,71,34,243,16,70,184,20,68,76,234,224,243,34,125,8,142,170,
+211,147,10,65,48,46,253,110,174,99,158,32,124,51,15,195,220,248,233,49,230,48,6,173,50,205,29,254,164,99,208,147,223,204,53,239,169,105,55,41,186,207,40,14,185,181,133,167,131,145,140,122,121,90,84,170,
+23,113,78,22,129,53,31,92,107,27,65,116,124,249,87,90,189,237,241,52,127,81,5,33,47,179,194,65,189,104,157,247,34,152,99,237,22,190,36,159,112,19,109,226,212,213,170,117,173,162,20,205,101,50,131,105,
+18,125,241,197,57,205,230,207,187,179,232,28,49,205,159,25,99,150,113,30,219,106,78,21,213,120,242,50,244,106,50,47,195,169,4,109,149,135,134,155,3,220,71,118,140,216,90,218,252,201,128,189,76,55,40,53,
+10,81,70,49,127,238,204,116,190,202,65,163,136,98,166,19,205,34,42,61,56,204,28,167,152,46,63,29,213,86,191,127,173,143,212,238,5,218,29,62,61,104,150,173,188,126,136,93,194,27,255,171,147,160,81,86,19,
+243,182,207,141,181,205,218,149,4,183,237,22,89,200,52,22,141,192,84,143,126,178,141,45,6,191,254,157,73,102,54,99,101,219,113,98,100,11,209,134,176,16,6,124,224,189,141,76,69,104,191,19,146,231,24,147,
+103,105,112,46,106,142,154,60,223,28,250,216,38,36,170,29,121,133,36,253,75,36,126,15,139,179,73,197,129,114,147,49,162,234,176,246,197,131,205,76,231,218,69,237,87,117,204,147,63,210,10,81,141,218,225,
+100,81,127,224,65,191,210,154,143,197,73,55,154,141,14,111,83,95,238,72,101,103,30,91,147,114,221,91,127,152,161,50,236,182,127,179,49,37,169,47,105,192,226,251,37,11,183,140,125,87,116,248,253,99,45,
+173,161,239,75,15,227,55,208,181,165,191,182,221,205,8,247,112,239,185,24,167,97,125,90,210,37,170,160,61,135,142,235,71,39,51,201,227,93,171,219,177,25,50,137,190,195,182,243,28,109,8,209,205,28,218,
+81,170,225,136,43,225,107,192,13,227,132,175,195,115,246,12,190,226,52,224,137,107,241,254,250,98,212,74,227,5,151,40,138,209,1,19,172,151,254,61,90,25,30,199,112,248,179,241,105,43,47,195,220,185,78,
+49,15,197,4,239,255,239,120,158,206,246,123,45,200,160,189,106,141,199,47,26,86,40,64,127,214,180,230,250,119,39,153,37,120,235,146,220,249,179,155,18,116,28,18,109,133,60,221,215,191,157,107,134,128,
+54,177,118,73,49,96,253,192,191,106,62,175,196,164,140,137,226,214,199,48,76,143,211,194,111,41,94,159,60,216,172,120,125,5,101,32,89,56,118,227,145,55,121,234,103,250,15,31,165,64,47,189,45,236,147,56,
+185,9,117,231,90,167,62,186,162,203,0,213,178,131,100,237,244,89,127,155,165,120,160,242,96,197,92,42,35,179,31,111,85,200,37,137,144,77,127,174,220,106,89,9,229,117,95,85,167,120,130,134,94,199,221,218,
+127,170,89,78,162,213,94,149,107,100,165,186,91,114,154,47,78,166,49,249,147,223,206,177,13,201,199,225,233,110,218,162,48,14,207,201,113,155,208,251,108,254,190,91,11,108,152,34,79,249,169,175,102,153,
+195,234,180,134,81,206,72,139,195,180,44,130,42,203,223,71,66,190,43,141,103,180,11,146,248,234,92,208,235,48,118,0,95,99,200,27,210,160,60,39,61,89,13,227,117,16,61,126,69,2,89,207,51,159,157,200,80,
+26,181,235,158,211,208,211,183,134,90,243,241,135,47,213,76,220,155,27,114,194,105,227,216,177,188,196,179,30,247,234,95,104,168,52,44,36,90,0,247,224,40,92,77,15,95,193,120,37,190,102,57,44,4,175,14,
+91,100,212,92,188,94,229,130,38,139,80,100,124,103,15,99,244,139,155,248,13,115,86,156,249,186,107,236,35,166,202,115,248,68,188,152,162,113,254,236,193,166,102,214,171,29,204,88,90,163,101,203,12,46,
+157,23,249,32,149,195,142,225,116,66,0,150,249,130,143,66,60,185,188,253,118,231,175,223,69,15,19,140,12,34,164,203,73,245,155,229,188,93,234,149,180,222,238,12,66,4,50,224,42,40,153,210,239,74,51,255,
+141,206,230,171,251,105,236,236,105,33,69,194,116,174,109,26,157,193,246,59,16,189,6,247,196,191,247,119,169,102,222,163,161,195,237,236,26,54,237,57,100,59,136,169,71,92,94,174,59,15,175,79,176,202,7,
+137,207,139,125,244,8,6,77,225,29,133,178,156,133,76,94,169,126,22,214,190,38,30,182,245,76,89,28,46,229,62,186,66,113,81,165,76,126,27,74,106,79,79,93,201,49,12,209,202,77,123,237,207,106,92,191,4,136,
+164,221,9,16,138,209,78,32,33,89,182,113,175,153,76,241,140,60,249,139,241,210,7,245,106,98,251,152,126,136,183,110,241,253,124,190,193,88,138,178,227,94,194,107,101,181,176,136,122,131,251,168,200,162,
+215,133,223,21,200,21,56,12,54,161,123,144,109,237,63,118,133,207,243,190,182,81,73,51,229,133,43,205,196,231,174,48,237,232,187,170,135,56,1,66,107,132,250,185,74,195,78,2,159,123,40,134,231,60,151,198,
+51,191,246,109,99,30,81,131,114,75,3,98,108,229,184,60,245,95,23,17,114,146,183,205,61,247,104,84,218,252,14,187,235,188,55,58,153,7,217,233,216,29,26,199,166,103,129,21,227,237,71,236,194,156,198,222,
+61,219,87,50,83,209,131,238,161,86,185,139,236,239,247,112,78,133,143,36,62,12,1,231,174,196,206,114,1,115,226,15,118,103,15,92,89,209,182,250,148,62,23,209,47,193,149,200,104,192,53,246,145,209,227,185,
+125,22,44,69,14,98,180,29,8,155,200,240,41,174,42,250,10,143,85,72,136,24,78,137,63,182,217,132,131,172,71,140,252,131,55,188,97,251,126,187,229,159,66,140,89,6,32,13,161,131,26,244,96,93,142,177,167,
+227,139,53,34,93,234,151,180,93,202,20,223,191,166,110,49,27,78,209,14,226,223,157,135,161,11,241,54,138,214,37,49,202,151,211,170,242,37,234,5,122,182,171,104,19,174,89,50,164,183,222,177,103,45,192,
+179,231,30,21,190,121,254,186,234,230,133,91,234,154,105,24,160,235,27,151,178,247,224,136,140,160,22,17,53,22,127,130,4,179,221,53,240,247,22,149,11,153,175,104,236,252,32,77,211,37,234,113,155,214,75,
+119,49,145,130,44,45,112,138,223,111,199,56,73,20,30,242,143,55,251,15,248,82,242,28,106,104,35,235,85,29,6,67,133,195,68,163,113,35,255,150,82,40,13,123,184,135,29,131,22,195,151,73,112,95,215,16,42,
+91,47,39,212,157,173,202,153,111,30,106,154,100,51,245,64,38,23,35,98,115,32,90,80,181,11,123,12,52,146,250,181,54,100,145,243,225,223,25,75,229,30,36,105,157,182,144,232,178,62,134,88,125,135,53,246,
+162,42,113,250,197,106,247,38,93,170,38,192,178,187,162,147,230,85,10,90,26,111,141,159,122,178,198,164,87,79,138,211,38,11,149,241,106,242,163,133,93,146,133,191,247,238,88,201,134,157,180,208,62,112,
+37,139,136,198,151,49,83,140,94,226,75,152,51,166,61,154,148,178,189,167,21,214,83,252,222,145,88,167,247,115,32,74,112,143,73,82,3,174,177,119,39,136,213,128,140,167,94,86,137,194,54,103,204,101,2,10,
+162,139,183,135,207,46,198,92,65,75,70,29,124,236,200,113,179,150,222,180,250,238,159,171,48,246,24,17,245,24,86,34,87,97,14,187,104,96,12,39,16,238,121,146,176,205,99,131,231,152,71,191,154,109,233,39,
+124,140,163,254,13,108,136,243,202,83,204,226,215,217,44,63,97,9,25,93,93,124,55,9,227,58,143,141,196,155,93,78,40,40,214,60,197,14,160,14,133,61,25,9,53,248,35,116,116,143,34,183,83,56,71,137,219,24,
+133,79,248,28,192,203,149,177,113,118,0,213,48,210,249,148,12,68,15,147,150,109,177,137,213,21,120,248,39,229,129,99,240,218,215,186,52,209,138,225,195,196,165,237,238,135,107,28,241,238,110,164,53,135,
+127,73,63,43,1,45,126,37,37,187,247,19,206,176,48,88,174,127,128,221,136,140,106,8,92,171,103,13,140,37,30,68,210,99,48,253,81,51,202,151,88,3,206,103,215,65,174,237,47,186,159,68,66,72,206,58,239,52,
+48,215,247,21,119,119,196,255,89,189,156,128,190,133,86,122,247,135,247,238,210,51,179,248,123,38,219,217,115,202,31,129,99,231,139,87,156,68,185,251,154,134,175,1,215,216,135,175,195,243,231,12,73,90,
+248,120,143,233,181,78,50,176,105,133,253,230,187,179,136,127,255,179,227,144,217,178,135,120,61,111,127,51,18,113,42,106,242,55,22,74,78,190,68,98,238,53,146,131,31,140,90,98,14,98,128,181,16,168,251,
+87,124,139,167,112,140,191,200,128,12,184,163,190,201,45,207,15,131,176,137,221,196,125,176,171,214,121,108,132,249,150,98,35,199,163,247,230,16,207,26,23,127,131,18,107,153,76,207,136,140,88,147,138,
+196,162,121,174,53,24,121,37,153,151,42,153,204,142,36,134,144,86,131,178,5,18,31,103,63,75,29,71,133,103,97,8,61,7,122,76,178,71,34,202,171,228,181,206,186,108,156,75,251,221,95,66,198,83,221,227,146,
+18,223,95,25,203,163,14,35,44,95,72,232,107,113,66,125,126,202,144,19,112,198,128,159,125,181,96,166,222,249,243,194,165,236,147,184,198,62,101,245,157,98,87,83,145,149,191,132,202,20,154,220,13,151,43,
+156,203,228,3,49,35,99,47,168,163,18,106,177,222,190,1,173,4,109,244,134,92,156,243,100,192,187,203,71,232,38,31,73,209,124,196,183,243,225,173,235,115,49,191,243,228,122,147,126,237,133,48,154,75,251,
+182,182,160,104,210,42,180,128,209,95,139,113,190,254,245,241,230,254,129,51,172,193,15,165,47,176,140,110,187,234,236,82,88,4,100,40,85,128,53,101,5,113,120,30,160,96,158,108,36,113,73,92,94,232,18,137,
+237,199,133,174,195,255,240,249,93,99,255,31,42,63,146,151,246,109,219,49,84,214,104,198,123,49,69,219,236,239,57,71,202,147,82,236,182,137,160,116,88,72,161,65,62,5,99,174,159,101,212,27,85,192,83,70,
+124,33,116,12,243,93,196,168,215,127,220,205,172,5,142,185,126,192,117,102,199,160,30,102,199,23,61,204,166,79,187,91,248,159,111,23,144,132,114,74,20,200,110,70,62,209,202,140,39,241,215,177,62,216,110,
+61,12,33,134,254,67,23,90,180,75,252,133,46,225,83,157,173,1,221,175,173,80,229,62,133,247,86,255,100,41,173,57,8,145,108,78,8,34,25,23,152,165,34,209,35,146,91,200,34,57,31,226,220,134,223,45,249,135,
+119,130,190,30,115,40,15,11,179,35,193,204,161,52,58,216,93,44,130,86,121,36,191,224,26,251,72,106,243,63,60,151,141,165,122,97,144,177,39,79,91,228,135,191,88,195,229,141,111,164,39,28,146,13,244,68,
+66,213,167,193,62,130,226,178,29,137,103,91,228,14,84,214,43,128,56,202,27,46,15,124,211,65,152,216,237,190,94,118,174,175,228,155,140,122,78,48,246,250,87,133,96,31,18,119,255,152,2,41,25,250,164,104,
+28,180,96,169,232,235,189,49,203,204,54,160,157,77,128,0,254,248,72,75,243,222,93,13,60,117,1,36,255,84,200,163,142,64,42,229,79,220,234,158,78,208,120,171,48,76,137,85,201,4,208,67,234,101,32,157,182,
+1,146,168,16,82,98,226,11,197,16,231,207,237,87,200,38,104,161,255,243,156,249,57,24,51,25,247,170,137,133,125,180,115,59,237,13,123,105,119,163,132,169,35,62,198,79,22,97,229,52,130,21,223,221,50,126,
+123,201,205,56,146,206,63,20,150,128,122,124,208,74,190,112,145,242,33,74,174,35,39,19,139,179,5,123,99,238,241,65,105,192,53,246,65,169,43,245,30,124,105,254,108,38,167,141,157,11,109,18,107,30,26,56,
+211,8,85,162,66,149,241,36,69,95,31,177,200,99,113,49,4,133,9,73,228,0,47,109,99,220,17,240,182,170,208,82,45,179,40,9,116,109,25,89,140,118,179,138,5,125,124,221,150,93,211,134,149,132,24,217,110,155,
+195,72,4,171,187,243,195,41,230,222,143,167,153,71,41,26,18,230,62,41,26,134,201,36,78,107,60,252,147,185,159,239,244,166,38,64,200,28,133,108,26,19,107,143,241,26,30,85,5,91,73,32,160,236,51,90,92,71,
+73,91,97,242,253,69,253,22,90,97,216,165,35,235,1,243,111,38,22,81,155,20,78,66,138,162,79,107,200,57,94,104,148,29,36,35,245,117,45,176,170,60,118,112,250,62,232,102,232,182,222,168,146,85,9,100,223,
+135,49,158,70,30,68,196,118,197,46,2,26,138,33,85,178,92,85,180,74,204,10,211,190,20,194,50,139,132,225,153,47,187,52,143,125,146,64,22,250,19,22,194,106,76,33,120,145,172,163,192,127,44,82,173,130,87,
+14,112,29,91,64,166,71,231,220,25,65,230,40,137,46,57,196,125,42,135,35,61,43,49,174,93,159,221,226,49,55,138,48,87,37,2,104,185,146,114,26,112,141,125,202,233,58,170,87,202,65,17,212,93,162,152,21,242,
+130,88,246,180,165,155,77,171,231,199,154,122,176,43,182,164,178,115,149,94,120,107,144,98,77,31,96,121,18,107,208,194,48,60,206,3,93,138,177,43,83,56,183,199,187,150,157,197,11,110,93,13,163,233,149,
+122,64,40,243,168,244,30,3,60,98,198,95,166,35,133,53,79,80,125,219,174,223,56,91,40,133,75,111,174,166,96,73,30,168,69,98,156,149,216,244,156,72,70,189,44,57,2,221,243,15,224,214,27,247,29,109,250,112,
+158,78,156,207,62,6,139,136,242,4,10,45,249,39,4,157,251,176,45,39,117,110,16,62,67,8,211,52,127,246,23,243,218,79,170,0,62,35,138,219,219,92,128,119,39,162,34,51,61,95,82,82,31,234,5,167,37,230,114,146,
+186,21,239,31,106,90,60,55,198,52,122,106,180,217,162,74,89,12,92,173,36,160,155,193,76,12,81,31,52,165,146,217,247,65,7,173,24,223,253,24,222,251,174,168,224,193,167,179,224,222,205,2,170,138,106,233,
+232,233,111,33,125,211,51,241,251,118,213,61,227,98,161,162,201,136,60,112,45,158,45,9,99,217,197,130,115,12,24,183,194,188,60,124,145,121,138,36,187,16,85,86,79,140,235,97,140,187,160,155,157,133,233,
+231,121,53,19,186,188,62,193,234,184,22,9,244,183,72,198,235,251,105,89,16,58,83,109,43,9,43,164,148,220,205,187,127,63,75,3,174,177,63,79,38,133,28,89,177,82,54,3,187,110,95,120,68,221,113,182,203,216,
+200,192,201,136,242,185,169,77,69,115,117,93,226,220,122,217,84,205,110,141,45,221,183,240,118,157,151,79,14,152,45,144,226,247,199,188,176,60,21,215,56,199,202,3,247,247,12,179,17,50,104,80,30,180,138,
+104,147,89,108,210,177,195,144,183,239,136,146,155,31,223,217,192,122,225,167,249,238,120,42,70,95,166,76,126,179,42,85,49,12,5,240,72,95,128,161,82,222,241,49,157,67,37,251,92,251,56,97,33,127,209,98,
+48,250,137,214,166,128,60,67,158,109,14,30,237,43,156,103,131,176,221,92,183,28,52,14,194,184,251,96,164,206,115,121,147,6,42,239,87,51,19,21,7,157,224,119,139,40,254,154,161,10,89,63,17,95,124,94,161,
+125,188,58,107,93,45,249,118,147,218,17,136,238,32,131,48,231,220,215,14,56,133,254,88,180,217,22,164,105,44,178,177,179,249,252,222,198,190,93,139,109,54,237,213,187,116,153,156,56,122,119,190,19,255,
+95,213,39,104,151,163,112,83,11,241,211,112,205,163,242,238,197,13,68,177,219,41,65,106,209,107,55,10,211,234,160,35,201,41,239,248,234,92,39,252,16,54,246,126,188,11,176,133,108,34,66,41,21,212,34,203,
+121,4,161,124,226,243,233,230,69,244,94,141,26,10,187,51,228,247,39,188,99,213,11,206,165,114,106,181,199,119,143,115,141,169,240,35,173,18,78,223,62,243,73,243,232,213,213,76,133,34,156,11,57,10,181,
+135,115,45,127,61,120,238,193,243,55,103,23,152,156,142,220,191,39,175,1,151,8,45,121,29,157,51,71,40,4,114,85,237,226,230,18,133,21,248,249,24,198,221,18,132,97,108,154,83,68,212,175,199,229,150,0,205,
+41,149,63,137,181,223,140,97,42,195,139,92,157,2,153,43,169,34,149,65,21,228,113,203,238,35,166,36,173,211,170,242,226,118,198,235,86,200,71,156,248,165,168,154,173,13,12,177,21,61,119,133,25,119,68,4,
+93,187,217,174,151,163,48,70,197,89,194,223,251,199,151,43,240,189,198,149,10,217,62,190,71,56,87,14,138,119,138,65,42,118,83,139,242,230,221,219,235,153,226,36,93,37,251,49,16,7,121,201,43,82,228,83,
+27,227,172,226,39,127,209,243,116,226,126,246,96,92,14,19,7,80,47,227,162,156,231,230,86,229,77,127,193,50,41,248,145,177,216,204,253,235,185,170,149,200,111,239,69,9,86,133,24,20,198,16,47,141,108,84,
+46,244,210,176,226,197,60,203,153,93,136,188,211,161,84,120,218,133,136,197,233,49,22,208,178,120,247,201,137,248,91,244,124,162,42,56,130,222,115,176,224,137,186,248,234,6,37,204,123,60,159,138,150,28,
+217,78,62,37,3,122,174,88,52,47,100,108,133,45,81,91,82,178,135,154,128,88,145,141,145,79,144,94,252,63,21,248,111,141,93,75,244,164,162,47,141,97,94,114,15,90,172,229,149,231,202,150,193,84,99,87,113,
+31,197,99,47,116,171,225,89,236,144,61,44,6,90,74,117,174,122,20,61,53,96,119,98,245,207,162,112,140,241,41,199,189,53,193,163,23,180,54,19,58,209,120,175,133,20,238,20,70,187,60,99,220,159,170,102,21,
+187,109,130,126,161,2,69,114,13,120,246,58,236,224,52,7,187,209,64,59,3,207,127,144,123,208,2,175,66,45,253,237,153,235,107,197,97,76,221,203,181,78,49,16,229,139,231,51,173,217,113,56,122,80,168,234,
+24,8,131,138,44,38,77,168,122,78,201,62,173,201,141,243,185,252,119,151,8,237,92,30,189,36,238,221,54,86,247,11,135,164,197,245,79,40,185,39,143,221,10,47,157,63,60,211,63,196,227,124,47,177,99,157,219,
+72,238,239,58,206,105,250,238,189,100,156,5,67,191,243,96,196,19,190,39,255,199,213,33,90,172,20,70,208,174,70,139,155,127,250,193,119,47,124,41,254,115,171,153,188,115,13,245,67,246,79,190,138,61,84,
+184,253,205,176,52,102,198,72,173,31,208,53,78,199,175,228,166,139,255,243,233,88,237,86,226,195,94,253,169,135,133,123,79,6,230,110,239,53,145,200,150,239,118,206,122,70,66,48,14,250,71,215,143,159,248,
+78,76,207,73,233,223,206,41,62,186,103,71,103,73,141,185,66,114,78,176,40,185,123,240,215,67,160,115,32,185,177,112,255,30,87,3,174,177,119,103,196,5,175,1,25,37,209,240,138,19,71,93,188,254,161,18,88,
+161,158,110,45,203,154,193,176,121,6,219,232,229,130,87,168,171,128,84,169,1,215,216,167,202,97,113,111,42,37,53,112,136,152,117,189,39,70,153,197,226,141,17,196,18,215,50,51,73,222,197,239,92,99,137,
+219,92,113,53,112,62,104,192,77,208,158,15,163,232,62,67,216,26,176,97,18,194,19,42,6,43,73,149,238,152,190,109,93,67,31,182,86,221,19,164,38,13,184,158,125,106,26,13,247,94,92,13,184,26,112,53,16,37,
+13,184,158,125,148,20,235,158,214,213,128,171,1,87,3,169,73,3,174,177,79,77,163,225,222,139,171,1,87,3,174,6,162,164,1,215,216,71,73,177,238,105,93,13,184,26,112,53,144,154,52,224,26,251,212,52,26,238,
+189,184,26,112,53,224,106,32,74,26,112,141,125,148,20,235,158,214,213,128,171,1,87,3,169,73,3,174,177,79,77,163,225,222,139,171,1,87,3,174,6,162,164,1,215,216,71,73,177,238,105,93,13,184,26,112,53,144,
+154,52,224,26,251,212,52,26,238,189,184,26,112,53,224,106,32,74,26,112,141,125,148,20,235,158,214,213,128,171,1,87,3,169,73,3,255,7,228,28,107,163,151,61,200,252,0,0,0,0,73,69,78,68,174,66,96,130,0,0};
+
+const char* CompressorAudioProcessorEditor::qmul_png2 = (const char*) resource_CompressorAudioProcessorEditor_qmul_png2;
+const int CompressorAudioProcessorEditor::qmul_png2Size = 23512;
+
+// JUCER_RESOURCE: knobstrip_png, 160459, "knobstrip.png"
+static const unsigned char resource_CompressorAudioProcessorEditor_knobstrip_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,60,0,0,11,184,8,6,0,0,0,189,218,219,70,0,0,0,1,115,82,71,66,0,
+174,206,28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,32,99,72,82,77,0,0,122,38,0,0,128,132,0,0,250,0,0,0,128,232,0,0,117,48,0,0,234,96,0,0,58,152,0,0,23,112,156,186,81,60,0,0,255,142,73,68,
+65,84,120,94,236,221,7,184,221,85,149,254,113,122,17,66,239,24,170,212,80,2,132,222,123,7,169,161,247,94,21,5,69,41,2,98,69,68,197,142,221,209,65,84,20,105,34,132,20,66,34,138,56,214,41,204,56,227,232,
+52,203,252,71,69,177,238,255,251,57,220,117,231,112,185,33,55,36,55,185,97,78,158,231,247,156,219,115,214,222,107,175,189,246,222,239,119,175,5,91,107,11,252,159,250,199,224,255,75,207,92,49,246,254,251,
+239,95,227,174,187,238,218,237,243,159,255,252,241,159,249,204,103,46,248,232,71,63,122,249,7,63,248,193,203,111,189,245,214,139,110,185,229,150,19,223,250,214,183,238,241,134,55,188,225,165,115,163,225,
+135,197,224,105,211,166,173,49,105,210,164,211,31,124,240,193,119,125,237,107,95,251,252,195,15,63,124,79,190,246,149,199,30,123,236,43,223,248,198,55,238,206,235,61,83,167,78,189,247,161,135,30,186,55,
+13,113,239,167,62,245,169,123,223,249,206,119,222,119,221,117,215,221,249,186,215,189,238,189,175,124,229,43,207,206,191,209,25,106,11,205,233,70,152,35,6,255,240,135,63,92,228,251,223,255,254,74,223,
+250,214,183,142,248,230,55,191,121,235,19,79,60,241,165,39,159,124,242,43,255,252,207,255,124,255,191,252,203,191,60,242,79,255,244,79,211,191,247,189,239,61,26,67,39,167,33,38,62,240,192,3,15,223,119,
+223,125,15,223,123,239,189,147,191,250,213,175,62,50,97,194,132,233,143,60,242,200,55,242,58,237,206,59,239,156,144,222,127,224,245,175,127,253,61,23,93,116,209,135,78,59,237,180,99,143,56,226,136,85,
+247,219,111,191,69,231,132,241,179,101,112,140,90,228,239,254,238,239,214,136,193,39,253,224,7,63,248,120,140,187,255,223,255,253,223,239,255,233,79,127,58,229,111,255,246,111,31,158,50,101,202,3,159,
+254,244,167,39,188,233,77,111,154,118,249,229,151,127,231,146,75,46,249,251,243,206,59,239,71,233,189,31,159,113,198,25,63,62,245,212,83,127,116,202,41,167,252,67,158,239,229,107,143,93,113,197,21,147,
+111,190,249,230,137,127,245,87,127,245,104,12,159,254,177,143,125,236,225,27,111,188,241,225,115,207,61,247,179,71,31,125,244,89,123,236,177,199,58,91,110,185,229,98,179,99,248,11,54,248,31,254,225,31,
+86,139,193,7,231,245,131,255,246,111,255,246,192,207,126,246,179,7,126,242,147,159,76,72,47,223,23,35,31,186,234,170,171,190,119,254,249,231,255,34,61,244,187,195,14,59,236,233,189,247,222,251,79,187,
+237,182,91,219,117,215,93,219,254,251,239,223,121,124,188,203,46,187,252,37,95,255,99,190,255,116,190,246,187,60,191,60,248,224,131,127,152,70,152,124,253,245,215,79,184,237,182,219,30,253,192,7,62,48,
+229,154,107,174,153,124,194,9,39,124,42,63,123,204,214,91,111,189,86,220,125,193,23,98,248,44,27,28,247,92,228,71,63,250,209,166,255,248,143,255,248,218,244,228,253,191,252,229,47,31,200,235,3,113,229,
+123,227,138,83,94,245,170,87,253,123,222,108,219,113,199,29,219,14,59,236,208,14,56,224,128,150,222,108,233,165,254,231,109,111,123,91,75,160,106,103,157,117,86,59,243,204,51,91,26,165,29,119,220,113,
+45,110,219,249,189,237,182,219,174,237,185,231,158,109,175,189,246,250,143,124,109,122,60,99,66,126,103,106,122,255,145,184,249,164,24,125,227,166,155,110,58,110,165,149,86,90,114,86,141,158,37,131,99,
+236,210,25,151,251,252,235,191,254,235,77,49,244,222,95,252,226,23,15,125,247,187,223,189,255,19,159,248,196,148,215,190,246,181,63,57,254,248,227,255,180,243,206,59,183,244,68,139,241,237,226,139,47,
+110,151,94,122,105,231,121,197,43,94,209,255,241,187,223,253,238,246,174,119,189,171,93,112,193,5,45,46,222,226,206,157,70,137,139,183,19,79,60,177,221,112,195,13,109,252,248,241,109,167,157,118,106,249,
+123,127,218,126,251,237,255,45,198,79,207,207,79,138,225,211,94,243,154,215,76,142,209,31,94,111,189,245,142,92,117,213,85,87,156,149,224,54,100,131,211,163,43,196,216,241,113,219,219,126,253,235,95,63,
+244,31,255,241,31,247,39,224,60,144,55,247,143,233,189,223,102,124,181,67,14,57,164,157,115,206,57,45,189,220,18,161,91,220,186,101,236,182,140,205,206,235,171,95,253,234,206,247,50,29,53,70,167,183,90,
+220,254,89,70,51,62,110,220,49,252,168,163,142,234,184,190,70,140,183,252,118,179,205,54,251,167,184,254,164,252,189,71,222,248,198,55,78,207,255,121,199,234,171,175,126,222,178,203,46,43,162,47,60,148,
+222,30,146,193,125,198,158,18,35,63,253,155,223,252,102,250,143,127,252,227,251,18,88,38,165,165,127,190,239,190,251,182,131,14,58,168,99,232,101,151,93,214,49,238,202,43,175,108,183,223,126,123,231,141,
+103,154,105,233,253,150,159,237,24,237,103,222,243,158,247,180,76,67,237,194,11,47,236,24,204,221,185,183,94,78,116,110,49,166,227,37,122,57,193,170,37,6,180,125,246,217,167,165,167,219,230,155,111,254,
+243,177,99,199,78,203,239,76,126,223,251,222,247,157,244,244,93,203,47,191,252,43,150,88,98,137,117,98,244,34,51,51,122,166,6,247,185,241,120,198,62,245,212,83,143,39,80,221,151,32,50,53,111,252,183,229,
+190,220,149,49,12,213,171,9,48,157,30,188,231,158,123,58,6,107,132,204,173,29,23,231,198,137,218,29,163,244,166,49,124,250,233,167,119,30,46,253,142,119,188,163,211,243,25,30,237,216,99,143,237,24,156,
+105,169,29,122,232,161,157,120,32,208,197,232,223,174,177,198,26,211,242,51,19,63,252,225,15,255,112,219,109,183,189,59,6,95,180,208,66,11,173,25,163,159,119,250,122,94,131,5,40,99,150,27,235,89,198,190,
+247,189,239,157,150,55,254,123,255,249,29,119,220,209,233,17,134,94,125,245,213,237,218,107,175,237,127,24,254,229,47,127,185,99,224,129,7,30,216,18,121,59,15,111,208,123,39,157,116,82,103,8,232,189,195,
+15,63,188,243,61,6,11,102,2,88,25,123,228,145,71,118,190,239,103,189,242,22,110,30,247,126,122,133,21,86,152,150,198,152,248,150,183,188,229,187,27,108,176,193,157,49,246,164,60,43,60,159,123,63,175,193,
+162,177,0,101,204,114,99,61,203,88,227,149,27,126,232,67,31,234,244,34,67,147,26,118,30,189,171,39,245,138,113,200,45,53,14,131,24,119,204,49,199,116,162,178,72,206,40,227,212,207,190,252,229,47,239,24,
+172,167,25,231,107,101,172,222,245,251,188,196,247,13,35,239,97,163,141,54,122,122,153,101,150,97,244,228,52,236,99,171,172,178,202,39,99,236,94,121,150,158,81,32,155,161,193,230,89,83,143,104,44,64,25,
+179,229,198,140,21,124,184,171,94,76,146,208,49,86,235,115,69,111,200,20,227,141,235,173,250,121,110,95,174,109,252,250,58,183,102,132,30,175,158,213,40,92,89,99,148,103,212,88,247,183,19,184,58,211,22,
+163,215,93,119,221,167,18,169,167,230,119,31,73,3,77,29,53,106,212,45,49,118,108,158,37,7,155,171,7,53,88,6,37,169,48,207,154,122,68,99,1,202,252,40,184,148,177,122,54,249,111,203,226,160,51,246,184,46,
+67,189,158,124,242,201,157,6,41,151,55,142,69,233,204,169,157,96,101,58,18,232,24,172,199,25,92,227,150,87,48,190,130,150,96,102,92,51,86,240,202,20,213,49,118,247,221,119,239,188,142,30,61,250,231,153,
+162,30,206,223,154,158,169,236,209,69,22,89,228,220,24,187,122,158,231,100,101,131,26,44,93,148,65,73,42,204,179,166,30,255,153,177,199,88,99,182,140,213,179,122,77,15,112,89,143,239,113,109,6,139,206,
+21,192,146,43,119,198,104,25,237,251,31,249,200,71,154,68,196,239,51,82,175,114,111,110,236,255,211,251,254,190,134,100,104,25,43,107,75,150,214,49,218,124,29,119,126,50,223,155,144,161,50,109,205,53,
+215,252,66,140,221,41,207,178,3,199,243,115,12,182,16,144,27,75,23,101,80,146,10,243,172,96,35,26,151,177,12,213,187,130,18,23,243,125,61,81,227,216,207,113,245,44,24,218,183,191,253,237,150,213,82,203,
+2,161,227,13,140,52,23,39,194,118,30,211,20,15,121,243,155,223,220,25,255,12,246,247,140,125,174,93,99,94,111,122,250,82,210,154,159,59,95,75,16,123,106,157,117,214,233,184,118,62,159,190,228,146,75,94,
+25,99,77,85,75,116,79,85,207,49,216,170,199,66,64,110,44,93,148,65,137,142,230,85,111,74,52,174,0,165,167,184,175,168,233,235,122,149,11,235,81,70,102,1,209,255,100,89,216,49,90,47,223,125,247,221,237,
+115,159,251,92,203,186,184,19,248,100,93,89,36,116,50,44,143,158,55,142,245,42,23,214,160,101,180,175,233,89,189,42,117,213,211,98,133,175,175,181,214,90,255,154,185,250,129,12,143,71,147,144,220,29,99,
+119,28,24,181,159,99,176,37,158,85,143,133,128,220,88,186,232,15,222,116,211,77,45,235,215,150,245,107,123,251,219,223,222,9,80,53,102,245,108,25,203,240,68,243,150,191,209,50,165,181,196,130,246,247,
+127,255,247,45,127,183,211,219,19,39,78,236,68,118,13,168,167,165,160,146,16,134,242,152,74,84,244,44,67,185,48,183,21,177,253,63,34,191,249,159,209,26,154,23,248,92,47,199,216,63,198,208,41,105,156,71,
+243,241,180,69,23,93,244,178,24,44,11,235,207,185,159,99,176,245,172,37,158,85,143,133,128,63,38,184,8,58,230,214,79,126,242,147,157,158,50,150,181,170,49,155,85,77,167,103,171,247,179,171,209,210,96,
+45,83,90,203,212,214,18,237,219,223,252,205,223,180,199,31,127,188,101,61,220,178,22,238,207,196,222,255,254,247,119,26,147,177,198,190,134,244,127,25,207,12,173,177,42,203,18,8,5,77,175,188,206,247,183,
+217,102,155,150,204,171,243,202,248,76,85,63,141,241,95,75,131,61,146,41,235,142,24,187,113,119,47,63,203,96,59,21,22,239,214,179,150,120,230,74,173,44,104,24,147,122,209,155,18,109,5,20,1,166,2,148,113,
+200,61,255,250,175,255,186,101,206,110,249,27,157,135,209,122,59,67,165,227,230,198,113,25,108,252,38,145,233,4,50,127,91,131,10,114,12,246,112,107,222,197,147,178,36,236,24,38,51,51,206,77,75,101,108,
+214,200,205,163,3,52,76,166,170,7,51,11,124,99,181,213,86,155,20,99,247,205,179,70,158,197,59,27,150,221,3,218,182,140,157,10,139,119,235,89,75,181,238,105,72,15,122,83,146,2,127,92,75,123,163,26,131,
+49,140,211,179,12,142,151,116,158,4,191,206,215,18,249,91,34,126,199,59,50,205,117,122,152,59,27,239,130,21,15,169,168,206,232,50,188,190,54,110,220,184,54,102,204,152,206,255,43,65,17,197,53,0,67,183,
+216,98,139,206,107,82,204,142,199,197,224,239,166,67,166,102,140,79,89,120,225,133,175,139,177,235,229,25,245,28,131,237,65,217,150,177,83,97,241,46,40,104,77,61,234,63,102,172,143,43,115,242,185,175,
+139,198,2,84,119,143,150,193,73,90,154,135,91,251,153,175,127,253,235,45,91,60,141,219,39,249,111,89,227,118,198,47,87,214,112,181,208,40,163,53,132,33,195,219,54,217,100,147,182,241,198,27,119,122,157,
+135,49,180,140,221,106,171,173,58,94,96,236,39,215,254,89,220,250,33,137,72,230,228,207,197,216,49,121,44,35,23,126,86,15,219,112,179,7,101,91,198,78,5,195,172,101,101,72,12,243,136,150,130,133,49,230,
+205,120,99,211,167,79,239,24,195,117,141,89,15,227,203,216,255,252,207,255,236,124,79,0,19,188,44,29,243,127,116,166,35,115,48,47,233,54,152,225,254,174,215,154,17,188,102,234,105,73,48,58,27,4,140,54,
+134,245,122,25,203,11,184,127,92,253,169,52,206,132,196,158,111,38,112,61,220,151,121,117,220,186,223,96,91,169,118,23,109,184,217,131,178,45,227,141,88,217,116,7,19,127,80,67,72,11,189,161,108,179,54,
+83,78,54,233,58,6,37,97,233,68,101,6,114,101,70,255,215,127,253,87,167,1,124,141,91,155,154,178,83,217,233,93,211,17,79,41,131,203,147,106,213,229,255,247,152,25,252,191,107,175,189,118,203,66,161,51,
+23,139,204,122,157,107,51,214,99,24,198,237,127,251,178,151,189,76,222,255,173,229,150,91,110,74,12,61,48,207,186,121,150,234,55,216,190,177,173,84,187,139,54,220,236,65,249,79,146,67,119,130,76,122,191,
+211,43,50,31,137,65,5,22,223,211,195,34,176,192,196,112,70,49,60,141,215,49,90,15,27,203,220,220,215,69,234,143,127,252,227,157,177,171,231,42,253,212,192,62,231,226,150,143,12,53,247,107,24,83,151,239,
+189,244,165,47,149,74,118,140,99,52,23,215,243,122,89,16,243,245,4,211,63,166,81,158,72,128,123,44,175,12,62,63,207,70,121,150,233,55,216,38,185,125,99,91,169,118,23,77,7,122,145,75,215,24,246,134,140,
+29,115,98,229,198,230,102,115,107,246,153,91,166,180,78,111,155,111,191,243,157,239,180,36,48,29,3,25,93,134,11,108,2,151,8,237,239,9,132,149,180,104,0,17,155,145,30,70,26,231,245,152,194,18,144,218,202,
+43,175,108,156,118,130,148,207,51,21,117,122,217,231,122,56,195,237,47,113,245,31,38,23,159,154,70,16,169,175,233,27,199,43,244,27,236,68,192,38,185,125,99,91,169,90,175,12,54,231,218,169,144,70,74,249,
+76,23,166,42,153,150,55,152,253,229,78,82,146,96,215,49,62,67,163,61,250,232,163,157,0,101,204,234,249,164,171,253,70,107,12,217,85,237,110,24,199,230,98,233,38,163,68,111,201,139,215,108,213,118,50,50,
+159,155,34,185,116,166,155,142,43,11,82,201,174,58,70,235,101,189,91,155,18,9,102,79,102,174,158,28,59,38,198,216,155,242,108,158,103,149,126,131,29,127,56,17,176,73,110,223,88,15,75,56,24,197,56,143,
+6,96,176,192,37,122,91,245,248,190,249,87,6,38,79,150,69,213,199,166,31,1,170,26,65,207,50,86,80,227,178,198,63,99,36,51,201,217,59,145,187,30,195,199,35,5,53,133,105,156,21,87,92,177,227,210,217,237,
+232,24,206,133,203,197,245,114,141,97,217,88,92,252,71,121,175,19,147,169,49,248,214,60,91,228,89,173,223,96,103,61,142,63,156,8,216,36,103,176,165,155,101,25,183,102,160,6,176,62,53,69,212,18,207,171,
+104,235,141,125,241,139,95,236,188,57,111,84,2,226,205,139,1,94,25,38,149,244,179,198,166,241,109,238,230,254,147,39,79,238,76,85,26,71,163,137,11,26,205,90,187,26,208,248,77,0,234,244,110,214,191,157,
+158,101,96,53,192,250,235,175,223,113,107,61,44,63,72,99,252,40,1,118,98,18,20,6,191,167,63,82,87,226,225,96,203,89,143,227,15,39,2,92,90,210,193,141,25,205,48,13,96,58,176,83,161,183,53,128,150,215,195,
+213,83,54,238,202,29,185,103,237,80,50,82,250,40,250,50,90,170,89,137,137,113,206,120,238,47,0,138,7,188,162,226,131,215,175,124,229,43,29,151,102,112,182,118,250,199,112,150,130,45,249,115,203,74,169,
+243,53,185,131,196,36,238,254,100,222,235,164,52,64,185,244,216,78,198,85,6,59,197,115,176,229,172,199,241,135,19,1,105,156,133,186,181,42,215,53,142,181,158,49,92,139,119,198,86,80,49,230,106,169,39,
+232,24,155,181,97,87,211,141,36,66,79,27,227,22,23,89,149,117,166,46,61,110,90,51,222,53,134,158,55,4,196,129,106,0,61,207,157,179,45,219,25,191,122,216,231,26,129,139,103,115,190,99,176,33,151,222,254,
+161,196,35,174,205,96,65,235,217,6,59,178,116,138,231,96,203,89,143,227,15,61,194,24,46,106,222,20,104,244,186,30,174,19,3,65,203,88,52,117,120,101,164,241,89,171,31,145,184,54,3,188,250,190,191,165,7,
+37,43,166,44,79,69,114,134,235,113,211,155,94,55,230,77,121,26,232,179,159,253,108,199,88,46,45,103,54,134,69,108,61,158,83,136,142,123,75,68,50,147,252,57,175,79,100,153,248,245,36,42,162,180,105,201,
+24,94,189,191,135,157,207,58,178,116,138,231,96,203,89,143,30,149,241,24,191,12,53,7,27,195,230,97,91,50,30,46,207,216,154,82,24,90,83,77,205,175,149,130,250,158,70,51,174,185,169,158,172,140,204,107,
+25,46,65,97,180,200,46,7,103,188,222,150,54,26,199,220,215,244,99,204,114,103,15,215,150,133,201,169,147,52,253,62,189,61,53,177,232,241,52,208,228,24,122,72,95,148,94,245,89,169,165,243,89,71,150,78,
+241,28,108,85,162,110,29,90,71,33,220,217,226,65,106,105,15,202,171,30,229,13,94,25,91,105,97,101,79,190,198,248,108,167,118,60,70,79,9,82,230,237,74,67,107,158,54,174,25,239,235,92,92,143,243,4,13,196,
+176,108,186,119,242,103,27,0,146,14,95,227,214,146,17,25,152,180,55,195,241,119,49,120,66,122,250,177,228,210,15,197,88,219,61,155,230,89,241,89,6,59,140,118,62,235,200,50,17,238,151,90,81,136,23,4,60,
+198,175,141,53,137,135,214,174,109,86,65,77,239,73,65,43,15,102,116,25,92,203,74,227,218,56,23,201,77,89,122,173,210,80,43,44,99,185,22,29,149,151,251,186,204,205,208,97,44,23,230,206,222,155,94,101,172,
+135,59,155,154,188,183,140,227,95,166,65,30,140,241,147,98,240,237,49,116,135,60,214,197,203,61,203,96,39,239,14,163,157,207,58,178,148,164,235,81,134,122,24,175,71,69,106,95,103,60,247,246,212,6,64,45,
+235,106,181,35,88,9,84,26,196,24,23,176,108,224,11,64,214,198,178,49,43,41,61,90,233,39,163,107,29,205,112,211,150,158,228,206,2,147,169,71,68,46,99,189,154,166,140,95,6,231,123,63,200,123,156,28,247,
+126,56,167,17,111,140,161,219,229,121,89,158,81,207,50,152,204,192,201,187,195,104,231,179,125,71,150,29,215,149,82,118,111,163,214,246,170,117,105,101,95,26,65,131,72,59,171,135,185,179,5,130,104,45,
+130,155,190,24,44,59,147,83,11,74,198,169,49,203,200,218,56,208,179,162,45,227,196,13,189,43,56,137,194,220,217,56,46,131,245,180,40,93,11,138,44,28,30,206,123,153,158,64,54,33,70,30,154,103,155,60,206,
+148,151,124,150,193,249,194,66,100,6,78,222,29,70,59,159,245,199,237,108,232,77,46,108,231,82,164,53,45,249,154,134,176,138,49,222,205,147,150,108,12,175,113,204,205,43,160,25,191,82,197,50,88,10,154,
+29,150,206,84,100,156,154,166,106,19,129,177,121,63,45,187,143,29,99,179,13,219,201,149,25,165,39,245,54,247,102,44,119,54,126,109,37,103,170,250,207,60,15,100,243,111,210,82,75,45,101,139,199,70,158,
+180,114,213,60,139,60,103,79,139,166,130,204,192,201,123,198,192,116,231,179,2,129,185,88,47,25,151,122,81,171,27,199,12,246,90,27,228,50,52,223,51,150,185,185,96,102,252,89,121,73,72,172,146,24,108,231,
+210,50,81,224,210,203,140,46,215,230,222,26,154,177,12,99,176,220,153,177,122,152,129,92,92,170,89,217,151,213,82,130,213,159,19,169,167,199,157,167,164,81,166,100,252,190,38,70,110,159,199,74,201,30,
+245,66,207,49,152,128,132,166,130,204,192,201,187,195,104,61,104,12,154,150,108,158,213,89,143,177,204,205,141,239,234,93,187,137,214,204,122,184,182,93,25,107,234,18,176,228,204,89,153,117,50,39,169,
+164,4,67,47,155,162,106,27,200,152,245,55,24,90,15,99,185,119,220,181,211,171,245,152,147,185,186,120,19,35,127,150,69,132,96,53,57,238,124,87,12,180,14,230,206,118,46,59,251,211,207,49,152,90,134,128,
+132,166,130,204,32,61,55,221,97,180,30,100,40,35,245,96,237,71,219,70,149,91,155,182,4,12,17,180,178,32,145,189,230,94,75,61,89,153,212,83,212,246,117,70,75,40,42,171,226,226,188,161,166,31,110,92,61,
+203,115,172,138,186,141,173,133,131,105,42,255,231,239,211,24,143,231,253,76,206,252,60,117,177,197,22,187,42,70,238,156,199,246,206,202,220,121,80,131,125,145,90,134,128,132,166,130,204,192,201,59,67,
+244,180,0,229,225,230,198,12,131,245,174,212,83,126,173,183,37,4,198,153,55,107,217,230,231,25,89,75,188,114,69,191,103,62,182,208,16,39,202,80,110,170,215,140,89,30,163,247,4,169,193,140,221,112,195,
+13,59,83,84,92,249,223,226,214,147,242,158,166,164,119,63,31,3,37,27,122,215,78,199,210,149,66,15,122,182,68,26,68,45,67,64,66,83,65,102,224,228,221,184,18,156,202,216,26,183,149,95,155,182,100,100,122,
+214,247,204,139,178,31,17,84,111,232,161,250,88,254,235,97,132,116,177,198,170,20,209,212,227,255,170,49,203,88,13,80,6,251,91,30,127,155,177,105,216,95,229,111,79,203,251,122,52,31,63,146,169,200,6,188,
+222,221,44,207,42,121,250,15,201,103,120,92,74,26,68,45,67,64,66,83,65,102,224,228,157,107,213,145,165,222,21,192,4,173,58,254,208,83,166,44,141,192,253,37,248,53,238,68,85,70,154,78,106,236,49,214,215,
+25,197,53,121,146,177,202,88,159,51,140,161,188,162,214,195,190,230,231,253,237,52,206,31,210,136,223,206,207,79,142,241,83,162,4,176,20,172,222,93,71,239,230,233,151,56,205,208,96,63,68,26,68,45,67,64,
+66,83,65,102,224,228,221,230,153,57,186,162,116,247,89,15,247,171,72,109,108,219,39,246,230,189,185,209,187,142,110,11,29,186,80,91,100,219,69,218,194,219,46,220,22,58,120,161,54,122,151,103,246,167,68,
+95,189,213,167,227,120,206,120,101,180,0,198,3,24,43,42,103,216,252,49,13,248,221,252,206,148,196,148,105,105,188,79,228,125,31,151,71,162,33,179,90,169,187,119,103,56,134,203,223,233,160,72,131,168,101,
+8,72,104,42,200,12,156,188,27,207,162,54,227,251,84,54,157,177,102,220,213,137,0,3,170,113,252,204,38,123,110,210,22,59,97,177,182,192,41,11,180,136,19,218,162,71,47,218,214,217,118,157,206,120,151,57,
+25,2,122,177,59,161,24,232,198,140,22,35,210,240,206,145,190,23,79,116,254,245,55,9,112,142,72,47,234,114,101,219,178,47,25,40,114,153,169,168,133,14,138,52,136,90,134,128,132,166,130,204,192,201,187,
+94,150,104,232,157,129,198,50,90,111,85,240,18,92,214,26,179,86,91,252,248,197,219,2,103,198,224,147,99,240,254,139,182,21,215,92,177,227,210,92,92,208,50,86,125,204,232,50,214,194,192,163,65,52,98,254,
+230,31,244,44,99,211,232,63,200,207,57,41,20,149,201,29,182,202,195,149,71,229,121,142,148,105,166,6,231,151,22,162,131,34,13,162,150,33,32,161,169,32,51,112,242,46,184,232,69,70,115,205,58,254,168,158,
+230,122,190,166,7,55,220,104,195,54,234,244,81,109,129,215,197,224,11,23,104,75,236,185,68,167,71,187,199,182,143,125,173,50,40,57,178,237,27,203,62,94,18,99,127,21,151,126,130,27,235,217,62,99,29,167,
+28,144,103,92,158,245,243,44,151,103,80,9,211,76,13,238,83,204,47,76,7,69,26,68,45,67,64,226,224,153,204,192,201,187,195,232,58,153,215,179,222,156,6,48,31,215,156,236,149,241,163,79,29,221,22,248,88,
+12,126,235,2,109,185,93,151,235,95,203,50,204,163,39,185,173,113,202,43,252,61,49,33,141,249,251,24,254,147,120,214,163,2,148,49,219,231,198,122,150,177,198,173,140,202,184,157,161,0,117,72,6,247,25,189,
+72,159,14,234,36,106,25,219,39,52,21,100,6,121,147,83,251,14,163,255,104,108,75,74,244,124,25,171,183,203,229,183,56,120,139,182,192,195,49,248,11,11,180,181,183,91,187,211,123,92,181,206,141,172,113,
+77,93,26,204,223,137,177,127,142,119,252,87,34,253,55,243,247,38,154,122,226,214,147,250,2,148,49,203,141,245,44,99,37,24,75,228,153,161,240,116,200,6,247,25,189,104,254,24,29,212,94,212,50,4,36,52,21,
+122,219,201,123,198,213,20,231,179,198,174,232,44,138,123,211,21,212,140,191,157,118,217,169,45,48,101,129,182,240,221,11,183,205,182,220,172,227,238,26,67,164,151,193,89,160,120,36,37,249,250,127,198,
+139,76,135,95,179,221,154,28,96,178,121,182,111,234,17,141,205,181,198,44,55,214,179,140,125,94,81,249,44,25,92,238,157,63,106,110,27,75,45,67,64,66,83,65,102,224,228,221,97,180,243,89,71,150,114,91,7,
+91,206,122,28,127,56,17,176,216,120,233,39,146,52,188,111,189,78,170,218,55,181,253,37,107,234,223,219,169,176,120,207,144,248,94,122,244,33,171,30,11,1,185,177,116,81,6,213,151,84,152,103,185,176,196,
+98,157,190,49,187,216,243,245,236,243,102,90,51,213,43,90,117,60,163,131,34,13,218,137,128,132,166,130,204,192,201,187,195,104,231,179,142,44,157,226,57,216,114,214,227,248,195,137,128,77,242,24,240,47,
+249,222,143,51,215,63,105,195,205,30,148,109,25,59,21,22,239,214,179,150,120,86,61,22,2,125,185,49,67,245,170,148,209,60,107,234,17,141,103,170,177,156,45,131,251,122,122,65,193,33,143,101,151,86,222,
+145,166,130,204,192,201,187,195,104,227,220,145,165,83,60,7,91,206,122,28,127,56,17,200,88,159,20,119,127,52,61,203,59,190,110,195,205,30,148,109,25,59,21,22,239,214,179,125,75,60,171,158,50,180,122,149,
+11,191,36,207,144,84,180,179,109,112,255,31,112,200,252,204,216,49,182,45,195,180,252,190,78,222,29,70,59,159,117,100,233,20,207,193,150,179,30,227,209,137,128,77,114,251,198,182,82,237,46,218,112,179,
+7,213,183,45,99,167,194,226,221,122,86,143,90,245,88,8,200,141,13,169,23,196,64,204,242,24,158,145,187,107,233,62,55,103,56,87,35,51,240,38,199,230,209,67,246,134,109,136,59,216,114,214,35,231,245,177,
+175,249,30,119,181,187,104,195,205,248,100,164,157,10,209,87,67,138,192,29,67,243,188,32,249,255,76,83,203,153,141,229,193,190,223,103,248,226,121,53,182,200,12,24,175,103,188,113,13,192,8,155,226,26,
+162,30,159,251,186,173,84,30,98,195,205,30,148,109,25,67,134,7,13,121,156,62,223,251,158,99,61,60,19,227,151,202,27,94,38,143,222,231,146,171,245,53,132,198,240,8,126,140,211,64,203,245,53,150,160,184,
+72,158,57,202,46,13,171,193,47,196,67,134,251,119,122,6,15,71,11,247,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,67,67,251,135,60,15,247,216,195,30,123,216,99,15,123,236,97,177,135,206,163,
+74,5,84,170,160,23,45,123,72,251,69,187,249,162,100,15,73,30,60,133,230,208,93,123,40,115,139,61,44,69,223,124,203,30,146,64,20,218,83,76,4,245,142,211,125,186,73,186,14,15,13,54,163,157,39,23,130,75,
+36,51,95,177,135,20,62,140,173,94,37,1,166,151,164,197,34,46,163,227,160,223,32,36,255,210,151,190,212,81,247,80,239,81,246,144,66,208,130,112,121,58,146,17,207,30,234,173,50,150,193,52,28,164,131,69,
+166,209,77,82,234,80,198,122,232,162,233,171,137,92,104,183,72,154,52,0,101,60,109,180,160,230,244,193,65,157,6,24,113,236,33,181,93,137,74,189,97,34,150,130,182,232,175,8,207,244,52,185,33,33,11,233,
+33,53,15,99,245,46,93,117,1,151,69,174,118,227,120,117,31,200,136,97,15,141,67,26,44,46,75,157,195,192,110,85,29,145,168,94,6,129,232,97,6,211,107,49,150,186,135,44,81,163,209,117,213,216,167,212,117,
+114,232,113,56,231,88,102,196,176,135,122,136,206,170,116,207,133,227,21,138,231,115,6,27,211,213,195,68,166,140,165,156,39,60,173,96,87,81,93,111,214,141,47,14,232,70,12,123,72,64,42,2,23,178,195,184,
+110,254,176,20,178,165,125,174,49,76,70,220,205,31,210,85,235,221,98,162,76,95,84,6,142,91,71,4,123,104,204,50,86,79,137,192,165,151,52,102,169,96,245,110,225,120,94,53,8,163,141,99,106,90,74,123,189,
+75,165,215,205,14,119,19,166,48,192,226,165,234,12,185,112,249,121,194,30,114,63,114,126,128,6,229,58,163,60,162,179,94,46,163,225,120,37,250,6,114,80,211,26,243,230,104,194,241,82,207,23,108,89,189,92,
+23,162,208,110,210,111,21,123,200,232,121,194,30,26,123,100,192,140,96,180,249,150,225,122,146,88,148,58,150,75,131,57,52,128,222,39,53,20,216,140,95,191,47,88,49,180,251,26,27,6,214,53,55,60,201,207,
+16,187,21,123,40,144,205,85,246,80,203,203,150,204,159,34,174,94,46,10,165,46,58,40,241,55,247,46,224,82,143,131,54,32,184,34,51,133,110,209,165,197,16,123,173,241,204,213,75,96,238,255,44,21,94,55,123,
+72,48,51,172,236,33,73,2,99,5,21,111,66,132,150,72,72,31,61,82,71,129,201,20,84,42,89,189,171,183,129,28,60,192,184,151,101,137,204,69,151,214,141,47,140,52,39,51,148,216,148,203,75,74,232,180,103,196,
+30,50,120,216,216,67,178,5,105,100,177,76,82,66,61,134,34,227,170,136,50,13,64,30,220,237,238,220,156,193,230,100,176,101,97,246,53,255,150,174,90,182,197,213,253,93,4,121,55,38,100,12,147,53,9,96,20,
+62,115,133,61,148,1,21,123,104,245,131,99,16,113,37,18,176,59,92,146,30,132,231,125,225,11,95,232,199,234,40,103,141,117,6,235,65,61,44,104,137,212,94,77,81,245,248,154,225,34,49,241,181,130,48,233,54,
+9,81,203,224,185,194,30,50,24,201,226,97,108,93,64,98,17,224,99,50,97,1,201,227,205,250,154,94,42,222,223,184,21,208,36,32,133,217,73,51,53,142,134,34,39,214,104,5,96,130,49,13,27,218,45,226,212,234,225,
+185,202,30,90,44,72,253,244,130,222,169,158,2,98,153,87,61,92,146,155,122,138,248,22,144,228,207,22,22,133,224,137,238,198,60,247,7,102,155,163,173,166,44,46,12,15,13,97,217,185,244,210,75,119,216,7,2,
+83,140,131,49,91,236,161,177,45,120,201,204,134,149,61,100,152,49,87,50,127,1,166,22,1,198,102,49,75,117,165,13,227,185,190,233,171,48,188,130,177,138,57,132,247,232,121,67,160,26,128,36,25,3,81,226,114,
+26,206,185,202,30,146,252,91,178,89,217,48,178,88,253,186,139,167,104,180,186,92,204,171,72,235,222,14,189,39,130,215,252,92,249,55,55,183,132,196,64,212,170,138,241,162,190,94,151,91,151,132,120,32,123,
+72,163,73,182,168,33,242,115,195,199,30,146,253,51,88,111,154,86,234,74,169,162,210,42,18,115,105,222,192,157,17,45,130,151,36,68,47,23,119,104,218,170,235,47,244,54,195,81,47,53,214,33,128,51,99,15,45,
+48,134,157,61,212,171,101,44,67,235,41,148,199,247,69,100,227,93,48,50,125,25,179,140,171,213,20,195,245,184,249,186,150,146,114,115,136,15,111,240,59,2,214,204,216,67,235,230,97,103,15,5,47,6,21,126,
+87,6,235,237,186,181,193,24,23,173,173,144,184,167,109,30,220,161,94,173,132,68,16,211,219,140,22,212,52,136,37,165,149,152,29,20,90,106,65,107,48,246,176,244,212,246,196,230,10,123,104,207,153,203,153,
+151,139,74,235,198,240,76,73,166,48,115,115,55,119,104,65,193,181,187,65,203,234,101,41,169,70,17,184,136,198,103,198,30,34,104,24,60,236,236,33,152,195,166,27,248,3,231,208,237,202,162,178,96,37,113,
+48,79,155,98,100,97,130,145,20,147,65,92,152,107,23,108,89,160,101,145,165,120,168,17,195,30,202,171,139,99,178,233,38,3,227,202,166,35,129,172,166,44,25,147,68,194,220,106,177,33,16,25,159,92,182,86,
+85,181,37,100,209,161,209,140,121,65,177,92,121,102,236,33,196,40,63,51,252,236,161,181,105,237,48,22,64,205,88,227,218,102,158,71,116,22,176,76,73,122,216,180,83,200,187,241,202,125,11,180,228,154,17,
+164,117,230,93,198,122,70,28,123,104,43,149,16,92,166,227,156,72,176,210,187,50,47,143,197,62,20,158,193,198,48,131,101,88,166,158,218,206,53,158,45,48,162,162,237,60,197,29,202,159,103,198,30,246,1,37,
+255,53,207,216,67,43,25,233,167,185,183,48,90,238,9,253,145,47,115,233,186,202,70,178,193,189,77,85,26,73,54,197,88,65,10,221,194,216,249,130,61,180,37,195,61,69,112,103,71,222,188,105,69,30,220,125,131,
+139,19,10,199,44,53,207,22,150,231,247,231,27,246,80,196,6,108,20,123,232,85,130,111,253,90,128,115,209,162,221,236,161,20,113,86,216,67,48,72,198,247,175,179,146,154,183,236,161,233,73,48,27,183,93,46,
+23,217,42,172,225,186,207,92,39,35,65,176,218,41,35,231,32,123,56,101,158,178,135,230,230,98,15,215,61,105,221,182,224,121,11,182,5,15,95,176,45,188,215,194,109,225,3,22,110,163,199,62,147,232,67,125,
+42,115,122,209,176,135,99,78,31,211,22,184,246,25,26,109,129,211,51,221,188,124,201,182,209,102,27,117,214,175,197,54,73,250,103,149,61,204,152,255,254,136,100,15,95,182,203,203,218,2,159,142,177,111,
+206,243,138,48,135,187,46,218,150,89,115,153,126,198,80,48,171,27,87,134,194,30,38,16,142,108,246,112,139,109,182,104,11,223,191,112,91,224,139,49,248,109,129,180,246,94,184,189,100,211,151,116,12,22,
+153,203,88,134,15,133,61,76,176,251,214,136,102,15,183,220,107,203,182,196,221,75,180,5,158,88,160,45,114,203,34,109,209,99,22,109,163,118,28,213,217,163,242,216,92,31,200,30,138,224,216,67,46,223,199,
+31,99,15,127,58,95,176,135,219,236,180,77,91,234,158,165,218,2,79,46,208,150,126,221,210,109,209,243,23,109,43,29,178,82,135,0,55,79,155,134,60,166,49,41,164,6,16,192,138,61,204,207,252,87,140,125,124,
+190,98,15,23,123,104,177,182,208,183,22,106,47,185,226,37,109,225,43,23,110,43,158,181,98,231,204,215,195,184,98,15,37,32,30,199,42,243,53,123,184,249,219,55,255,203,203,222,251,178,182,213,105,65,217,
+207,28,211,246,62,123,239,206,238,98,246,198,254,146,44,236,207,216,195,184,238,139,139,61,140,187,254,93,166,158,127,201,252,251,175,238,172,115,141,155,155,205,94,180,236,97,84,119,211,146,125,77,205,
+190,19,224,121,162,59,235,240,137,61,246,240,153,43,161,122,236,97,26,161,199,30,206,42,103,53,100,69,252,172,254,225,46,154,28,120,217,99,15,95,72,3,206,137,223,25,214,30,158,19,111,112,78,255,141,185,
+98,112,143,61,236,177,135,61,246,176,199,30,246,216,195,30,123,216,99,15,7,157,114,135,52,15,247,234,30,246,234,30,246,234,30,62,111,221,195,98,15,95,212,117,15,137,93,170,118,41,246,144,78,179,42,211,
+194,241,108,232,205,215,117,15,73,153,138,61,164,215,96,108,85,168,69,159,145,30,251,153,98,15,221,116,58,95,215,61,236,134,44,41,97,157,238,147,55,16,153,209,93,57,16,39,71,170,155,200,201,10,203,197,
+231,187,186,135,101,44,185,33,41,49,105,18,240,131,178,142,188,129,212,129,48,141,193,52,154,122,151,250,199,207,242,6,138,129,249,130,61,164,220,41,153,112,73,251,245,36,189,21,193,74,25,173,135,137,
+90,124,143,220,129,216,165,8,53,122,16,234,31,238,61,226,217,195,194,241,244,40,233,47,23,166,189,162,150,173,18,98,190,7,2,169,218,105,244,208,84,244,84,122,122,152,244,95,175,19,172,66,13,136,89,168,
+131,70,92,221,67,50,67,90,44,110,219,141,227,149,194,206,215,170,151,141,99,106,90,141,66,168,70,210,52,35,224,18,50,79,199,49,98,234,30,150,62,154,150,146,244,72,15,22,85,170,87,11,195,171,138,121,116,
+88,165,135,46,224,146,232,20,42,80,192,101,149,21,163,217,20,15,28,184,213,85,236,35,166,238,97,213,108,232,198,241,40,235,186,139,85,48,190,2,151,168,77,160,86,252,161,72,14,211,41,36,183,106,142,139,
+222,206,136,201,14,189,114,239,121,86,247,176,216,67,99,144,88,180,202,133,233,197,129,149,241,138,65,244,117,90,74,81,154,80,28,192,97,236,18,176,85,208,235,158,183,137,217,186,25,195,121,90,247,176,
+234,178,208,78,22,153,70,63,73,205,206,189,75,67,169,103,7,22,124,100,176,241,139,124,41,254,176,84,184,5,91,86,162,34,120,185,221,120,32,123,216,87,134,119,238,212,61,44,24,210,43,87,44,101,157,232,235,
+169,90,136,166,34,211,82,41,222,141,111,110,109,8,192,117,140,91,226,113,52,90,233,172,187,65,75,70,251,156,55,65,107,231,25,123,72,245,14,199,171,177,86,162,81,64,6,28,79,15,50,186,2,89,73,253,49,136,
+92,222,207,209,79,107,172,114,229,170,239,210,93,187,148,193,149,162,186,251,163,192,172,146,18,115,241,97,103,15,205,137,117,31,135,214,47,52,7,142,103,94,45,20,15,138,99,108,203,172,74,8,142,50,229,
+234,134,1,149,45,105,191,100,133,59,123,170,100,104,225,181,133,255,84,101,46,74,190,193,234,30,14,43,123,104,110,180,0,0,91,214,149,20,230,82,193,11,146,39,16,81,204,22,134,103,250,209,227,12,175,68,
+196,247,101,99,21,149,25,198,173,235,209,235,166,39,175,85,119,205,43,117,207,60,97,15,45,241,0,151,197,5,138,180,178,37,65,200,199,230,86,159,75,70,170,17,0,90,146,13,10,120,111,94,47,22,96,89,101,59,
+101,90,36,196,158,170,114,233,99,174,111,172,207,136,61,228,218,195,86,247,176,216,67,9,191,132,131,226,157,123,138,182,130,144,207,11,199,171,186,163,104,181,42,172,44,109,20,204,244,188,72,45,151,214,
+56,197,49,106,68,57,181,185,89,227,129,187,234,239,211,117,17,164,146,55,117,179,135,26,98,88,235,30,86,121,64,61,194,128,234,17,137,127,145,163,198,103,221,201,209,141,206,234,233,170,66,45,168,9,114,
+85,220,209,247,36,35,117,161,137,215,202,179,129,34,130,22,61,117,213,46,157,171,236,161,59,53,244,90,141,179,74,9,43,192,8,70,245,8,70,26,67,111,9,88,130,152,0,38,122,51,90,210,82,75,70,247,3,232,121,
+196,105,53,0,68,8,108,105,252,206,147,186,135,197,30,86,161,244,186,169,165,162,108,69,93,223,247,177,239,115,111,1,205,148,36,219,50,69,121,170,214,161,132,197,28,238,242,19,238,110,188,87,69,121,192,
+199,226,139,47,222,65,3,114,33,255,115,234,30,206,53,246,80,41,177,129,69,147,187,167,24,189,174,151,185,190,113,169,215,36,29,240,29,217,87,213,58,228,226,122,29,117,106,254,54,157,21,101,202,221,205,
+187,122,152,59,235,225,25,213,61,156,43,236,33,215,150,20,116,51,135,85,186,179,170,92,114,101,83,152,57,90,15,50,206,20,197,165,43,11,171,59,123,184,184,41,204,99,145,193,35,52,148,94,124,62,246,144,
+24,117,216,217,67,247,227,72,68,236,67,153,170,234,122,10,189,42,104,213,13,74,214,187,230,105,46,202,96,233,101,247,69,8,213,211,140,174,21,85,25,46,79,23,23,140,223,121,202,30,74,64,202,88,146,127,27,
+114,213,179,92,185,110,104,40,140,71,47,21,104,201,165,25,87,72,45,247,214,219,5,90,202,198,252,140,96,102,27,104,40,117,15,187,216,195,239,15,91,221,67,128,86,213,81,171,241,42,131,210,187,85,26,219,
+180,34,88,73,61,235,226,3,65,139,81,12,174,77,130,110,156,214,215,229,220,182,131,252,31,92,89,15,63,95,221,195,186,204,100,174,212,61,36,247,181,251,88,105,32,87,238,166,210,184,179,241,203,224,90,73,
+49,186,238,236,169,141,130,186,205,197,43,151,230,53,133,5,140,24,246,208,56,182,54,117,55,14,32,171,42,187,51,88,178,160,119,205,167,238,248,48,221,48,88,52,182,101,171,39,45,25,11,180,228,242,18,25,
+83,148,228,6,242,51,226,217,67,227,186,138,160,115,103,144,165,181,175,29,14,235,230,50,152,209,230,224,50,90,42,153,162,22,109,193,5,23,236,55,148,177,67,97,15,231,121,221,67,111,64,174,45,47,38,229,
+183,202,145,172,152,98,24,92,23,21,213,237,76,34,51,154,45,53,89,250,33,203,161,214,61,236,91,15,171,123,248,173,121,90,247,176,187,22,90,81,105,78,27,36,30,30,1,201,92,107,170,178,141,195,192,130,44,
+37,24,51,171,123,40,175,174,186,135,105,208,121,92,247,112,223,125,218,134,155,110,216,1,43,1,88,94,139,84,41,160,3,143,8,227,97,92,1,150,149,34,14,181,238,225,136,98,15,55,188,106,195,182,216,197,139,
+181,213,54,92,173,141,94,107,116,255,181,50,149,30,214,171,158,125,33,117,15,33,187,93,117,15,231,61,123,184,197,251,82,46,236,179,129,179,110,120,6,195,91,112,252,130,109,189,77,215,235,184,161,245,172,
+177,87,213,243,228,198,47,144,61,252,94,95,221,195,233,243,188,238,225,250,175,91,191,45,240,245,24,11,195,187,126,129,182,252,97,203,119,220,155,75,215,30,148,69,124,85,211,155,239,217,195,209,111,73,
+5,188,191,143,177,83,243,124,48,144,229,238,75,182,165,54,10,238,190,113,112,247,245,150,239,175,107,56,43,236,161,49,59,98,235,30,174,249,230,53,219,2,255,30,99,191,191,64,91,252,29,139,183,165,15,93,
+186,45,185,207,146,109,145,67,23,105,163,198,141,234,16,227,197,29,86,181,247,161,176,135,35,182,238,225,154,215,196,224,159,46,208,22,155,176,88,27,117,233,168,182,236,41,203,182,101,79,90,182,45,118,
+193,98,109,185,125,150,235,208,227,51,98,15,171,238,225,32,236,225,180,17,91,247,112,217,79,44,219,22,248,167,5,218,50,111,93,166,45,127,78,170,69,159,159,194,231,151,173,208,150,184,113,137,182,234,113,
+171,118,10,66,90,225,152,175,7,178,135,221,117,15,231,27,246,112,221,79,173,219,150,156,178,100,123,201,219,94,210,150,184,118,137,182,212,155,151,106,75,223,20,216,242,189,139,182,149,47,90,249,57,236,
+161,85,215,243,176,135,147,70,124,221,195,77,55,223,244,231,99,246,31,243,187,184,224,211,187,30,177,235,95,118,63,127,247,182,243,171,118,110,219,92,177,77,219,247,188,125,95,156,236,97,54,200,39,102,
+60,62,214,87,248,177,191,238,225,139,157,61,124,34,11,135,111,116,215,61,236,177,135,189,186,135,189,186,135,189,186,135,47,132,90,27,146,34,254,133,252,225,145,250,59,61,131,135,163,103,122,236,97,143,
+61,236,177,135,61,246,176,199,30,246,216,195,30,123,216,99,15,135,84,52,61,167,123,75,231,116,111,124,78,232,63,253,212,83,79,61,158,67,236,251,34,22,155,26,233,225,111,137,181,171,4,66,149,24,41,200,
+131,96,205,153,17,69,0,61,38,153,162,195,53,172,82,157,33,59,251,165,112,119,185,167,135,240,219,81,43,136,171,24,38,71,177,36,75,110,80,164,223,112,153,88,54,240,127,155,29,207,105,249,153,137,81,252,
+253,48,103,80,119,47,177,196,18,23,229,228,113,205,220,25,178,232,11,46,154,30,99,23,137,177,251,228,252,246,182,223,252,230,55,211,25,27,113,202,180,188,241,223,251,207,157,249,150,8,148,60,201,201,127,
+61,12,119,0,206,64,167,135,7,31,124,112,231,129,231,104,36,231,200,246,176,32,59,78,248,125,143,193,100,18,69,168,149,126,164,84,6,94,105,72,246,223,127,127,155,127,79,231,40,117,90,26,99,98,206,147,191,
+155,179,171,59,99,236,73,125,133,217,23,158,145,209,207,155,75,7,202,216,52,50,254,155,126,253,235,95,63,148,19,249,78,207,50,214,225,55,165,58,93,165,94,172,10,28,197,63,232,73,189,66,190,111,83,78,227,
+48,104,96,221,195,23,37,123,200,104,39,249,207,199,30,58,55,238,46,3,72,44,163,119,93,142,93,158,113,254,249,231,119,26,217,25,50,158,137,88,92,195,103,175,236,169,92,38,56,53,94,241,136,171,170,34,90,
+187,37,189,60,54,207,146,121,22,28,216,211,131,246,112,92,119,145,60,7,71,134,112,255,47,126,241,139,135,34,83,120,32,162,237,159,59,228,166,201,34,12,55,54,245,44,185,47,41,161,177,199,117,221,241,236,
+149,222,163,106,176,24,195,101,112,201,250,41,113,141,85,227,152,43,51,152,171,215,54,45,183,246,49,195,53,136,159,101,44,45,9,28,160,36,22,94,163,161,254,121,54,245,31,206,223,154,158,99,214,71,23,89,
+100,145,115,99,236,234,121,22,27,146,193,81,207,172,145,147,249,15,254,242,151,191,124,32,178,132,251,163,200,249,71,255,153,55,196,216,18,109,51,150,27,11,72,122,128,203,122,74,7,93,165,192,24,172,81,
+104,58,234,118,127,42,0,218,202,18,138,243,4,70,50,112,190,98,15,171,152,5,99,171,132,16,81,25,29,7,61,71,81,45,174,75,103,48,145,26,245,44,131,75,247,37,34,207,55,236,161,104,77,136,166,39,201,27,8,90,
+200,26,234,222,247,170,218,65,208,66,75,201,232,170,174,165,145,76,103,212,63,26,96,190,96,15,169,118,40,232,74,127,213,45,73,98,116,21,126,36,106,129,227,145,21,138,244,170,3,144,39,122,232,50,197,4,
+151,249,142,72,246,208,88,214,179,100,255,184,37,10,58,198,17,151,117,11,207,104,177,170,110,154,94,39,106,225,5,164,133,132,107,85,201,135,170,158,146,143,236,95,224,26,145,236,33,55,212,99,3,171,227,
+85,161,56,178,194,66,121,140,99,252,97,17,166,96,144,42,93,4,35,160,226,171,128,232,213,120,118,108,58,98,234,30,138,218,20,118,164,190,234,161,145,20,210,93,21,164,53,144,63,228,242,21,180,186,249,195,
+42,9,40,242,151,186,190,248,40,6,67,242,76,123,243,140,61,172,121,214,43,80,139,246,10,8,173,151,75,90,40,72,113,239,66,241,244,116,21,124,52,126,185,51,174,1,204,193,149,137,205,171,146,79,205,223,230,
+116,198,234,97,231,200,82,82,83,228,92,173,123,168,244,80,205,179,242,105,178,65,227,209,52,195,104,227,179,219,189,245,50,198,161,56,98,223,163,202,19,172,170,132,88,21,162,98,176,191,45,89,49,239,203,
+157,139,64,43,65,204,92,175,123,40,93,44,70,144,75,99,147,244,86,21,133,98,140,49,202,176,34,77,241,13,12,214,227,92,95,210,161,119,77,69,133,228,85,173,195,202,200,24,45,187,99,112,9,220,136,220,172,
+154,230,106,221,67,111,204,155,194,40,233,33,6,235,173,66,241,76,53,80,188,186,221,161,202,147,232,105,209,90,166,133,92,225,25,132,168,130,83,209,170,3,233,210,98,28,185,113,177,135,221,117,15,201,38,
+134,181,238,33,181,108,141,175,162,187,75,53,75,42,236,97,60,65,184,164,2,151,36,42,23,201,162,151,21,182,64,173,97,34,24,43,14,116,195,150,229,61,149,131,215,247,104,54,231,25,123,136,63,148,36,112,73,
+61,85,24,158,30,151,64,20,134,71,250,207,112,110,94,149,119,184,179,233,71,218,201,216,42,227,57,16,3,98,120,85,188,244,115,112,218,121,202,30,114,105,46,233,85,148,149,33,213,199,230,102,141,33,2,107,
+16,13,192,120,99,90,128,98,92,149,234,20,168,138,128,41,154,173,64,204,2,47,253,44,57,211,96,117,15,231,10,123,104,201,86,215,80,8,58,182,110,170,12,103,33,121,69,182,232,157,226,132,65,147,230,105,110,
+143,74,213,32,197,47,118,87,217,171,235,45,52,142,143,121,132,30,158,167,236,33,185,126,25,89,203,194,66,241,106,219,167,86,77,122,78,195,72,82,140,99,238,45,168,153,195,225,181,198,190,88,64,84,206,35,
+10,176,44,47,226,73,198,240,60,101,15,187,131,78,85,196,235,126,101,188,207,43,55,102,148,128,37,229,52,77,85,133,203,90,68,72,51,45,23,185,191,128,88,165,60,43,86,144,26,207,83,246,208,212,84,83,202,
+64,194,187,122,216,43,87,213,115,166,45,83,146,169,169,230,101,169,166,40,94,176,165,249,220,6,97,213,66,149,103,27,14,118,69,40,230,213,135,152,103,117,15,173,91,189,17,17,187,219,224,26,179,220,156,
+43,90,35,227,132,139,106,225,210,101,176,143,107,65,81,119,244,152,199,61,166,54,46,13,180,44,246,144,91,207,83,246,208,78,133,125,229,50,184,136,211,170,120,201,88,46,234,205,155,147,101,95,85,250,175,
+22,22,118,68,186,171,200,75,81,37,46,22,23,254,254,194,11,47,220,143,9,200,180,32,2,34,115,169,112,221,13,48,236,236,97,109,178,73,68,112,135,230,75,198,114,113,198,138,174,166,42,198,26,151,48,30,99,
+85,2,82,220,97,17,166,26,64,16,179,138,178,57,96,189,108,71,4,246,35,138,23,237,98,252,62,95,221,67,123,98,195,94,247,208,30,116,141,87,198,10,100,197,242,11,58,166,30,193,136,59,51,162,118,68,108,14,
+84,193,214,226,14,77,87,140,174,138,150,122,218,244,53,139,117,15,135,143,61,172,13,55,121,110,185,176,121,182,146,142,186,253,65,176,178,154,210,115,12,174,91,92,106,217,200,96,189,236,235,30,94,96,129,
+193,96,255,199,80,216,195,90,80,204,53,246,208,56,174,4,194,171,222,53,13,233,93,1,136,193,220,149,193,30,145,186,174,173,241,170,199,185,181,109,32,61,109,181,229,111,22,70,59,20,246,48,139,138,225,175,
+123,216,205,30,218,52,151,83,75,28,24,43,50,215,69,38,166,157,90,68,48,72,143,22,52,93,46,93,21,106,5,54,203,194,23,194,30,230,180,98,74,68,231,83,178,33,255,154,108,198,111,159,103,163,60,203,230,89,
+232,57,39,15,25,143,171,230,72,227,179,9,20,83,114,51,225,132,4,136,127,115,54,36,113,208,218,14,180,184,152,35,16,59,15,78,249,236,72,84,221,67,209,211,153,145,189,41,121,180,227,17,61,93,197,29,25,204,
+24,219,63,85,220,145,209,198,183,41,206,20,166,97,4,194,42,242,56,95,176,135,220,207,22,140,169,195,116,97,44,219,228,99,176,157,77,227,180,64,75,83,146,116,209,212,35,26,23,146,55,84,246,208,255,147,
+61,47,236,225,227,243,132,61,220,114,171,45,59,28,131,61,40,48,150,157,10,115,180,229,161,40,93,134,51,94,52,54,237,84,82,81,236,161,222,29,10,123,104,78,150,132,228,108,169,195,30,102,147,111,74,134,
+193,231,227,190,135,228,217,38,207,186,42,128,212,25,211,160,135,105,129,47,22,203,6,248,49,89,13,77,74,178,63,45,39,0,147,242,198,127,206,93,237,26,218,99,234,62,216,226,210,146,3,46,105,220,237,250,
+190,237,219,138,55,143,106,155,108,186,73,103,211,77,15,203,142,80,44,136,52,141,161,231,83,52,170,195,46,149,145,94,205,179,243,93,221,195,109,190,188,89,91,50,128,214,98,159,91,160,45,117,242,146,109,
+249,157,151,107,171,175,189,122,127,61,180,193,216,67,32,166,198,144,84,80,22,152,98,184,170,45,29,141,34,82,123,124,238,177,46,30,17,236,225,184,93,198,181,117,63,185,102,91,252,63,83,253,46,53,210,22,
+254,76,140,190,244,37,157,94,99,80,149,9,155,93,246,208,112,137,167,252,49,116,234,188,103,15,151,159,246,146,182,248,47,99,236,143,211,203,159,95,164,173,113,212,26,109,204,150,99,58,140,146,55,170,103,
+108,194,25,163,243,61,123,184,229,94,91,180,101,166,45,217,22,253,121,42,224,253,203,130,109,201,55,132,55,28,31,222,112,223,48,75,59,45,221,150,217,122,153,54,106,139,81,109,133,245,87,24,50,123,88,59,
+149,98,65,23,123,248,61,69,30,51,85,254,32,46,127,119,2,211,85,121,246,202,179,85,158,117,242,140,202,243,28,173,199,76,245,210,38,235,4,146,209,9,40,175,160,150,33,32,201,92,61,153,204,192,201,187,64,
+102,127,216,27,209,91,99,246,221,180,45,254,15,11,183,69,126,22,184,242,243,75,180,101,47,8,126,119,110,158,243,242,156,182,108,91,250,232,128,90,202,0,110,251,12,123,56,43,117,15,253,95,25,26,191,26,
+81,236,225,203,206,88,191,45,28,222,112,241,71,22,111,203,190,126,217,182,220,5,203,181,21,95,149,128,243,186,21,219,74,87,228,198,134,11,87,104,139,95,146,75,132,246,93,126,150,216,195,12,131,170,123,
+136,61,156,18,89,197,180,204,211,95,232,235,217,3,242,186,93,95,70,181,210,96,82,135,231,157,150,6,147,252,228,143,44,210,167,131,58,41,255,209,39,9,72,104,42,50,209,79,72,79,79,205,180,243,175,137,176,
+127,220,248,29,27,182,165,30,123,73,91,250,195,75,183,165,174,94,170,45,115,229,50,109,133,107,83,206,254,186,85,218,202,87,175,220,86,122,221,74,67,102,15,251,116,89,127,238,98,15,39,101,74,124,52,243,
+238,228,62,56,250,162,62,55,30,215,103,236,202,121,93,98,48,49,203,44,27,220,87,48,106,209,252,177,21,252,39,212,50,4,36,57,180,158,70,65,19,99,31,136,123,78,73,146,241,211,49,199,140,105,251,238,191,
+111,219,226,172,45,218,234,55,172,222,150,250,240,82,237,37,183,189,164,141,186,117,84,27,149,249,121,40,236,161,211,255,174,186,135,15,166,97,71,46,123,152,49,246,80,122,252,7,49,254,23,9,44,191,77,178,
+242,219,253,79,217,255,207,123,94,180,231,139,151,61,204,162,226,209,220,220,242,112,230,219,9,201,113,167,38,5,124,34,243,230,255,25,246,240,91,209,84,62,214,99,15,119,222,121,98,18,254,137,201,177,39,
+37,8,77,206,250,245,161,60,183,39,56,246,234,30,38,80,138,192,189,186,135,179,202,89,205,52,211,154,213,63,216,253,243,82,187,60,189,186,135,179,211,136,179,251,187,195,218,195,179,251,230,134,227,247,
+231,138,193,61,246,176,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,61,246,112,96,42,215,99,15,123,236,225,235,58,167,251,228,72,100,133,84,236,14,200,157,44,58,101,116,96,142,54,
+163,196,35,255,37,5,166,231,26,88,247,176,216,195,249,186,238,161,35,212,66,109,73,128,137,188,33,123,3,217,67,151,234,195,9,6,194,150,243,29,123,88,26,203,18,122,235,97,170,188,34,90,200,30,40,122,28,
+142,19,151,242,14,82,137,98,134,49,140,148,65,100,22,26,138,199,128,44,11,180,4,112,237,178,203,46,157,59,173,29,193,228,112,224,73,135,2,246,201,115,214,228,68,98,167,62,93,199,179,206,151,158,51,87,
+229,13,45,146,231,164,136,76,30,136,246,226,129,48,9,83,162,211,248,45,118,8,17,90,160,101,105,154,1,209,54,205,125,159,107,210,105,49,214,207,185,64,155,16,141,62,68,207,50,140,188,129,160,148,212,176,
+10,90,80,231,81,221,33,209,186,239,156,119,242,160,1,120,128,239,57,195,242,56,59,102,172,115,100,103,90,125,133,166,158,202,126,120,7,171,205,231,211,83,23,226,202,190,67,181,37,158,181,11,51,48,50,135,
+0,93,41,26,169,143,135,64,121,32,61,112,111,90,254,39,4,43,228,189,196,102,37,43,100,176,114,156,208,89,138,0,208,71,21,183,32,104,209,123,112,157,170,144,71,196,82,197,227,200,146,124,79,111,235,225,
+146,25,106,24,100,169,177,207,208,249,130,61,36,249,165,197,170,98,113,101,112,49,136,94,171,158,3,241,25,41,113,21,140,19,252,232,165,9,219,40,127,184,243,136,102,15,137,83,24,80,90,44,61,89,79,213,63,
+36,81,42,1,154,134,33,37,238,6,46,233,50,11,184,164,211,20,245,71,20,123,40,16,137,198,244,149,198,98,85,208,210,123,198,41,121,82,85,222,233,230,15,125,157,180,176,128,75,211,27,17,27,77,117,81,106,254,
+38,129,42,77,216,136,96,15,49,15,85,152,149,225,36,134,3,113,188,42,109,192,149,203,96,189,237,235,197,16,19,173,17,144,22,18,68,208,134,111,40,6,81,4,239,211,116,116,162,181,32,70,28,231,107,174,123,
+37,126,241,74,66,33,186,187,67,51,17,126,106,60,99,74,180,95,215,37,120,173,71,17,240,156,92,58,82,221,119,101,124,221,31,37,220,3,65,220,127,193,149,220,216,32,97,168,10,29,62,174,91,27,186,171,208,18,
+132,3,175,74,49,75,232,205,93,97,240,5,105,117,75,133,141,113,83,19,175,208,187,100,138,197,58,80,227,213,245,24,37,73,54,47,151,40,134,177,115,157,61,236,206,160,188,57,98,210,170,229,64,68,106,154,33,
+33,228,182,85,166,164,248,195,194,227,185,51,116,79,73,4,172,19,174,65,192,170,235,49,234,210,19,73,11,253,23,125,23,145,155,203,23,24,61,87,235,30,154,134,170,142,18,89,33,46,1,254,206,173,245,116,201,
+133,171,226,165,105,168,92,90,224,50,77,21,209,34,50,155,202,244,172,113,203,133,245,108,119,58,74,1,196,88,15,145,155,232,237,106,11,114,40,174,93,106,32,170,60,231,209,142,104,227,157,223,138,38,108,
+74,220,249,192,62,69,222,82,253,137,71,192,138,221,226,134,95,137,56,251,209,36,9,223,201,28,248,39,173,45,144,144,225,235,53,124,161,169,194,92,89,25,148,72,170,103,4,26,17,22,60,89,42,90,211,140,223,
+53,207,138,220,122,182,208,90,99,152,218,93,35,1,64,224,61,230,225,238,98,143,69,151,154,239,9,215,24,74,106,232,213,120,101,116,233,189,134,157,61,148,57,113,53,66,240,210,72,151,91,146,14,155,90,244,
+58,233,127,213,88,50,166,171,202,165,128,197,27,252,126,177,79,229,194,5,114,50,184,140,230,194,164,138,20,120,68,167,85,51,141,156,81,175,207,181,186,135,122,199,27,174,202,59,188,194,199,122,158,155,
+106,132,50,92,106,41,80,25,203,230,107,13,83,80,87,185,48,119,174,106,153,221,6,107,96,95,31,140,61,100,52,151,215,235,117,33,82,34,247,147,201,16,39,39,13,157,24,119,190,41,207,230,121,86,233,119,233,
+184,227,229,9,34,247,36,136,184,241,228,199,220,197,74,134,59,73,222,61,180,207,114,102,1,203,18,207,195,64,174,200,104,227,79,192,65,121,23,58,103,122,209,0,94,53,0,183,151,112,24,6,122,148,193,85,87,
+173,138,181,250,186,143,11,154,102,108,141,107,6,207,83,246,144,33,5,67,122,243,221,55,46,213,165,68,181,114,42,84,79,175,139,222,230,93,141,160,65,138,81,44,210,173,18,26,61,239,247,107,122,50,126,231,
+41,123,168,55,235,130,130,193,80,60,111,220,215,253,12,163,24,203,157,5,47,238,45,168,9,116,176,1,189,110,40,136,214,60,198,207,107,128,106,4,43,49,234,189,121,194,30,214,229,95,220,156,107,23,247,219,
+109,116,85,138,247,202,245,1,91,198,177,128,5,223,49,61,49,90,178,226,235,238,242,16,236,42,181,44,76,215,239,86,241,72,176,244,96,236,161,96,102,158,54,45,153,73,50,85,253,144,120,142,134,36,99,247,154,
+60,99,243,172,209,63,134,147,179,238,145,41,226,222,168,214,167,103,237,249,189,140,225,63,106,81,111,210,116,100,250,16,81,37,0,22,234,110,58,147,226,121,236,110,84,113,184,202,200,184,97,85,182,20,216,
+244,158,136,45,33,97,48,12,143,209,230,103,99,90,74,138,124,193,23,251,191,184,187,167,46,68,48,19,248,219,122,183,10,197,81,229,106,0,234,249,42,106,35,120,69,168,254,231,24,255,68,118,81,190,78,48,19,
+67,207,207,179,69,158,213,251,13,142,203,189,52,127,244,190,36,10,223,72,239,61,150,121,248,105,251,79,34,163,244,146,161,90,78,34,111,30,46,67,169,224,45,206,141,177,186,30,142,251,214,53,112,198,167,
+148,209,220,140,76,147,108,96,29,202,96,171,41,139,140,98,148,244,118,17,166,122,92,144,211,227,12,151,89,49,216,156,60,24,123,104,218,146,132,36,58,255,62,9,201,212,108,72,60,78,29,20,67,225,0,162,244,
+170,207,218,241,72,143,222,153,30,158,150,121,112,114,22,245,191,171,75,66,236,100,120,92,24,66,234,143,68,19,169,45,221,188,106,148,34,211,170,172,39,55,148,76,232,37,153,152,236,75,162,33,157,172,74,
+120,166,39,249,181,207,37,34,54,13,244,180,113,93,160,37,163,253,159,122,17,210,51,207,235,30,186,213,204,24,22,173,185,176,158,229,194,12,214,51,140,181,91,194,0,235,94,152,29,3,187,139,60,22,145,230,
+123,118,64,24,13,8,113,111,128,57,92,89,177,98,15,97,0,243,156,61,180,15,85,107,87,46,220,141,225,21,168,37,53,229,206,181,144,168,140,171,187,192,163,94,150,130,118,131,150,98,8,131,11,4,193,63,72,46,
+100,90,34,118,61,166,171,185,82,247,176,216,67,227,184,16,118,175,122,182,22,19,117,167,7,99,44,11,45,254,187,175,171,41,42,77,0,179,156,180,185,7,195,43,247,150,47,151,193,51,171,123,104,65,145,133,195,
+132,12,131,233,25,2,19,50,110,15,205,3,231,89,43,207,146,207,26,195,249,194,66,89,212,127,40,110,244,112,198,226,132,108,123,254,135,45,80,110,11,157,21,157,237,92,26,155,178,48,95,179,46,181,62,182,225,
+102,138,170,29,11,145,221,178,175,110,111,177,106,170,91,91,4,169,26,191,198,112,113,135,5,90,114,109,121,183,181,178,134,52,118,69,230,161,176,135,249,153,185,203,30,154,159,185,177,93,11,70,139,204,
+85,220,209,116,196,24,81,218,14,72,25,93,251,92,181,215,197,181,141,229,2,45,71,116,221,67,227,171,238,191,178,245,98,106,171,125,174,50,184,187,184,35,163,171,112,171,70,224,210,162,185,169,111,196,179,
+135,135,157,112,104,219,118,167,109,59,187,140,197,30,218,157,176,243,193,69,205,181,198,169,185,87,111,50,80,6,165,152,178,96,36,34,11,122,192,15,99,118,196,179,135,47,191,229,192,182,234,63,47,210,182,
+218,122,171,254,93,70,189,44,73,49,15,215,238,135,160,196,181,185,174,232,90,23,26,48,82,175,74,46,134,194,30,22,247,223,205,30,230,32,111,238,177,135,59,222,190,69,91,229,119,11,180,21,66,181,172,121,
+238,42,109,195,205,55,232,144,43,150,116,216,35,31,219,146,209,8,94,101,70,149,76,116,215,61,156,47,216,195,157,246,9,225,121,95,80,157,167,22,104,203,253,207,2,109,217,127,200,243,241,69,219,102,91,111,
+214,49,76,111,84,61,180,129,236,225,50,203,44,211,161,75,53,196,124,195,30,110,191,255,182,109,149,127,91,164,173,240,235,148,251,251,213,2,109,197,9,75,182,113,151,142,237,236,59,217,96,179,5,35,89,48,
+167,214,51,59,117,15,7,97,15,167,205,213,186,135,155,93,182,97,91,225,63,147,17,197,216,101,126,186,96,91,246,213,169,147,118,82,110,85,121,249,170,109,227,189,54,110,59,236,242,76,32,179,194,153,239,
+217,195,237,119,220,190,173,253,225,68,214,24,187,236,247,22,109,203,190,123,169,182,220,43,18,120,94,189,66,91,246,178,101,219,168,139,194,43,29,51,170,45,179,199,50,109,153,109,94,4,236,225,174,251,
+236,218,150,255,209,34,109,153,255,76,207,190,123,153,182,236,43,151,109,203,191,42,17,247,245,43,180,21,223,20,12,239,13,43,182,21,174,72,244,61,107,185,255,101,15,251,234,30,206,151,236,225,70,251,109,
+240,244,154,2,214,23,150,111,75,191,117,233,182,244,235,151,110,43,222,144,207,111,92,169,173,252,166,149,219,42,55,174,210,86,186,102,165,23,23,123,56,122,157,209,63,217,98,175,45,254,178,241,105,27,
+183,151,94,251,210,182,204,71,227,190,31,206,56,126,215,242,109,165,55,39,23,158,1,123,104,91,102,70,117,15,229,232,9,122,35,150,61,252,26,196,54,43,149,127,223,102,219,109,218,33,135,29,210,182,127,237,
+246,237,165,55,191,180,45,253,145,165,159,197,30,46,246,190,197,158,183,238,161,69,202,0,246,240,107,125,236,225,148,68,248,71,114,1,254,123,178,208,57,46,207,206,121,240,194,235,231,65,149,2,45,23,122,
+193,151,226,207,128,50,69,170,224,135,198,186,169,155,128,132,166,34,251,71,143,38,163,122,52,31,127,45,91,48,15,246,149,253,251,89,34,242,83,255,39,216,67,231,179,49,254,161,30,123,152,227,143,172,166,
+38,246,234,30,246,216,195,94,221,195,94,221,195,23,66,174,205,21,50,237,133,188,177,225,250,157,158,193,195,209,178,61,246,176,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,61,246,
+176,199,30,206,225,186,135,206,124,109,208,81,254,20,118,71,93,64,21,228,123,84,66,14,193,97,60,190,70,59,210,125,23,46,189,167,239,67,253,72,152,162,162,125,58,231,82,138,61,78,14,63,245,152,155,220,
+178,215,230,34,64,123,110,131,110,230,205,112,241,16,1,247,106,145,238,191,54,149,241,238,141,44,225,254,156,234,79,170,242,157,164,13,85,10,112,40,236,161,159,47,28,143,100,130,96,21,47,65,100,78,58,
+193,8,40,222,139,130,61,44,89,112,177,135,140,189,240,194,11,59,90,145,129,117,15,171,94,41,237,200,124,203,30,18,173,209,69,211,110,145,1,147,64,248,216,97,184,131,113,170,0,234,59,42,190,42,3,88,117,
+15,235,178,253,249,134,61,36,33,164,163,164,218,161,203,162,154,165,172,243,113,73,14,105,58,200,153,80,48,20,63,56,165,42,206,10,243,51,142,71,52,123,72,84,74,193,131,115,208,131,197,28,86,149,188,226,
+15,9,91,234,46,120,98,23,63,79,169,71,219,37,104,17,198,96,26,209,164,26,160,140,38,135,4,90,146,83,209,146,56,127,246,243,190,222,119,213,228,3,14,5,82,14,193,109,166,59,230,113,75,99,63,97,250,156,160,
+149,30,57,34,130,147,251,243,198,38,68,115,53,37,227,234,79,254,32,41,47,37,172,94,32,43,164,158,173,90,165,164,74,4,165,244,150,68,160,133,239,232,61,18,37,2,150,42,115,64,162,196,104,95,99,48,5,15,253,
+165,223,97,48,34,213,255,87,69,89,71,28,123,168,229,75,189,206,96,146,35,189,69,181,163,231,244,48,80,139,11,15,188,15,222,215,52,74,1,151,8,53,186,105,10,90,34,85,120,143,169,106,68,178,135,162,177,94,
+54,70,41,232,140,201,82,235,84,93,135,186,245,191,74,28,232,253,42,98,65,76,74,196,6,201,171,194,52,116,150,2,158,30,31,17,236,33,97,184,49,203,189,139,103,232,46,96,65,77,199,32,17,89,111,14,228,15,245,
+174,251,226,245,112,233,164,141,97,242,69,67,163,202,2,250,63,70,4,123,88,117,148,76,51,116,209,36,135,85,46,140,122,182,192,203,238,224,69,87,73,65,91,181,89,68,104,189,107,236,250,125,146,227,66,0,72,
+145,121,13,165,174,196,132,24,6,163,68,208,74,152,62,87,235,30,74,12,234,82,3,128,134,94,225,138,222,180,94,54,22,11,137,55,158,245,50,35,171,114,71,149,230,213,187,4,225,52,213,85,115,77,207,86,61,181,
+138,15,50,53,183,143,211,122,205,19,246,80,186,136,45,226,110,53,214,244,12,249,160,199,156,203,112,34,111,61,205,181,69,101,6,27,203,5,120,24,239,188,2,220,225,239,96,27,16,45,133,19,224,28,36,44,94,
+77,71,68,110,112,188,185,206,30,122,19,90,93,79,112,105,26,73,12,146,32,83,21,242,104,166,73,136,233,165,25,173,151,69,108,70,155,166,76,71,166,57,158,65,99,237,111,208,94,22,33,35,54,84,118,38,53,165,
+245,42,145,91,73,137,231,42,123,8,149,51,63,123,147,230,230,226,28,188,114,75,134,27,219,122,155,123,235,205,170,125,104,186,50,175,51,150,254,90,134,133,162,169,30,45,178,148,161,210,81,171,35,234,119,
+128,135,94,38,79,100,180,207,231,26,123,232,141,120,163,197,58,20,161,38,200,8,56,190,167,65,24,110,140,51,220,152,21,173,5,50,174,239,231,252,126,247,189,31,221,236,97,25,44,17,161,174,37,70,165,188,
+101,164,169,202,231,140,158,43,236,161,21,79,213,10,174,138,178,5,79,22,134,167,17,120,128,175,235,121,110,207,189,25,239,119,140,213,138,246,221,40,109,221,232,82,6,91,64,48,144,72,181,187,208,99,93,
+152,63,236,117,15,45,241,172,103,185,181,104,61,240,41,35,10,197,171,162,141,62,55,215,74,35,185,125,121,72,1,94,21,249,25,239,97,176,167,232,82,6,206,19,246,80,148,182,120,103,116,149,15,43,163,187,141,
+245,49,99,185,46,247,102,44,246,193,20,197,189,5,181,66,225,141,229,98,25,235,182,23,70,87,35,152,21,212,72,155,167,236,33,98,77,111,119,27,235,205,10,64,30,61,42,250,90,65,49,86,160,178,92,84,139,216,
+52,85,37,194,170,232,178,105,169,88,195,186,254,198,107,213,55,157,89,221,195,97,99,15,145,106,22,14,122,185,24,96,198,49,82,16,226,170,130,87,213,46,101,172,233,73,18,98,169,200,96,115,177,249,153,209,
+162,56,40,164,230,99,141,164,199,171,215,253,93,187,37,243,140,61,148,234,121,184,116,221,185,193,80,46,89,56,172,0,101,197,83,197,152,5,43,209,217,60,252,243,159,255,188,51,23,155,158,24,109,202,98,180,
+140,203,239,200,165,61,230,103,127,143,225,214,192,243,156,61,148,211,26,159,85,88,149,75,150,11,215,205,15,210,76,185,181,49,91,137,71,101,92,140,54,55,3,179,228,212,54,5,25,93,160,165,233,76,195,241,
+24,138,250,153,177,135,214,232,201,200,126,151,121,122,66,196,113,143,185,134,61,27,0,174,154,218,52,207,138,207,218,0,72,164,124,111,110,102,152,144,204,137,112,236,151,198,3,131,172,73,61,86,71,54,216,
+108,187,184,13,169,238,191,18,65,69,92,198,114,225,34,211,16,165,224,14,185,114,113,135,86,77,22,16,220,185,48,60,99,90,32,131,234,105,24,203,68,141,4,191,213,219,226,131,247,81,216,236,60,103,15,237,
+45,75,47,139,245,149,82,114,227,170,134,39,80,25,187,221,245,14,11,167,173,34,234,122,185,118,62,244,180,241,206,67,16,47,11,46,184,96,63,138,39,195,26,17,236,161,104,93,43,38,238,88,183,182,160,210,108,
+223,212,18,209,152,173,66,173,220,218,102,128,237,158,42,216,106,23,19,238,163,167,5,170,184,97,91,106,169,165,134,204,30,74,65,231,74,221,67,114,95,183,167,153,87,5,24,175,117,225,9,35,112,74,32,45,99,
+184,214,196,101,176,57,153,91,215,253,60,198,179,32,166,151,65,92,5,90,86,117,120,250,106,193,203,152,150,102,74,70,124,79,250,57,87,235,30,34,59,45,219,140,125,143,93,140,42,8,103,119,67,47,154,146,186,
+65,75,189,205,96,99,91,239,23,67,108,24,136,25,210,72,6,87,41,64,251,91,12,148,128,248,30,195,97,4,86,82,9,86,127,206,122,121,250,92,169,123,184,219,181,91,117,238,170,99,176,55,37,239,53,247,26,187,220,
+217,99,209,95,119,107,85,85,90,13,80,245,15,25,140,29,214,179,174,137,42,82,109,168,117,15,51,190,127,150,69,196,131,217,222,157,28,0,236,174,12,7,119,240,64,105,71,19,143,15,122,92,154,253,221,69,19,
+129,207,162,169,136,107,78,221,103,159,125,166,199,128,223,230,181,179,181,98,67,205,61,0,117,23,158,125,227,163,174,57,184,141,253,217,82,109,203,143,174,209,191,95,108,233,102,94,182,139,169,151,245,
+92,213,43,45,178,84,170,104,139,87,35,232,125,99,221,226,223,50,240,5,178,135,223,26,246,186,135,123,238,189,103,219,241,109,41,254,246,167,5,218,134,127,200,243,185,229,218,150,91,111,209,225,24,60,96,
+44,135,101,198,179,13,59,91,183,198,170,30,68,163,25,163,166,25,91,70,220,116,86,216,67,174,173,172,216,92,103,15,183,126,114,133,142,177,27,252,126,129,182,126,216,195,245,190,191,72,219,230,229,91,182,
+13,55,218,176,159,61,172,155,146,172,91,109,190,49,78,94,92,227,112,118,217,195,172,137,167,41,62,133,137,8,66,127,89,31,15,177,89,94,87,201,179,232,76,11,76,101,12,174,149,241,120,99,86,43,147,179,149,
+243,72,182,73,167,165,183,126,107,140,214,169,0,119,62,224,166,157,219,70,191,92,180,223,216,245,31,30,213,118,191,114,251,142,203,187,100,83,48,17,65,69,211,110,246,176,202,235,214,56,117,241,200,172,
+176,135,118,61,6,212,61,156,172,210,86,31,0,82,85,45,215,233,59,43,94,112,166,6,231,7,23,76,16,24,23,3,63,156,69,192,244,44,7,39,103,108,77,75,15,61,109,174,19,145,143,60,238,136,182,237,131,235,117,140,
+93,247,23,11,181,53,166,45,214,86,120,109,166,139,83,87,110,155,30,177,105,59,228,232,67,58,99,94,48,195,31,14,100,15,37,17,238,178,171,204,137,107,250,216,207,217,197,208,72,221,143,198,65,163,106,156,
+121,194,30,30,114,237,65,237,101,191,141,177,191,90,176,173,126,207,210,109,249,215,45,223,150,127,77,158,215,46,223,86,124,245,138,109,149,87,174,210,70,159,49,186,109,113,208,22,109,135,93,231,44,123,
+216,87,228,241,251,74,1,230,252,235,111,250,10,198,169,161,6,237,225,202,107,228,121,201,64,25,199,76,229,195,97,145,86,204,120,59,47,61,125,87,54,228,126,24,121,193,68,50,131,244,192,83,155,127,106,116,
+91,43,68,233,138,140,189,225,25,67,21,132,91,225,198,92,50,114,243,74,109,213,119,174,218,150,191,102,249,182,204,43,194,27,190,40,216,195,77,215,252,229,152,87,111,208,86,250,224,74,109,212,59,70,181,
+229,222,28,192,242,237,225,13,111,78,239,222,156,42,120,111,79,21,188,183,172,244,191,236,225,217,203,181,81,71,167,72,156,186,135,243,43,123,152,64,244,228,203,182,122,217,211,27,94,180,97,91,245,131,
+171,6,146,78,65,199,15,44,219,86,126,215,202,109,229,183,230,233,102,15,95,243,191,117,15,151,219,103,185,254,8,46,0,137,226,30,96,181,177,106,156,154,114,36,48,98,192,128,186,135,147,231,105,221,195,
+204,135,143,230,141,254,100,171,253,182,250,243,216,203,198,182,117,110,89,167,45,251,137,101,135,204,30,118,23,114,181,251,200,112,217,218,243,212,61,84,114,236,19,25,163,35,163,238,225,182,219,111,251,
+188,236,225,140,234,30,202,224,172,177,7,97,15,171,238,225,139,139,61,180,83,145,158,253,101,166,170,239,37,127,126,40,83,217,3,153,214,166,200,141,51,13,77,85,57,186,47,169,48,207,42,221,41,26,155,107,
+151,203,179,152,169,116,102,8,195,76,163,244,12,128,203,133,242,199,151,204,179,186,237,19,151,87,211,84,100,14,157,150,60,252,145,236,115,125,163,199,30,246,234,30,238,57,49,91,53,189,186,135,25,34,59,
+244,141,79,235,88,215,186,109,212,183,158,237,213,61,156,89,128,26,52,254,188,144,95,26,234,239,164,103,122,117,15,135,218,88,195,245,115,47,104,90,26,174,55,51,55,254,238,92,49,184,199,30,246,216,195,
+30,123,216,99,15,123,236,97,143,61,236,177,135,61,246,176,199,30,246,216,195,57,204,30,58,49,4,95,185,81,152,72,197,102,221,139,146,61,164,229,162,151,164,175,38,72,117,231,60,245,94,201,23,93,176,255,
+162,98,15,9,189,25,75,136,90,236,161,70,240,48,154,36,170,187,238,225,124,203,30,86,1,42,122,105,88,143,83,126,170,128,50,154,218,135,20,130,128,133,0,181,106,30,22,123,56,95,212,61,44,66,141,28,152,162,
+142,250,142,220,129,126,131,158,195,67,98,72,150,212,141,227,81,250,48,156,178,214,17,171,243,101,143,49,62,34,217,195,130,50,244,42,233,33,131,104,59,40,236,74,144,86,56,94,189,18,179,144,49,145,64,20,
+105,74,19,66,208,198,197,177,135,180,37,36,81,35,138,61,36,74,235,46,32,67,114,168,183,40,235,112,73,122,183,24,68,70,22,127,200,112,95,215,32,85,48,142,68,81,99,1,44,25,74,101,64,73,64,238,72,193,43,
+186,83,226,33,92,52,136,243,39,159,59,164,207,65,192,31,115,32,48,197,237,139,14,5,22,93,116,81,210,7,10,158,37,103,168,0,136,108,232,214,8,199,238,143,194,245,190,68,214,127,247,199,72,132,5,29,189,200,
+24,227,81,212,69,116,154,106,170,56,77,85,189,4,118,144,15,210,78,234,97,26,173,50,186,116,90,140,102,176,30,38,88,35,70,163,192,99,48,173,165,255,147,161,5,91,82,6,152,206,52,46,253,150,6,241,125,178,
+7,106,0,175,140,15,11,241,83,87,77,58,1,201,57,246,29,49,118,227,60,253,132,233,179,242,205,24,178,70,122,228,75,121,51,83,162,149,124,200,127,160,149,241,6,197,40,209,68,139,182,2,138,241,229,115,189,
+139,109,160,143,38,238,174,234,120,12,166,211,42,163,11,199,171,162,143,197,17,243,2,238,207,96,106,31,194,82,58,75,16,137,135,113,35,138,61,212,243,122,21,146,67,84,74,103,9,208,162,166,35,254,102,76,
+161,181,221,252,161,94,246,117,122,105,61,76,151,137,99,34,91,244,183,138,65,164,221,162,5,33,131,170,114,42,243,172,238,161,32,229,13,121,115,37,46,37,251,21,120,68,99,136,172,72,173,151,171,160,69,105,
+45,141,95,17,156,193,69,151,138,236,122,215,223,66,170,145,34,211,110,242,182,121,94,247,144,177,166,159,210,74,19,114,87,79,99,24,112,136,140,102,140,0,38,26,11,90,165,147,214,0,122,152,2,143,43,67,105,
+25,11,233,99,172,191,75,120,94,228,42,86,169,155,61,52,134,245,58,105,20,151,167,20,50,149,185,30,214,141,169,137,3,223,76,224,122,56,99,120,108,159,200,101,241,254,49,108,43,53,145,245,158,180,250,244,
+252,39,211,18,140,158,54,54,235,63,172,108,201,31,20,28,138,61,100,116,225,56,94,9,196,37,26,230,211,42,14,199,104,242,127,99,85,208,226,202,94,245,176,134,48,21,25,6,220,184,52,215,166,54,49,65,32,44,
+104,68,0,235,102,15,69,102,189,62,87,234,30,82,193,123,10,196,226,214,100,250,30,31,83,199,87,57,192,234,105,227,180,20,181,164,195,122,87,84,230,254,85,236,177,26,143,86,186,234,164,9,152,102,9,141,76,
+110,232,209,155,180,31,36,18,116,93,115,165,238,161,104,93,101,135,164,140,85,93,186,80,60,99,175,10,65,22,232,161,71,25,171,135,125,44,162,27,6,122,84,132,231,81,5,97,15,188,3,196,255,199,88,138,190,
+170,123,56,215,216,67,83,21,64,203,155,43,174,168,42,216,21,134,87,72,15,195,25,195,205,141,85,174,108,252,170,124,105,220,35,97,10,208,18,19,24,214,77,150,250,191,172,178,170,170,37,181,45,87,158,107,
+236,161,137,191,150,120,22,2,220,173,74,136,21,75,88,116,90,119,110,93,245,17,11,226,240,121,185,45,67,203,200,170,108,217,205,29,202,175,9,81,245,112,81,166,146,141,185,194,30,202,115,139,61,244,234,
+141,117,27,90,16,101,25,203,168,162,212,184,172,196,194,124,219,61,12,106,156,118,47,37,139,59,148,124,72,114,74,253,30,117,96,39,90,27,199,213,0,68,228,130,151,204,80,135,164,49,126,228,74,231,104,66,
+39,38,66,187,113,252,153,72,93,57,102,2,204,69,73,20,146,47,220,59,57,235,211,31,9,8,210,56,28,131,59,115,24,70,204,173,165,237,84,212,226,221,247,10,164,172,186,105,221,21,241,124,92,88,173,233,6,151,
+196,157,165,154,220,219,248,229,242,69,181,105,56,198,23,82,91,189,204,104,179,3,201,49,225,90,141,97,226,83,82,100,99,217,215,8,84,173,175,227,238,79,230,189,78,34,171,136,161,74,121,62,219,224,4,151,
+19,211,234,247,134,83,120,36,147,252,63,36,57,255,139,157,8,139,244,20,95,238,172,97,253,167,90,207,54,141,92,87,3,84,144,41,78,80,212,22,165,125,221,184,148,56,152,83,161,61,140,149,106,214,92,76,48,
+206,189,25,109,124,87,57,222,242,140,114,237,122,53,43,80,211,206,147,186,135,197,30,86,173,210,170,87,42,218,22,58,103,78,197,18,86,132,150,102,202,172,48,75,30,189,108,126,102,52,62,194,207,155,206,
+138,22,175,57,184,64,75,30,55,207,217,67,46,93,115,167,222,244,248,156,161,117,7,128,241,106,185,88,229,120,203,96,174,109,29,108,46,214,251,85,224,209,239,115,243,242,148,170,37,238,118,135,121,206,30,
+90,53,85,233,93,137,134,105,166,10,196,201,139,25,43,147,178,114,194,38,21,164,85,55,61,72,55,45,46,172,129,77,83,85,75,156,139,107,60,211,89,101,92,53,126,41,231,129,151,146,14,227,87,212,174,218,75,
+195,206,30,138,158,92,174,48,216,202,161,93,85,193,85,25,162,7,101,85,150,135,181,52,212,203,140,214,203,82,78,75,67,43,44,41,166,204,172,114,106,141,9,243,43,246,208,24,158,17,123,168,1,236,139,145,47,
+166,65,224,60,147,2,91,222,222,39,133,178,46,94,238,89,235,225,76,240,103,103,149,242,64,254,195,71,35,244,252,33,23,18,160,4,42,143,255,20,125,34,82,251,186,221,69,27,110,140,214,187,198,170,141,185,
+90,41,89,238,89,56,8,78,122,183,110,93,42,151,102,188,36,68,99,232,101,203,73,70,15,44,220,42,155,99,40,119,158,25,123,200,224,120,192,247,243,30,39,103,73,249,112,180,153,111,236,211,125,189,44,175,163,
+158,101,112,162,238,232,204,153,247,196,181,20,108,157,140,107,176,197,226,234,54,174,219,125,133,155,8,109,159,169,234,30,10,40,181,25,80,247,241,112,101,155,115,12,178,179,81,40,109,129,150,12,238,46,
+227,201,237,11,193,227,41,166,152,194,223,11,6,153,231,117,15,143,59,245,216,182,255,65,251,117,22,230,118,71,44,217,76,89,92,89,174,108,29,108,11,199,99,241,47,143,182,60,244,48,152,155,91,80,212,38,
+158,165,34,132,79,3,166,71,250,217,67,249,243,136,168,123,120,240,71,182,111,59,126,229,165,253,187,139,150,112,140,183,232,183,176,215,187,166,162,238,219,150,202,232,66,105,77,79,130,151,177,236,247,
+120,134,249,31,196,85,60,19,117,188,100,104,40,236,33,201,113,214,201,83,50,126,95,147,70,219,190,79,190,184,108,94,23,122,206,25,106,32,142,85,147,69,125,54,89,209,148,36,27,19,18,32,254,77,134,35,13,
+68,152,117,223,51,121,192,185,129,43,255,102,141,182,117,91,176,237,124,202,184,206,206,33,131,101,98,118,58,112,132,198,47,131,170,236,95,129,150,117,167,150,175,107,12,6,251,89,193,75,192,195,70,113,
+227,122,24,43,109,148,66,118,163,61,210,76,52,155,64,22,35,255,107,88,217,195,221,223,61,166,99,236,86,57,124,31,251,151,5,218,86,127,181,90,219,110,151,109,59,171,24,238,39,186,50,160,198,112,237,88,
+218,2,178,81,160,135,61,26,68,239,234,89,153,218,136,172,123,184,247,121,59,181,109,254,99,201,126,99,183,8,123,184,245,147,163,218,110,175,217,166,109,57,246,153,13,55,143,205,55,99,90,4,70,129,75,57,
+43,226,202,125,141,93,57,181,136,175,183,138,21,30,81,117,15,247,59,120,223,182,221,237,235,244,27,187,217,239,22,108,47,187,99,249,182,235,121,219,181,67,15,123,134,64,229,218,181,7,85,117,15,185,163,
+85,142,21,142,94,148,72,84,17,244,217,101,15,67,193,12,31,123,184,221,13,217,82,233,115,227,141,255,110,233,182,214,39,86,105,43,4,212,90,241,252,21,219,152,147,199,180,241,39,60,83,181,22,180,193,181,
+45,220,171,238,161,104,43,59,170,177,103,33,224,107,86,59,179,201,30,78,201,52,54,101,142,179,135,155,110,179,241,31,199,252,96,84,219,244,215,11,183,117,39,174,210,214,249,200,232,14,136,165,70,218,138,
+111,94,177,173,124,253,202,109,141,215,172,209,182,61,115,219,54,254,180,241,157,147,137,170,125,88,236,161,94,174,229,156,69,252,172,178,135,60,198,218,55,73,200,31,227,41,223,203,239,79,73,74,57,125,
+216,234,30,110,112,202,154,127,218,232,182,245,218,106,247,172,214,86,184,41,216,221,91,83,12,238,150,64,89,239,75,65,184,247,135,72,243,241,181,43,183,85,95,189,234,51,236,225,129,169,88,185,203,246,
+115,180,238,225,92,103,15,71,175,61,250,233,77,79,221,180,45,247,169,229,218,114,183,47,215,86,250,64,10,193,49,246,214,224,119,183,60,211,0,29,246,240,234,229,219,168,75,251,234,30,238,158,194,113,91,
+247,213,61,92,111,133,254,233,197,56,230,230,5,76,115,119,95,171,233,167,182,113,204,197,188,33,61,251,7,61,11,180,204,84,249,131,252,156,91,74,175,202,227,170,101,53,212,214,233,164,145,93,55,150,206,
+20,167,237,255,129,76,214,113,149,209,137,158,175,200,120,188,59,75,182,239,186,207,57,1,231,209,188,145,95,108,113,116,10,180,126,118,149,182,220,23,150,107,43,222,22,183,126,119,158,193,216,195,203,
+187,234,30,30,61,107,236,161,33,32,218,91,33,197,216,95,39,64,61,193,141,81,165,125,198,94,23,227,14,200,51,46,143,130,113,203,229,25,180,92,209,144,244,210,90,42,193,96,157,60,23,37,0,221,233,242,234,
+44,34,30,201,27,121,56,134,63,185,241,118,27,255,110,211,215,110,218,86,251,200,106,207,207,30,94,241,191,236,225,242,251,46,223,137,216,24,195,161,178,135,249,249,159,138,198,73,66,140,217,105,125,8,
+173,158,101,44,112,11,16,162,58,222,98,51,18,155,15,201,224,142,160,43,45,150,149,199,154,121,61,201,77,221,57,175,157,154,5,196,244,44,46,38,36,2,79,117,17,238,11,97,15,33,242,47,128,61,156,60,95,177,
+135,131,213,61,148,54,254,159,100,15,51,54,123,236,161,75,72,22,91,108,49,99,21,100,9,121,7,113,217,193,128,189,139,198,67,174,167,54,228,49,252,28,150,62,36,167,224,144,199,178,203,52,176,35,77,5,153,
+65,166,140,73,89,198,77,49,206,29,89,230,148,226,91,217,242,125,44,249,242,212,172,182,122,117,15,19,125,1,208,147,93,246,101,15,170,111,91,230,80,141,152,199,122,86,143,142,201,179,110,30,247,114,40,
+107,208,127,55,199,172,224,63,47,184,135,7,233,113,20,26,196,150,128,132,171,173,215,247,38,199,230,213,157,56,231,231,185,38,143,83,128,91,243,56,254,240,177,175,249,30,119,117,179,89,143,61,76,35,168,
+58,59,228,113,250,124,61,62,199,122,120,6,96,117,143,61,156,149,241,54,28,63,59,172,61,60,28,111,120,118,255,230,92,49,184,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,61,246,176,
+199,30,246,216,195,97,98,15,171,238,161,243,39,154,140,23,101,221,195,170,213,64,205,71,133,91,236,33,173,200,139,134,61,164,144,173,26,13,37,40,175,98,51,85,228,145,177,243,53,123,8,168,42,53,79,9,188,
+9,204,168,115,28,126,83,3,128,178,104,160,203,104,2,54,106,187,249,142,61,212,123,85,16,138,34,150,110,203,201,63,53,15,35,41,121,234,46,105,186,44,218,74,186,44,226,52,223,39,91,66,179,84,25,64,218,18,
+141,48,34,217,67,189,85,56,158,158,37,130,97,44,35,74,171,213,93,18,144,144,165,46,211,174,234,90,117,123,56,217,146,191,71,35,70,40,227,140,121,68,177,135,148,181,196,40,85,151,133,123,210,114,16,169,
+16,181,48,152,74,135,120,133,161,37,97,170,162,143,12,214,251,122,153,146,135,194,86,207,211,106,51,152,246,11,116,57,162,216,67,189,75,253,106,188,82,239,144,30,145,46,85,209,199,162,76,185,47,4,143,
+177,3,249,67,61,92,106,60,222,33,178,83,15,212,189,243,166,177,17,195,30,82,188,66,113,136,76,201,128,137,68,169,115,4,43,189,76,58,92,56,94,55,112,89,58,45,106,188,226,15,11,184,36,74,39,63,36,70,243,
+144,57,136,234,120,11,178,200,2,45,157,29,123,8,226,28,152,71,78,241,160,171,38,157,128,100,123,119,223,190,125,242,197,159,147,90,198,149,78,79,15,124,37,238,247,112,220,243,123,254,51,45,90,181,134,
+139,101,144,40,248,227,85,247,208,215,11,208,42,28,79,228,37,7,118,193,61,215,198,44,149,94,171,238,136,47,172,150,240,148,219,87,97,11,238,236,119,53,160,26,166,222,199,136,170,123,8,224,96,48,87,46,
+56,171,192,75,120,157,32,84,104,45,151,46,224,18,131,72,112,106,186,34,76,227,254,85,206,179,106,181,136,228,26,17,99,49,34,234,30,74,46,170,80,156,87,250,230,42,16,231,141,114,111,189,101,76,146,34,10,
+78,85,167,165,10,90,212,216,37,55,246,179,140,53,52,138,65,20,23,4,193,129,236,161,128,230,64,125,174,179,135,69,148,149,100,191,170,103,233,117,197,27,205,199,196,226,122,176,12,214,203,198,50,119,6,
+96,151,34,94,3,85,117,75,222,130,129,160,151,198,84,24,183,243,148,61,68,144,25,191,222,12,183,46,26,197,20,85,85,241,244,54,3,24,109,44,83,216,154,134,200,135,69,107,189,238,235,162,58,116,128,145,69,
+150,106,72,127,171,96,75,193,170,216,195,185,90,247,144,26,190,106,130,203,174,100,85,21,208,170,42,30,227,11,196,228,234,140,198,51,232,73,134,146,16,115,101,174,14,144,134,242,104,156,226,133,53,88,
+55,252,229,255,0,113,13,100,15,9,99,134,189,238,33,20,160,170,189,91,253,12,36,211,42,1,241,90,197,86,189,50,156,146,86,180,230,210,240,0,189,202,80,189,105,72,152,222,164,167,140,43,60,175,170,227,225,
+151,72,24,187,203,0,186,124,155,209,5,110,209,138,152,175,35,99,124,210,225,123,20,63,19,251,142,101,93,251,186,74,255,190,79,162,234,229,153,22,238,73,224,120,56,75,182,31,155,236,169,96,205,133,18,125,
+143,72,105,154,176,158,45,246,208,82,207,155,27,12,197,243,198,43,183,246,253,250,92,80,210,179,24,39,95,227,9,5,69,251,91,5,91,214,237,46,5,91,250,191,244,48,33,170,136,93,236,33,163,1,30,220,156,150,
+75,135,36,144,253,40,239,117,98,210,83,6,59,143,222,34,207,106,253,6,39,162,94,158,169,227,222,36,11,15,39,133,235,24,108,173,138,75,242,31,49,80,3,80,218,48,216,215,125,173,200,52,174,92,84,169,87,185,
+180,87,134,86,45,181,34,213,24,107,76,235,193,26,10,62,238,38,209,24,93,151,30,48,152,17,68,168,165,194,101,240,64,246,80,180,30,54,246,80,114,47,215,5,84,213,13,15,221,220,176,143,25,104,110,22,173,205,
+167,240,28,110,44,58,155,123,185,183,40,236,103,245,108,61,131,85,181,148,105,169,237,66,114,76,111,77,138,172,71,187,217,67,106,220,97,103,15,171,2,94,1,149,69,169,49,212,60,44,24,85,237,52,105,166,241,
+43,66,51,26,154,167,167,253,172,241,91,11,144,110,194,84,47,235,97,184,144,202,90,85,219,197,152,213,195,52,153,122,157,162,143,32,125,216,235,30,154,35,171,56,156,41,133,193,122,179,106,16,75,49,171,
+50,173,244,81,210,161,4,32,230,193,231,85,89,186,96,203,238,194,173,229,214,130,162,143,173,147,231,57,123,40,90,23,149,230,77,23,134,199,125,225,238,242,98,139,1,185,180,101,161,222,173,154,135,220,218,
+194,2,174,135,83,242,251,2,89,197,5,83,81,221,216,100,140,99,41,102,198,30,26,199,137,206,191,143,156,113,106,98,209,227,212,65,125,130,25,81,122,213,103,237,206,39,121,184,51,99,108,90,130,199,228,96,
+108,191,171,75,66,172,67,61,246,158,204,193,22,15,2,23,112,203,2,162,242,93,89,146,8,44,127,102,132,188,184,238,228,145,81,153,138,84,180,212,187,5,119,88,69,153,155,37,30,188,162,234,152,14,134,201,27,
+187,243,188,238,33,12,207,216,227,186,18,8,189,42,141,180,96,16,160,170,252,159,222,229,206,140,69,166,89,56,200,184,44,248,165,156,60,65,16,227,45,140,22,232,10,180,148,197,217,43,99,172,72,61,207,216,
+195,99,79,57,170,159,61,244,134,244,182,117,176,69,128,169,167,182,118,172,144,24,44,195,210,195,12,46,238,176,123,91,71,99,49,218,176,224,53,21,0,77,109,51,99,15,229,216,2,217,176,178,135,71,253,245,
+14,237,144,35,15,234,223,116,3,87,201,138,106,101,100,140,22,134,87,227,151,193,198,177,222,246,53,81,187,202,254,241,10,28,177,97,81,212,184,84,83,228,157,25,123,40,74,219,10,178,192,200,148,53,33,67,
+111,122,26,105,66,198,45,69,31,37,223,90,121,150,124,214,24,206,23,22,74,66,241,161,140,165,135,227,166,19,146,165,252,135,204,133,219,226,138,16,103,130,148,185,247,164,247,28,212,246,255,201,74,109,
+239,127,94,174,147,125,217,97,196,30,10,52,22,242,92,213,46,6,86,137,235,234,81,134,234,221,170,91,90,100,41,79,168,218,165,133,200,251,123,117,129,88,149,240,156,103,236,225,248,147,142,105,251,253,205,
+234,109,239,182,88,219,171,45,218,246,186,114,203,206,38,155,93,70,73,67,65,150,220,149,81,181,224,47,230,176,170,196,215,109,105,122,217,88,55,47,27,203,146,138,52,126,63,104,201,96,153,213,60,97,15,
+15,59,246,144,182,255,132,117,219,94,127,92,188,99,236,30,109,225,182,91,112,188,93,62,180,86,39,173,227,17,50,48,110,93,144,116,221,191,211,13,89,26,207,117,69,156,159,211,203,12,22,217,163,200,237,47,
+223,201,149,215,95,127,253,142,177,207,199,30,98,157,147,120,204,217,186,135,135,28,118,72,219,239,166,113,109,207,223,45,217,49,118,183,63,45,212,118,252,217,194,109,143,251,214,108,7,188,114,231,182,
+207,193,123,117,34,168,249,210,27,16,120,244,92,93,0,104,108,202,203,25,37,74,107,8,223,179,163,137,42,53,149,201,173,11,125,175,36,163,10,72,14,172,163,86,180,139,148,50,255,231,239,227,25,143,207,209,
+186,135,187,190,127,243,182,215,159,158,113,227,29,254,237,37,109,243,233,75,183,209,225,150,214,188,96,213,246,242,19,14,239,63,9,172,13,55,110,232,205,184,22,131,241,150,118,85,218,94,143,218,135,182,
+1,192,80,243,59,140,167,216,67,175,125,229,57,59,141,39,40,117,83,165,221,104,207,240,212,61,28,55,230,23,59,221,183,90,219,233,87,75,182,49,147,87,105,235,255,213,42,109,205,183,135,29,76,153,176,245,
+222,181,118,91,239,117,235,181,67,143,59,180,157,118,250,105,157,4,69,210,98,201,102,173,106,202,240,134,245,144,165,156,55,235,123,92,181,138,160,23,123,104,250,1,125,24,26,53,102,253,174,113,220,205,
+49,249,27,254,54,99,211,176,208,158,97,96,15,247,223,224,15,155,188,227,101,109,141,175,172,208,214,72,137,176,53,223,29,195,63,190,110,91,239,51,235,182,85,194,31,174,254,198,213,219,184,87,142,107,103,
+156,243,76,86,6,151,215,59,197,30,234,97,15,16,11,115,200,200,98,15,95,72,221,67,139,7,208,86,26,244,219,208,158,97,97,15,55,222,110,195,63,174,251,206,20,109,188,123,185,182,238,93,107,181,13,238,220,
+160,173,254,169,213,219,106,31,15,45,122,219,42,109,213,183,173,218,214,188,114,205,126,246,16,96,93,236,33,23,215,43,94,61,18,133,217,97,15,251,112,188,98,15,167,13,11,123,152,177,53,125,253,173,215,
+251,227,166,239,217,184,173,249,216,154,109,213,59,87,109,171,125,98,181,182,234,71,86,109,171,124,104,149,193,217,195,212,61,156,239,217,195,181,215,93,251,119,99,47,28,219,86,184,119,133,182,252,23,
+147,227,126,168,15,180,28,200,30,190,168,234,30,142,30,253,243,45,143,221,114,104,236,225,21,47,140,61,52,230,7,176,135,191,154,255,216,195,139,23,111,85,247,112,86,216,195,68,245,159,170,66,155,0,53,
+111,235,30,190,16,246,112,149,227,86,233,191,156,115,22,216,195,137,74,238,38,26,207,255,117,15,135,200,30,78,86,95,184,15,123,63,46,249,54,74,13,47,12,161,69,149,162,95,22,154,163,84,75,254,32,82,5,40,
+53,54,80,213,185,73,6,190,144,67,173,233,185,54,238,81,183,254,186,8,215,249,108,158,239,202,109,93,170,153,36,228,183,251,159,178,255,159,247,188,104,207,182,243,171,118,110,219,92,177,77,219,247,188,
+125,59,115,117,118,82,254,146,223,253,115,54,233,126,175,238,97,143,61,204,141,43,61,246,240,25,214,145,11,191,132,199,205,10,233,50,219,84,75,159,139,27,59,16,60,151,87,163,62,247,93,120,225,133,175,
+139,203,127,206,221,176,73,33,167,36,189,156,18,247,158,228,172,199,241,135,219,8,123,117,15,123,236,97,246,145,159,193,117,123,236,225,172,140,219,238,159,157,237,49,252,66,255,227,121,245,123,61,131,
+135,163,229,123,236,97,143,61,236,177,135,61,246,176,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,28,102,246,240,69,91,247,144,40,149,142,210,83,236,33,173,38,249,98,177,135,54,244,72,161,52,
+130,163,83,226,20,82,11,218,78,143,35,87,127,135,142,132,180,130,150,131,34,62,155,133,79,229,112,110,170,59,250,92,103,53,106,212,168,91,108,48,118,244,28,185,2,235,57,151,36,13,182,88,136,234,102,145,
+60,7,71,120,114,255,47,126,241,139,135,34,54,121,32,98,149,159,59,9,236,134,62,170,54,131,3,110,130,50,247,179,59,38,245,10,172,34,42,27,200,30,82,212,81,214,209,138,48,2,165,226,103,231,219,186,135,52,
+145,37,25,166,153,164,234,33,77,132,244,192,116,40,226,29,132,147,57,224,27,52,32,131,169,101,171,87,231,187,186,135,37,23,164,175,162,187,34,61,100,44,101,79,55,187,68,227,65,150,4,173,213,40,148,60,
+104,24,46,92,117,15,71,52,123,72,49,71,163,193,224,210,74,19,170,149,214,178,46,215,70,179,120,24,76,229,83,15,121,162,159,161,224,51,198,139,61,116,198,60,226,216,195,170,181,68,195,165,151,200,138,9,
+76,201,144,170,168,5,25,19,6,145,92,137,145,221,133,31,125,78,224,66,215,69,255,65,228,98,188,19,155,57,134,25,113,117,15,171,220,24,173,164,135,70,154,200,148,208,140,193,80,29,227,183,202,122,214,21,
+234,3,129,75,223,47,85,143,113,207,221,11,197,51,206,71,12,123,8,226,168,74,30,20,59,122,153,224,148,148,208,27,71,140,50,186,112,60,189,91,213,60,124,76,143,89,132,41,73,49,183,246,80,232,150,193,228,
+80,35,134,61,172,18,96,94,169,97,245,114,21,137,35,26,37,17,22,148,68,104,46,93,252,97,1,91,190,86,61,91,21,46,113,139,230,222,186,115,222,171,57,184,4,51,228,81,32,75,210,40,175,164,137,88,99,7,121,33,
+91,166,186,106,210,9,72,230,99,23,18,142,122,78,46,29,96,234,93,9,38,247,71,206,251,64,230,200,95,104,89,32,135,177,68,160,45,234,250,152,14,82,36,173,121,86,239,146,250,82,199,27,187,36,253,85,118,136,
+225,92,91,47,227,15,9,78,75,142,88,101,76,4,48,95,39,98,19,205,171,184,133,105,11,180,213,109,20,185,19,101,124,31,170,211,111,108,225,120,162,122,196,50,63,75,82,242,144,68,196,113,79,140,117,69,228,
+138,157,99,161,238,196,35,189,240,249,140,173,71,194,33,76,72,84,252,29,195,40,231,232,39,25,236,17,45,137,62,101,69,245,181,226,141,136,186,1,27,12,247,20,14,64,237,174,151,25,82,197,91,171,216,35,69,
+173,64,101,236,242,0,148,154,158,245,243,148,123,188,68,64,244,30,220,47,77,254,160,39,73,162,230,42,123,168,167,43,93,212,195,117,209,65,225,60,12,215,16,122,187,80,60,134,80,222,149,88,188,106,151,22,
+59,204,88,65,142,71,84,85,30,241,192,35,62,72,43,187,217,67,233,37,245,192,92,169,123,40,139,146,34,202,164,170,114,109,17,105,101,52,165,188,158,54,174,17,46,106,184,16,144,22,153,166,151,205,189,220,
+152,177,221,69,105,184,114,21,125,148,148,24,50,232,150,110,246,144,254,171,244,94,195,94,247,176,155,61,100,112,119,221,180,129,134,131,54,138,45,230,170,230,98,186,233,170,108,41,23,23,209,69,246,170,
+138,89,60,178,121,189,18,26,158,52,79,216,67,171,153,226,137,186,93,185,140,214,195,85,113,186,187,50,30,55,23,196,232,169,5,44,175,2,19,67,21,166,210,147,213,155,60,131,161,133,248,21,193,54,35,246,16,
+71,108,108,15,27,123,40,152,49,186,122,192,155,227,194,133,213,50,174,192,171,130,46,53,132,55,142,41,102,172,177,205,85,171,30,162,160,231,119,52,82,209,164,149,151,27,58,134,17,131,103,196,30,210,94,
+18,155,14,27,123,200,104,174,202,101,235,169,42,150,12,246,248,188,230,232,170,165,86,198,22,151,84,69,33,25,87,24,94,197,134,186,202,198,248,245,49,18,141,32,117,158,176,135,18,124,99,205,220,203,21,
+205,189,94,125,238,227,226,153,92,94,32,175,166,139,54,215,202,176,76,65,64,14,189,170,215,11,191,171,200,95,84,90,145,165,40,87,243,47,189,117,21,157,26,200,30,14,123,221,67,59,22,178,170,138,168,140,
+244,57,3,205,189,30,44,147,244,82,20,102,172,140,10,153,38,141,52,77,113,107,46,93,23,21,13,44,240,88,6,139,194,234,47,21,123,88,245,134,231,42,123,168,254,146,96,99,202,241,198,241,70,224,73,207,192,
+60,154,27,51,22,198,227,241,177,92,217,124,171,193,42,22,212,133,69,221,61,172,119,9,199,23,95,124,241,142,98,62,219,56,253,85,65,128,91,69,189,24,223,130,87,198,240,159,163,17,123,34,187,40,95,119,89,
+119,50,44,247,87,227,135,87,239,207,180,18,40,94,26,119,188,47,121,236,55,178,207,244,88,114,214,167,5,37,45,46,189,180,74,97,160,148,210,142,132,45,25,143,55,198,64,11,125,143,164,193,124,106,89,168,
+87,45,26,44,247,76,65,230,93,189,11,246,208,195,22,19,126,142,209,60,67,162,82,145,217,255,91,51,129,94,230,190,112,218,82,206,215,221,30,85,1,132,90,158,194,94,18,50,44,236,225,248,19,143,233,176,135,
+140,230,202,122,153,161,220,20,112,37,141,148,100,200,145,235,238,142,66,240,44,24,228,207,210,76,189,140,59,52,12,196,3,88,174,40,93,0,53,195,53,170,0,201,157,231,25,123,120,228,45,59,183,99,79,63,178,
+255,14,44,0,166,220,87,175,50,162,86,70,85,254,175,174,163,225,206,122,184,22,12,184,67,233,164,223,53,44,42,234,23,97,94,117,202,5,172,161,176,135,114,132,244,254,156,171,123,56,254,196,99,219,97,239,
+216,182,189,252,223,87,105,135,127,109,163,206,78,4,23,247,134,68,90,189,90,196,10,183,173,221,13,137,70,141,95,6,87,133,120,105,37,86,177,106,136,27,207,122,218,152,46,150,152,107,207,51,246,240,232,
+235,246,110,47,255,159,21,218,225,109,233,118,232,31,151,138,177,135,247,179,135,224,231,50,86,250,104,81,192,157,25,200,157,187,65,203,226,14,43,143,22,201,25,93,160,165,233,173,42,220,226,34,134,194,
+30,202,173,231,40,123,120,244,77,187,183,35,127,177,122,59,236,47,75,181,67,219,75,218,193,109,137,118,224,79,150,105,7,28,178,127,103,63,90,154,201,96,227,214,146,175,238,205,42,131,171,192,163,121,88,
+207,219,12,168,11,135,244,178,24,96,190,22,15,68,127,238,13,241,99,172,249,119,174,178,135,167,190,253,232,118,244,255,172,217,233,217,67,254,178,100,199,216,253,255,121,153,182,255,223,45,223,246,189,
+252,153,18,128,54,220,36,17,118,30,245,108,33,120,181,246,45,208,178,182,116,52,138,198,169,50,158,18,19,89,153,93,13,89,26,136,179,202,0,14,133,61,140,142,243,207,153,134,166,207,118,221,195,253,223,
+189,117,59,252,233,149,59,198,238,255,159,43,180,189,254,97,133,182,117,104,150,205,111,90,163,237,121,240,238,253,39,14,18,119,211,133,105,76,208,178,11,169,55,139,38,53,142,125,110,3,207,83,24,158,159,
+197,42,234,213,236,80,180,5,23,92,176,195,30,154,95,25,12,190,156,25,123,56,71,235,30,238,124,233,152,63,236,245,15,171,183,29,167,173,219,198,125,110,189,54,230,157,235,180,141,223,49,186,109,240,182,
+53,218,122,151,173,209,14,63,234,176,206,14,136,253,36,219,66,178,32,111,192,202,200,212,99,90,241,185,204,172,182,117,186,139,59,218,250,17,221,13,137,212,100,233,239,85,129,170,122,214,248,156,171,236,
+225,184,163,199,182,45,238,94,187,141,249,232,232,54,230,253,107,183,77,110,203,237,40,159,88,179,109,248,225,213,219,134,55,172,213,206,190,236,172,206,134,27,74,124,32,123,232,174,28,8,158,52,208,156,
+93,181,74,141,95,251,207,178,50,211,90,119,221,67,9,134,134,139,74,126,134,236,161,181,177,109,159,97,97,15,147,178,253,98,171,179,54,107,155,76,88,189,109,246,149,181,218,152,47,140,110,155,222,25,134,
+240,11,107,182,45,239,220,176,141,185,105,227,118,204,105,71,183,51,207,122,230,112,172,216,67,217,143,55,5,199,211,67,140,175,234,120,190,167,17,184,110,119,221,67,63,51,84,246,144,71,97,15,209,46,0,
+16,76,68,106,189,92,150,52,18,15,177,89,30,181,93,250,235,186,204,80,107,153,214,93,43,110,116,99,50,157,201,89,193,60,146,94,155,54,102,243,49,79,143,189,101,131,182,225,215,87,110,155,124,101,141,103,
+140,189,123,131,54,230,75,235,183,151,126,42,133,221,186,216,195,148,243,237,103,15,161,58,213,195,149,252,119,179,135,122,246,133,176,135,166,171,97,103,15,55,221,97,227,63,140,249,216,218,109,221,71,
+87,104,155,222,159,139,6,238,218,176,173,21,246,112,205,176,135,171,62,15,123,200,61,171,103,103,151,61,212,56,131,212,61,28,30,246,48,238,55,109,131,109,214,255,195,150,97,15,95,22,246,240,165,137,214,
+107,134,61,92,109,48,246,240,242,190,186,135,93,236,33,195,245,140,221,9,243,170,87,15,3,184,50,15,224,230,221,101,0,45,12,106,243,78,212,238,139,17,138,60,126,95,41,64,213,241,250,10,198,93,212,229,202,
+42,2,189,100,72,7,226,221,63,20,119,91,49,43,146,243,226,222,119,101,193,254,195,4,151,137,65,214,167,97,15,183,14,123,184,74,216,195,21,102,194,30,14,90,247,112,253,161,215,61,44,12,87,44,48,102,179,
+244,155,251,117,15,201,12,242,70,126,62,118,168,236,161,186,135,103,46,215,150,62,106,233,182,232,44,212,61,28,132,61,156,207,234,30,94,176,66,91,124,136,236,161,200,94,83,83,134,193,239,231,235,186,135,
+51,99,15,37,42,142,116,164,139,153,18,127,150,41,236,241,24,63,169,143,61,156,191,234,30,46,250,222,69,219,202,23,173,220,153,107,61,198,165,180,84,238,92,42,30,167,255,9,106,255,41,55,78,116,127,48,159,
+79,202,220,62,229,69,201,30,230,248,243,123,174,151,73,244,126,32,91,74,83,210,171,147,19,153,167,38,213,252,124,95,82,161,190,154,210,157,18,139,117,242,44,151,71,133,190,231,200,148,102,57,74,207,160,
+52,216,66,125,58,168,213,243,186,83,118,19,175,76,36,191,59,110,56,45,199,149,143,184,8,215,249,172,35,203,244,200,132,188,249,169,25,143,79,36,186,254,208,109,132,46,232,203,152,252,81,92,244,201,24,
+242,67,27,110,238,191,202,51,33,61,254,96,86,59,147,221,165,147,165,225,36,213,222,123,236,97,143,61,28,154,86,122,72,106,218,161,98,61,157,211,245,94,221,195,142,204,64,138,167,34,165,218,192,164,7,238,
+166,179,41,62,182,235,241,185,175,111,154,7,157,250,178,60,238,191,234,177,135,67,245,184,25,253,92,15,197,155,221,22,28,233,191,63,87,122,184,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,28,
+90,62,61,228,105,41,167,125,43,228,16,123,124,78,239,111,251,245,175,127,253,80,206,139,238,71,187,228,12,247,31,115,226,240,91,135,105,206,136,93,171,78,165,231,232,132,28,137,212,168,174,66,47,162,133,
+218,206,25,48,21,16,178,165,112,30,55,28,195,122,28,209,208,90,193,120,236,122,216,28,200,38,193,111,179,243,241,79,57,104,155,100,159,60,135,109,211,243,127,222,97,131,49,123,220,46,76,25,210,141,45,
+67,50,184,207,216,83,98,228,167,127,243,155,223,76,207,233,223,125,57,214,156,4,237,33,248,180,83,193,80,7,215,140,163,191,114,124,226,141,119,223,228,95,154,171,82,221,81,187,23,143,68,67,194,96,39,254,
+78,14,201,131,93,15,75,14,236,204,202,177,169,109,159,236,126,252,220,161,64,26,121,114,14,207,191,99,55,53,91,183,175,200,13,76,54,2,102,90,103,124,166,6,231,164,126,105,61,203,216,167,158,122,234,241,
+28,131,222,23,105,194,212,24,247,219,146,249,97,144,170,222,67,73,14,245,32,189,71,105,53,8,83,156,42,186,213,212,65,55,163,10,210,34,150,241,16,126,59,46,213,243,244,35,182,123,170,106,30,185,48,57,179,
+83,196,24,253,219,236,91,79,203,207,76,180,117,156,173,160,187,99,240,69,217,13,89,51,70,247,31,171,12,186,121,241,124,169,96,140,93,36,198,238,195,141,245,44,99,163,182,153,150,55,254,123,255,185,19,
+251,2,177,156,11,87,89,131,34,90,156,234,51,16,146,83,132,25,111,208,123,196,48,134,128,222,67,173,248,62,131,137,90,138,80,171,26,106,190,239,103,189,146,85,112,243,184,247,211,14,5,236,147,71,253,243,
+221,236,168,220,25,99,79,202,227,78,160,25,186,247,243,246,112,142,52,55,205,161,246,77,198,44,55,214,179,140,53,94,157,20,210,76,234,197,42,119,64,125,67,79,169,39,157,6,26,135,220,178,20,244,140,35,
+58,169,186,135,47,74,246,144,107,22,123,88,99,152,4,169,155,61,52,118,187,81,188,249,146,61,52,38,141,231,194,241,170,238,97,69,234,50,90,99,84,221,195,10,84,188,130,23,84,208,210,32,26,72,128,172,107,
+157,75,98,225,213,9,72,182,115,85,32,153,158,77,192,71,221,228,22,183,182,193,184,216,144,118,45,35,55,90,35,114,132,15,254,242,151,191,124,32,194,147,251,77,61,254,51,111,200,148,35,10,23,104,201,141,
+5,36,209,150,203,122,106,12,119,11,70,139,121,112,218,79,226,64,25,64,223,65,216,66,50,204,253,25,105,220,206,119,236,161,113,172,81,74,22,172,81,168,243,136,208,8,76,25,74,214,84,101,1,73,22,53,38,87,
+174,242,40,117,43,249,136,103,15,25,75,18,76,229,78,118,68,217,174,119,187,75,2,146,60,144,45,117,51,136,26,132,102,19,15,161,97,8,74,231,11,246,144,177,162,183,135,124,184,84,181,116,88,196,164,69,152,
+146,36,234,97,134,83,244,20,225,66,217,83,87,168,75,98,70,52,123,72,9,43,109,44,72,139,96,148,134,210,124,140,76,35,75,44,151,214,203,122,152,150,171,42,92,82,246,20,112,137,83,68,168,137,15,206,158,100,
+89,4,51,35,134,61,20,168,200,5,171,72,77,85,199,35,13,174,122,45,220,90,47,11,84,132,107,131,1,151,198,182,239,195,242,4,55,158,97,106,35,16,31,17,117,15,101,88,198,45,67,185,51,205,115,225,120,85,36,
+14,93,70,34,172,151,25,140,66,227,202,165,212,43,57,177,175,17,164,50,182,128,75,6,3,46,139,51,52,174,231,9,123,40,183,173,121,150,209,69,167,84,237,37,249,50,227,25,109,17,33,18,19,131,155,150,244,96,
+209,105,221,132,41,55,71,174,49,86,224,162,185,198,52,137,220,128,202,62,33,75,71,29,100,26,243,181,2,45,135,157,61,52,150,106,158,45,232,178,48,29,13,81,149,241,138,54,165,146,53,150,75,52,206,96,146,
+68,15,215,22,168,140,91,6,107,20,222,64,157,139,107,146,67,131,44,169,128,160,119,69,145,206,85,246,176,251,170,10,115,110,149,3,43,88,171,18,19,61,205,104,226,111,189,92,245,31,170,140,167,192,37,80,
+85,239,194,231,245,42,161,41,116,143,186,150,134,154,244,161,10,61,146,66,148,84,120,174,177,135,149,42,22,141,82,189,91,6,119,147,105,150,130,2,154,177,108,177,33,82,235,225,42,67,196,88,99,91,99,80,
+199,51,84,116,55,173,105,40,60,132,32,232,255,154,103,236,97,1,85,69,163,12,36,76,11,157,171,170,119,212,237,146,16,70,211,88,114,101,6,87,25,79,189,218,141,208,98,158,10,17,178,97,80,165,2,231,41,123,
+104,33,192,93,139,66,43,252,174,2,87,73,248,43,197,52,79,123,227,152,8,198,234,89,31,235,81,211,151,100,165,170,220,86,57,50,217,154,70,173,234,153,12,158,39,117,15,173,118,24,172,245,189,161,66,240,52,
+64,53,2,195,171,103,189,225,90,47,251,190,249,86,42,201,101,53,66,33,123,166,52,31,87,29,212,130,53,53,154,6,155,167,236,161,61,44,1,133,209,220,207,107,25,172,167,124,207,163,183,24,38,243,66,170,233,
+89,211,88,17,230,140,42,72,179,134,70,193,150,21,35,106,49,50,79,217,67,9,190,49,201,152,42,178,106,206,45,12,175,72,53,240,150,41,70,4,214,179,18,14,89,23,119,53,198,25,85,6,214,122,89,30,221,13,92,90,
+150,138,27,148,183,51,98,15,135,189,238,161,169,169,202,104,115,79,145,213,99,250,145,89,153,119,37,27,198,41,174,65,128,42,224,195,124,235,103,185,48,119,29,88,213,146,129,60,200,6,161,199,16,242,106,
+252,146,30,207,125,246,240,236,211,59,219,170,8,20,185,178,167,140,52,245,136,186,166,153,90,3,75,27,85,212,202,237,77,29,163,173,137,235,22,135,130,163,245,50,195,203,216,238,154,165,118,58,204,191,140,
+69,184,88,76,80,229,206,21,246,240,168,43,247,108,39,191,127,175,206,62,148,20,207,118,171,29,76,189,41,247,213,163,117,225,80,93,54,212,13,106,73,54,100,85,178,41,99,218,248,151,139,115,111,70,119,51,
+195,122,213,134,124,110,34,239,103,15,137,205,7,178,135,162,55,133,253,156,173,123,120,246,73,109,252,205,187,183,19,126,180,86,59,225,59,235,119,86,49,182,101,236,84,232,13,61,90,215,208,232,65,193,201,
+154,183,200,22,56,15,195,141,97,13,33,205,212,203,198,189,72,221,93,224,177,64,75,6,195,122,114,1,73,63,38,224,106,11,146,69,233,38,216,82,32,19,189,101,98,118,74,178,119,253,59,34,183,236,162,60,150,
+253,173,135,136,231,250,4,51,43,62,107,155,54,193,227,189,121,3,19,18,76,38,102,47,249,151,133,151,91,157,156,122,214,73,237,228,59,183,111,39,181,21,219,9,109,249,54,254,119,43,180,227,142,127,102,15,
+10,142,39,202,26,167,246,170,44,14,106,11,71,70,197,64,110,92,100,154,197,62,131,45,18,100,86,53,61,25,207,166,50,185,121,149,226,229,222,62,46,0,132,75,115,101,239,141,112,188,196,228,12,214,0,115,134,
+61,188,240,216,118,226,164,177,237,196,223,173,210,49,246,184,182,108,59,182,141,106,71,221,191,113,103,255,153,193,220,147,177,12,169,210,127,117,5,13,132,214,195,96,189,92,24,158,116,210,214,142,40,
+142,22,183,113,96,254,237,6,45,25,107,199,178,88,9,185,179,19,15,11,137,50,214,235,28,171,123,120,96,106,164,157,240,223,47,237,239,217,99,255,216,103,236,143,87,110,71,252,215,114,237,208,35,14,238,184,
+145,41,196,184,172,13,58,227,148,251,86,207,118,215,59,172,242,127,12,54,230,101,90,166,176,202,180,170,196,111,221,205,101,89,56,20,246,112,142,212,61,60,228,171,235,183,227,126,179,90,59,242,159,215,
+105,135,124,123,221,118,240,212,13,218,129,159,29,215,246,190,105,203,182,247,62,123,183,3,15,219,191,191,62,33,183,174,74,120,22,245,85,5,175,64,75,81,218,215,237,118,116,35,120,130,157,160,103,78,151,
+168,152,159,235,154,27,70,12,165,238,33,60,192,17,12,201,49,21,46,97,106,232,182,59,50,118,119,236,19,189,17,185,45,242,156,163,150,48,71,199,230,63,123,56,129,228,209,252,129,233,187,157,54,174,237,117,
+215,86,109,255,187,182,109,7,125,102,151,182,247,199,182,109,219,189,119,227,182,229,117,235,183,189,15,221,171,179,24,119,238,83,27,227,220,209,6,157,113,202,125,7,26,171,231,185,188,57,185,246,173,184,
+181,133,131,124,90,18,195,181,139,65,44,28,111,102,236,161,121,121,142,177,135,123,93,191,125,59,112,202,118,109,247,207,140,109,59,253,213,166,109,135,207,110,28,36,239,101,109,220,205,25,195,167,28,
+222,217,92,179,72,175,186,135,34,54,99,44,236,185,169,192,84,209,185,251,254,29,36,170,192,197,96,217,153,96,228,28,202,188,236,111,189,16,246,144,152,156,190,154,228,56,61,122,96,30,101,60,157,31,47,
+49,168,184,52,170,243,69,19,121,207,162,169,200,88,154,26,215,152,190,253,94,219,254,126,231,123,55,110,187,60,178,81,219,229,43,169,226,124,215,198,109,187,47,111,208,182,186,99,221,182,217,91,215,105,
+39,157,118,66,39,9,17,188,170,238,161,87,39,130,34,39,88,82,158,173,199,139,44,29,88,205,82,224,49,245,96,15,11,125,151,84,12,149,61,196,68,36,49,81,247,112,18,49,121,254,206,85,49,18,157,70,223,185,114,
+157,29,15,122,122,24,247,92,39,115,216,167,50,150,30,201,113,231,36,39,239,219,30,187,85,219,254,209,245,218,246,15,174,223,182,187,107,131,182,205,151,215,107,99,191,20,36,239,147,107,182,77,223,180,
+246,160,236,161,123,176,68,83,243,163,147,66,243,178,41,75,239,219,145,52,15,139,238,220,184,251,66,3,185,178,222,181,149,243,124,236,161,169,200,216,53,39,103,110,254,55,76,4,76,128,114,62,6,82,205,235,
+93,194,214,165,235,140,105,80,131,243,70,23,203,22,202,49,153,14,38,165,151,167,145,25,56,121,223,238,130,45,219,216,192,89,91,221,183,118,199,216,45,194,30,142,9,142,183,77,216,195,45,6,97,15,77,33,30,
+111,74,118,164,167,125,94,123,83,50,35,245,191,187,217,67,243,108,25,49,212,186,135,249,155,191,26,54,246,112,235,176,135,99,194,30,110,22,246,144,177,91,135,61,220,34,236,225,58,97,15,71,135,61,220,182,
+175,238,33,246,208,65,56,227,24,86,59,21,207,199,30,186,131,195,80,48,126,25,107,245,227,247,36,24,126,207,83,91,60,112,188,170,123,168,134,154,178,98,73,70,38,247,21,159,170,222,37,131,80,27,170,159,
+133,152,225,129,184,31,74,203,141,75,79,127,152,128,132,166,130,204,0,123,184,69,216,195,13,194,30,110,30,246,112,171,176,135,235,133,61,92,43,236,225,26,97,15,87,235,174,123,120,250,248,78,48,171,186,
+135,115,154,61,236,171,123,248,221,52,210,148,52,238,240,178,135,91,135,61,220,56,238,189,78,216,195,181,195,30,174,25,246,112,181,129,117,15,177,135,103,142,110,91,30,188,101,219,97,215,29,250,111,87,
+153,19,236,97,188,97,238,179,135,227,194,30,174,17,246,112,149,176,135,171,206,172,238,225,177,163,218,50,123,44,211,150,217,122,153,54,106,139,81,109,133,89,96,15,187,11,179,118,177,135,223,5,90,230,
+224,253,7,113,249,187,227,145,162,242,94,121,212,80,227,202,163,6,211,122,204,84,197,147,95,90,136,14,138,52,136,90,134,128,36,249,243,228,98,15,183,10,123,184,218,103,115,3,210,23,150,107,43,222,150,
+113,246,238,60,55,175,216,86,185,121,149,182,114,10,185,174,244,150,149,218,138,215,173,216,86,152,115,117,15,95,188,236,161,104,253,162,97,15,87,61,110,213,206,125,149,34,115,213,61,52,95,75,84,76,97,
+47,106,246,208,218,182,216,67,235,89,79,23,123,56,173,139,61,124,113,214,61,236,177,135,89,8,244,229,198,18,10,249,177,148,17,223,132,137,18,141,103,170,177,124,222,212,114,40,100,138,196,36,15,162,83,
+17,55,211,192,142,217,104,187,44,184,252,29,73,23,39,185,8,215,221,176,57,219,253,102,148,121,223,202,173,193,143,69,119,53,53,137,200,228,108,24,216,66,154,152,101,229,36,63,227,102,179,44,62,30,183,
+7,149,149,206,164,140,237,135,147,15,79,176,158,205,158,212,107,242,183,173,122,202,208,34,74,123,117,15,135,212,81,67,249,161,161,252,140,73,62,143,82,3,196,157,92,205,21,199,150,102,99,251,122,200,189,
+116,215,228,185,41,207,173,121,222,211,247,177,175,249,30,119,181,187,184,67,30,108,48,183,133,231,65,248,172,103,45,241,228,197,139,230,153,41,39,60,215,200,180,62,195,23,207,171,177,213,99,15,211,8,
+174,138,89,173,207,11,120,130,135,46,210,158,147,6,90,174,175,177,120,203,34,121,158,183,188,238,80,188,175,251,103,102,154,90,206,234,31,28,233,63,223,51,120,56,122,168,199,30,246,216,195,30,123,216,
+99,15,123,236,97,143,61,236,177,135,189,186,135,67,186,169,165,199,30,246,216,195,30,123,216,65,230,220,92,74,25,64,203,85,202,249,193,216,67,242,254,98,15,231,235,186,135,84,1,85,133,163,91,93,71,134,
+84,117,15,1,211,68,109,197,30,22,51,108,155,214,121,242,124,197,30,82,200,23,44,93,66,81,26,44,162,82,42,189,98,16,201,30,124,78,69,91,6,82,18,96,24,225,121,160,77,18,10,30,99,175,186,104,53,39,146,14,
+203,137,94,28,136,71,142,248,100,190,55,33,199,180,211,114,214,244,133,190,237,34,27,140,207,98,137,159,51,87,229,148,126,145,60,39,69,147,241,64,20,116,15,68,123,49,5,227,79,154,68,21,87,160,101,73,126,
+1,209,148,114,190,207,53,75,19,77,48,74,246,79,101,91,37,73,224,56,100,137,85,48,142,26,128,42,0,243,64,200,230,76,185,251,206,121,122,143,249,130,61,44,66,141,216,172,202,150,84,25,49,210,68,138,61,178,
+165,194,241,136,95,168,123,40,241,144,165,180,149,168,25,13,73,29,52,162,235,30,50,150,56,156,118,178,155,78,35,62,163,214,161,218,33,29,174,222,165,214,163,204,35,86,163,223,114,223,180,134,0,107,241,
+38,174,59,98,235,30,114,103,110,76,118,68,241,206,112,189,204,149,233,176,200,138,75,59,93,208,37,119,174,43,212,171,210,101,241,135,232,23,1,206,193,154,115,225,121,206,30,138,166,85,152,181,232,180,
+110,28,175,122,153,209,4,164,140,166,163,214,139,229,210,37,62,45,224,178,187,194,37,237,38,143,96,232,136,96,15,69,207,154,122,24,94,228,9,183,174,34,113,122,154,70,171,155,63,52,134,11,184,164,219,170,
+218,135,122,152,139,151,188,137,23,144,55,41,135,64,224,18,77,71,39,90,207,19,246,176,234,30,74,42,170,204,87,213,74,43,0,147,209,132,223,164,132,122,25,26,160,254,161,40,93,117,32,186,217,67,129,171,
+12,102,44,79,160,193,54,20,52,172,179,227,121,94,247,144,138,182,184,164,129,116,154,49,77,123,73,29,75,245,78,75,73,134,88,6,235,81,234,60,143,94,238,46,131,64,180,166,146,143,168,46,216,249,127,28,158,
+83,230,17,197,208,120,154,131,245,122,129,150,100,76,164,82,249,254,83,110,76,117,144,151,3,190,135,51,23,143,237,219,240,95,188,127,30,182,149,154,63,126,79,198,208,244,40,211,167,101,226,127,186,10,
+176,114,215,74,15,253,65,243,35,192,67,20,173,177,59,88,177,56,223,99,180,158,54,229,208,93,82,192,115,105,17,153,161,122,216,184,229,198,34,179,68,164,84,122,164,197,5,92,82,9,80,8,84,69,1,209,219,148,
+165,1,230,74,221,195,186,84,168,176,89,61,89,236,81,25,95,56,158,175,139,220,166,41,36,139,72,205,165,171,96,43,87,102,48,99,245,44,67,185,177,177,91,69,107,84,16,32,133,0,122,144,28,234,77,226,181,185,
+86,247,176,12,54,62,139,36,99,148,192,197,248,194,242,170,46,113,21,97,22,192,164,151,140,173,50,68,122,182,138,91,148,161,40,25,145,157,112,220,248,151,158,18,184,80,190,19,157,18,185,209,98,86,41,5,
+110,237,115,242,137,44,66,254,226,226,95,231,209,113,111,21,181,156,80,58,201,92,161,223,165,211,242,23,100,222,187,59,227,102,98,174,123,250,145,214,227,182,120,161,194,106,164,145,82,200,170,123,104,
+92,149,160,219,252,107,26,242,74,235,92,104,78,85,185,44,226,140,196,159,91,155,134,184,178,36,68,3,192,103,101,99,140,20,209,185,191,113,239,41,240,210,223,159,167,117,15,81,100,222,28,118,169,234,36,
+121,83,85,157,182,238,205,42,50,84,239,115,119,70,27,195,5,120,72,63,253,141,2,44,189,86,45,227,250,123,85,74,112,48,246,176,0,143,97,175,123,200,96,247,117,120,179,122,132,241,132,222,162,177,87,159,
+115,73,31,235,185,98,155,68,99,99,191,88,99,67,192,244,101,104,120,245,104,148,2,46,107,88,104,44,216,206,140,234,30,10,94,210,80,137,138,251,171,201,42,82,127,105,98,92,217,225,251,51,145,186,14,207,
+210,162,23,101,206,11,126,112,239,228,76,236,29,151,150,192,115,99,84,73,173,93,45,234,143,61,254,152,206,45,103,86,79,198,26,216,170,94,125,204,53,101,85,130,142,94,148,93,89,2,210,73,115,99,65,74,110,
+205,232,154,210,6,150,1,53,3,212,99,252,215,247,201,141,231,42,123,120,234,107,143,104,167,126,101,92,103,225,94,183,164,85,129,56,83,136,160,35,185,40,66,77,106,88,245,211,140,91,56,143,57,87,3,84,205,
+195,226,148,10,194,174,170,183,117,113,145,88,81,224,37,109,245,92,99,15,111,188,243,210,118,206,15,199,180,179,254,176,106,59,243,252,83,59,69,104,60,92,72,208,161,110,47,12,175,46,41,169,140,170,74,
+0,50,88,254,140,73,228,238,220,183,187,62,169,97,82,132,41,58,173,8,53,141,224,255,26,118,246,240,138,43,47,111,23,189,235,184,118,238,247,182,104,231,252,105,245,118,118,91,165,157,217,86,106,167,191,
+226,132,206,130,29,123,232,181,155,55,52,205,48,212,50,143,251,150,177,216,37,189,107,206,213,32,224,76,99,159,209,117,97,145,94,238,38,75,205,18,176,93,95,51,21,113,103,226,240,97,97,15,15,62,107,207,
+118,214,228,157,218,121,191,90,183,157,219,86,235,55,246,140,224,120,167,126,125,227,126,246,144,107,154,94,228,191,240,156,238,155,148,234,114,146,98,152,208,45,85,100,217,16,16,216,68,98,243,118,97,
+181,85,219,184,48,90,154,76,21,182,170,68,145,133,196,156,103,15,15,62,224,191,199,79,216,168,157,251,187,181,58,198,158,241,171,53,219,105,65,241,78,123,122,197,118,252,147,171,181,19,254,125,165,54,
+254,180,103,234,30,122,211,150,114,122,174,48,60,211,142,222,101,40,132,150,43,99,152,170,135,165,151,0,45,209,219,148,102,85,85,220,97,183,193,134,75,46,247,123,86,165,45,235,227,97,97,15,247,56,99,108,
+59,233,111,182,111,199,125,117,199,118,196,93,91,182,253,63,28,26,237,214,205,219,238,87,142,105,123,239,183,103,59,228,232,253,59,91,50,140,230,162,122,183,10,59,86,97,56,110,92,6,251,154,70,128,240,
+48,216,162,160,174,131,52,119,155,158,170,151,45,61,107,252,86,205,82,61,44,74,63,31,123,40,41,138,7,124,95,233,4,138,190,52,214,27,51,29,209,125,185,134,125,212,179,54,241,18,121,71,39,128,220,147,76,
+104,122,198,229,228,61,247,220,189,29,242,241,237,218,225,119,134,74,251,232,182,49,120,235,182,207,135,198,182,221,223,186,101,59,250,184,163,58,27,110,86,45,178,47,129,135,43,51,200,130,64,111,22,149,
+86,84,105,45,20,52,140,21,147,233,202,20,86,101,60,205,195,92,187,48,249,74,95,65,34,216,67,6,75,46,184,179,113,220,93,166,200,231,115,132,61,220,235,85,227,218,17,147,182,109,71,220,187,99,59,252,43,
+219,181,241,15,237,222,78,153,120,96,59,242,109,251,183,163,143,57,186,51,142,173,160,44,204,43,131,98,24,206,144,161,229,202,117,5,77,93,46,36,119,54,117,73,51,173,147,229,203,85,187,84,162,81,215,221,
+48,174,74,120,206,172,238,225,28,97,15,119,61,116,135,191,28,122,239,214,109,252,163,187,180,51,191,113,80,59,113,234,94,237,160,251,182,106,187,223,54,166,29,113,226,225,157,189,99,46,109,169,230,145,
+76,212,216,21,200,24,202,149,5,175,170,132,103,183,195,126,149,245,174,121,155,91,235,101,121,115,93,98,196,104,75,192,10,84,115,149,61,60,224,77,59,182,19,254,110,151,246,242,7,83,33,231,238,45,218,62,
+193,241,118,255,202,134,109,231,119,111,210,142,62,237,136,103,177,135,130,137,205,115,227,76,52,149,48,20,25,94,24,30,151,118,91,139,197,61,131,5,61,41,170,224,101,245,101,138,218,110,187,237,230,29,
+123,184,195,222,219,61,189,207,87,55,105,251,134,61,220,59,198,238,25,246,112,183,176,135,59,132,61,220,106,0,123,104,119,145,235,121,24,236,85,207,214,142,164,113,110,250,170,187,119,204,193,42,71,67,
+241,236,85,217,204,183,252,43,55,30,42,123,152,165,99,177,135,157,66,54,179,205,30,110,31,246,112,143,176,135,187,135,61,220,45,236,225,78,97,15,183,15,142,183,85,216,195,45,194,30,158,211,85,247,208,
+186,213,35,153,151,44,88,102,218,155,146,75,87,173,195,218,186,177,69,35,10,191,16,246,112,88,235,30,98,15,119,12,123,184,83,224,172,29,195,30,50,118,219,176,135,219,4,199,219,41,236,225,54,93,236,161,
+19,195,190,122,132,32,200,206,162,221,18,14,123,104,95,138,145,54,227,124,207,21,21,21,129,171,87,109,231,204,172,238,97,149,22,51,132,134,141,61,220,60,117,15,183,15,123,56,46,236,225,184,176,135,29,
+99,195,30,110,23,246,112,163,176,135,235,133,61,220,161,143,61,172,173,84,46,93,219,50,92,117,48,246,80,126,172,46,56,247,125,33,236,97,26,244,219,195,198,30,110,22,246,112,92,216,195,45,194,30,110,23,
+246,112,135,176,135,155,132,61,220,48,236,225,122,97,15,71,135,61,28,125,229,154,109,187,51,183,77,38,54,190,115,10,56,167,217,67,30,211,85,10,240,123,195,206,30,110,148,186,135,59,132,61,220,58,238,189,
+73,216,195,13,195,30,174,31,246,112,157,176,135,163,223,191,74,91,227,150,149,219,42,215,174,220,86,125,117,95,221,195,3,183,104,219,239,178,125,39,128,205,169,186,135,243,132,61,220,62,236,225,250,97,
+15,215,14,123,184,118,216,195,142,177,183,198,216,91,86,202,19,131,223,185,106,91,254,234,148,177,191,116,84,27,117,76,216,195,221,251,216,195,205,195,30,174,55,244,186,135,35,138,61,220,38,236,225,58,
+97,15,87,15,123,184,106,216,195,149,195,30,174,52,144,61,124,67,216,195,238,186,135,71,45,218,70,141,27,213,73,13,229,198,85,218,222,231,53,206,171,154,101,5,167,90,33,9,80,120,97,110,172,162,101,31,104,
+121,93,242,228,3,242,140,203,179,126,159,170,126,80,180,103,72,2,113,167,232,238,96,119,45,185,155,186,179,237,243,88,182,66,31,113,197,177,147,247,77,182,219,248,119,155,189,118,211,182,198,71,178,253,
+242,241,101,219,178,31,88,182,173,252,174,149,219,202,111,205,243,166,244,248,141,171,180,149,174,89,169,173,116,197,74,109,5,117,15,47,90,188,45,183,247,114,157,45,86,227,209,126,179,167,42,88,214,154,
+119,32,123,152,156,250,167,72,112,1,10,47,220,87,190,19,85,202,88,11,4,64,8,188,231,57,215,44,207,50,183,132,63,232,187,131,253,164,252,71,159,196,27,185,207,153,204,32,111,116,106,222,240,191,110,181,
+223,86,127,30,123,217,216,182,206,45,235,180,101,63,177,108,91,230,195,203,180,229,223,181,124,91,233,205,113,241,235,66,155,94,29,218,244,202,149,218,18,111,92,162,173,50,126,149,14,123,104,138,154,25,
+123,152,159,249,89,26,247,91,93,117,15,39,37,178,127,34,239,73,173,82,8,173,158,101,44,242,101,137,60,51,164,94,134,212,195,253,173,243,12,66,3,211,217,43,211,200,45,46,175,166,169,208,219,113,177,7,226,
+158,83,114,20,242,211,109,183,223,182,29,114,216,33,109,251,215,110,223,94,122,243,75,219,210,31,89,186,189,228,182,151,180,81,183,102,44,223,60,170,117,215,61,52,143,118,215,61,172,219,195,105,57,146,
+94,170,123,216,205,30,206,255,117,15,229,221,73,84,254,28,89,195,239,35,82,249,93,26,238,151,221,236,161,2,232,189,186,135,61,246,112,104,210,225,33,137,75,103,70,185,136,224,125,129,194,216,134,204,161,
+62,247,205,173,43,215,5,148,252,156,243,217,68,221,41,137,238,83,28,108,37,194,78,204,248,236,156,8,100,9,57,49,135,96,19,51,78,5,161,201,46,251,202,115,123,223,182,204,161,249,59,46,14,218,62,15,44,207,
+97,152,75,72,128,94,29,36,111,102,239,109,150,11,91,204,202,31,236,51,188,199,30,166,33,122,117,15,211,8,61,246,112,86,134,207,236,252,236,44,37,30,179,243,31,141,148,223,157,43,6,247,216,195,30,123,216,
+99,15,123,236,97,143,61,236,177,135,67,91,64,12,121,90,234,213,61,236,213,61,188,188,191,138,150,211,191,94,221,195,220,98,74,84,254,127,170,238,161,131,115,196,217,139,186,238,33,227,170,144,77,33,120,
+116,87,85,247,144,154,47,87,79,117,24,197,249,158,61,172,162,20,36,132,37,69,98,108,61,244,155,12,30,200,30,206,151,117,15,5,174,170,107,74,175,193,232,162,75,93,130,79,35,237,80,156,4,145,154,135,114,
+167,238,155,39,133,114,234,200,253,71,60,123,216,45,255,167,143,166,219,168,106,31,116,88,116,208,12,164,235,162,213,170,107,214,201,32,124,78,227,193,96,170,93,234,32,210,40,26,75,242,198,18,206,80,250,
+2,45,251,234,18,119,190,158,211,196,167,114,230,52,213,161,64,62,159,30,25,197,149,217,89,89,199,6,227,243,222,182,20,209,216,74,209,73,126,60,146,163,7,162,194,185,55,61,243,19,236,31,165,13,145,118,
+129,27,20,238,92,211,155,34,23,34,39,46,93,179,222,37,52,35,247,55,61,81,219,18,146,250,27,37,66,173,130,23,20,61,197,32,210,130,248,57,198,138,230,254,110,118,55,71,38,123,88,84,169,87,13,67,179,69,104,
+6,9,32,225,103,72,9,196,185,50,73,49,17,106,209,165,197,32,234,233,210,125,213,69,190,35,138,61,20,93,187,113,60,184,78,225,120,52,87,92,148,193,100,73,136,22,66,52,50,99,16,86,119,153,4,42,121,250,76,
+134,195,244,24,238,49,238,201,32,70,84,221,195,82,205,233,221,130,57,10,199,35,75,162,150,101,180,177,172,151,9,200,9,199,25,68,153,87,53,76,233,184,6,3,46,141,225,17,193,30,82,186,26,211,34,112,85,164,
+45,169,126,225,120,2,149,158,22,172,244,50,141,116,149,245,44,254,144,114,143,177,158,194,241,140,107,154,107,65,141,120,141,252,105,68,176,135,122,183,144,187,50,178,144,60,175,5,105,25,203,196,224,2,
+23,131,141,225,42,231,73,82,92,192,101,119,57,79,174,93,165,17,136,78,73,157,144,105,130,26,201,227,92,173,123,40,43,98,44,163,170,198,74,5,174,110,6,81,207,23,127,104,138,82,214,143,108,152,214,178,234,
+65,84,73,192,210,99,250,58,137,177,49,174,97,240,17,84,183,228,79,180,93,100,137,140,166,158,165,251,154,171,236,161,30,20,152,170,242,59,227,186,43,228,85,49,117,95,215,203,162,53,131,69,232,42,126,81,
+226,83,129,75,175,18,165,10,106,196,167,20,124,130,28,58,198,226,131,68,130,225,230,226,185,206,30,18,142,50,130,193,198,169,0,197,112,15,3,41,220,53,136,199,199,190,15,23,80,105,139,81,130,85,17,106,
+213,171,2,153,222,39,47,214,179,140,53,134,121,7,77,200,64,246,176,42,94,234,229,186,138,61,119,8,252,49,63,247,132,235,97,157,90,38,249,112,81,40,73,196,50,253,59,30,9,38,199,71,7,249,149,60,147,147,
+80,252,61,49,89,161,120,40,19,121,49,87,53,118,100,63,85,232,81,154,40,2,87,49,56,137,134,164,131,113,140,46,224,178,248,36,115,51,166,137,200,148,166,90,239,50,188,20,182,85,251,1,30,80,100,169,64,39,
+17,161,242,41,232,146,161,115,157,61,20,157,7,86,159,100,176,30,55,21,21,70,167,247,171,12,32,119,55,61,9,78,2,149,177,90,227,148,171,51,178,168,82,194,113,76,132,255,195,34,131,46,147,218,135,164,137,
+193,122,212,231,26,193,88,214,0,146,148,190,128,246,164,139,127,157,71,167,103,93,15,235,218,215,85,250,123,56,83,198,229,233,221,123,18,65,85,91,255,177,30,246,159,72,31,241,7,30,61,174,165,143,63,121,
+124,7,194,68,124,122,83,2,81,247,227,146,3,111,210,52,36,50,87,57,78,238,207,221,129,152,18,140,42,48,165,7,187,141,211,32,20,242,245,123,149,162,90,70,18,169,145,53,21,56,93,162,181,234,113,162,84,104,
+81,92,252,71,110,57,118,248,30,67,221,133,187,69,231,212,178,18,235,228,187,151,103,220,220,155,164,224,225,104,150,59,6,163,207,172,91,25,119,241,37,23,181,115,95,159,26,105,239,221,190,93,152,66,53,
+150,118,190,78,197,46,153,168,199,155,247,112,91,89,149,199,152,213,115,18,14,99,147,177,133,219,86,129,230,170,89,204,59,170,142,98,213,82,172,107,50,12,149,225,175,123,120,225,249,237,226,235,78,107,
+151,124,238,160,118,201,223,110,217,46,121,106,116,187,228,71,99,58,189,205,3,44,26,188,65,99,142,65,86,66,92,83,176,17,97,5,30,17,87,144,146,72,8,82,12,214,251,98,130,177,93,243,120,245,126,1,151,221,
+0,166,220,92,35,13,103,221,195,118,206,155,142,107,151,222,191,95,187,236,39,91,180,87,254,97,237,246,138,182,102,187,180,173,209,46,250,231,141,59,198,130,49,61,230,218,34,211,76,37,30,238,74,12,110,
+154,49,221,24,175,133,244,136,200,122,189,86,95,85,232,209,188,94,193,173,170,94,86,218,90,175,195,86,247,240,216,247,108,221,94,253,155,49,237,213,109,237,118,89,27,221,49,246,146,191,172,222,46,14,180,
+117,97,112,188,179,206,123,134,59,36,217,247,230,107,109,107,126,45,58,77,79,214,92,139,110,169,154,135,2,149,121,85,186,169,177,170,200,99,49,135,102,0,1,177,234,26,215,43,111,26,54,246,240,224,179,118,
+254,195,43,127,188,107,187,244,187,123,181,243,191,179,109,59,231,201,141,218,25,255,180,110,59,233,27,107,183,211,255,121,141,118,198,167,119,235,236,67,153,95,177,251,242,98,46,107,49,80,165,238,245,
+106,213,77,51,5,249,216,20,100,158,101,48,146,197,216,53,79,87,189,195,110,208,178,62,46,218,148,84,113,88,217,195,147,190,176,123,59,245,158,61,219,248,143,237,214,142,252,240,206,237,176,15,109,219,
+246,125,199,216,206,162,252,224,35,247,239,48,75,140,214,187,140,45,20,143,193,85,242,30,198,83,85,241,128,91,12,150,31,27,231,162,185,241,111,202,234,230,14,171,132,167,160,88,176,165,224,9,17,240,12,
+15,123,152,186,135,7,188,102,135,118,250,244,128,89,119,237,221,78,250,242,158,237,216,59,118,109,7,125,120,187,118,192,81,251,246,223,5,96,31,202,27,231,166,69,165,85,173,180,114,99,174,108,252,202,153,
+141,95,61,204,96,235,99,73,139,224,36,112,113,99,189,218,109,176,169,200,173,75,230,87,198,230,178,252,206,218,120,88,216,195,237,118,216,174,157,254,173,93,219,105,19,246,106,167,60,176,103,59,241,171,
+187,181,99,62,191,107,59,240,138,221,58,27,110,118,23,237,63,217,108,171,26,105,221,133,225,138,57,172,122,135,26,132,39,72,52,172,152,170,222,97,85,193,19,152,24,92,53,75,205,4,64,203,5,23,92,176,31,
+4,153,89,221,195,217,102,15,143,252,204,14,237,164,169,187,180,19,98,236,113,247,239,210,142,186,123,135,118,232,39,118,104,103,158,123,70,39,104,21,123,200,37,185,235,192,222,45,20,175,184,67,99,221,
+52,101,250,42,208,82,66,194,173,165,161,2,88,25,124,254,249,231,119,140,133,210,22,249,66,121,251,124,236,33,21,110,232,153,9,49,124,186,210,9,73,54,40,250,40,249,214,202,179,228,179,78,15,243,133,133,
+50,86,62,148,76,231,225,4,163,9,249,229,255,216,247,213,219,182,227,166,109,223,198,127,117,167,118,244,125,185,226,105,242,158,237,204,41,7,181,99,223,113,96,59,118,252,177,157,52,206,205,45,170,199,
+202,147,237,88,72,27,245,166,49,91,215,206,20,134,87,235,219,2,45,187,107,29,118,215,46,45,208,146,11,151,177,178,41,171,36,27,1,130,23,245,124,41,231,231,88,221,67,236,225,203,195,30,158,24,246,240,156,
+176,135,167,132,61,60,52,236,225,94,131,176,135,181,195,104,188,201,107,185,175,200,92,165,255,68,240,238,2,143,118,48,141,99,233,167,188,91,202,105,44,115,109,243,176,113,90,236,161,133,127,213,80,147,
+78,194,6,10,9,130,17,204,209,186,135,7,133,61,60,37,236,225,81,97,15,15,10,123,184,127,112,188,189,194,30,238,58,128,61,180,87,44,37,229,118,222,128,92,88,148,230,206,213,195,22,245,210,75,153,152,249,
+187,12,150,82,50,88,54,101,28,91,238,205,179,186,135,216,195,253,195,30,30,24,246,144,177,251,132,61,220,51,236,225,46,97,15,199,117,177,135,2,88,41,220,245,176,232,203,64,75,65,189,91,84,169,37,160,52,
+212,84,163,129,204,229,242,102,227,216,78,202,172,178,135,230,231,190,186,135,223,156,99,117,15,119,12,123,184,111,216,195,189,195,30,238,25,246,112,183,176,135,59,195,241,194,30,110,213,197,30,90,43,
+235,221,42,245,7,168,146,134,202,181,1,150,140,117,204,98,10,194,27,2,45,5,37,195,160,123,188,190,128,186,135,63,157,227,117,15,119,10,123,184,91,224,172,93,195,30,50,118,199,176,135,219,5,199,219,53,
+236,225,118,97,15,143,61,237,232,118,230,89,103,118,162,183,219,75,141,187,98,15,173,91,145,222,150,117,166,22,68,183,245,109,85,177,172,177,202,232,161,176,135,198,177,191,221,197,30,170,181,250,104,
+254,254,35,153,202,46,75,0,86,204,70,33,27,250,234,126,109,245,12,53,30,105,173,181,226,110,55,102,27,103,114,166,138,71,210,83,129,45,198,60,189,83,216,195,29,194,30,110,31,246,176,99,108,216,195,29,
+195,30,142,9,123,184,65,216,195,29,187,234,30,218,104,43,246,144,193,3,217,195,110,14,81,3,200,160,102,149,61,76,196,254,195,176,214,61,196,30,238,16,246,112,155,176,135,59,134,61,220,37,236,225,230,97,
+15,55,9,123,184,65,216,195,117,194,30,174,61,68,246,208,244,226,169,204,73,111,249,216,112,176,139,97,202,233,126,42,211,210,56,130,218,92,171,123,136,61,220,41,236,225,118,113,239,205,194,30,110,26,246,
+112,195,176,135,235,135,61,92,39,56,222,232,96,120,171,135,61,92,125,16,246,208,182,204,124,89,247,112,221,117,215,254,221,14,97,15,55,14,123,184,126,216,195,245,194,30,118,140,13,123,184,70,216,195,213,
+25,141,61,188,102,16,246,80,221,195,89,96,15,139,88,147,92,204,243,186,135,227,194,30,110,16,246,112,116,216,195,151,134,61,92,61,236,225,170,97,15,87,235,174,123,56,27,236,97,5,59,83,143,148,50,1,109,
+222,215,61,220,52,236,225,22,97,15,215,10,123,184,82,216,195,229,103,198,30,94,28,246,112,159,161,179,135,50,44,243,108,23,123,216,169,85,58,34,216,195,173,103,198,30,190,110,112,246,176,206,141,234,86,
+67,193,75,142,158,153,226,207,217,130,253,175,24,251,120,102,142,137,166,30,85,104,95,236,236,225,215,100,80,185,28,101,254,175,123,56,3,246,240,251,150,120,170,189,247,216,195,94,221,195,103,95,137,62,
+51,122,102,200,242,225,25,150,213,235,177,135,189,186,135,61,246,176,199,30,182,161,241,10,51,11,72,67,249,254,108,7,173,161,252,39,35,233,103,230,138,193,61,246,176,199,30,246,216,195,30,123,216,99,15,
+123,236,225,208,230,242,33,79,75,61,246,176,199,30,246,216,195,206,113,168,75,245,65,27,164,191,255,231,216,67,240,21,93,8,161,74,85,192,83,46,236,136,35,142,232,104,69,16,106,246,184,156,73,249,154,147,
+72,100,11,89,133,198,34,133,240,125,7,117,180,210,217,225,124,122,153,101,150,153,150,159,157,236,218,58,55,185,101,37,230,6,53,151,19,13,90,93,126,134,65,43,234,185,213,18,168,94,251,203,95,254,242,222,
+28,106,223,31,241,232,164,168,107,126,235,88,147,216,132,118,202,41,189,94,164,167,44,21,14,67,186,235,30,22,123,88,55,252,187,6,253,226,139,47,238,104,53,75,190,216,183,145,55,255,179,135,37,23,36,58,
+171,218,135,212,185,140,165,170,243,188,40,217,67,189,79,128,70,121,71,206,80,116,41,21,64,73,31,52,14,201,81,149,1,228,198,243,69,221,195,110,246,176,138,198,85,145,25,26,104,2,22,122,142,162,91,8,81,
+41,3,170,198,146,70,41,238,208,201,131,113,63,34,217,67,252,67,55,190,67,223,81,72,30,225,89,149,4,164,218,83,182,132,4,162,138,62,210,106,82,247,80,253,120,165,196,21,204,176,135,228,80,94,203,104,87,
+179,19,207,56,88,115,146,72,35,162,129,124,221,85,147,110,95,140,28,242,209,168,124,238,78,224,114,227,154,155,220,250,171,91,62,39,104,69,71,117,68,180,86,247,71,24,58,33,162,113,183,131,254,201,31,36,
+2,165,127,38,53,34,233,167,209,40,70,80,16,42,124,150,184,172,27,246,160,221,34,73,194,68,208,72,171,229,34,208,113,101,106,30,198,82,223,150,40,149,190,11,146,39,42,147,28,18,154,193,117,184,58,229,46,
+181,187,192,201,104,13,193,11,124,46,106,199,216,63,198,208,41,105,156,71,243,241,180,92,79,71,250,224,218,186,37,103,120,145,103,132,220,183,70,76,118,127,12,191,47,145,248,223,253,49,129,69,208,161,
+182,83,105,135,11,138,210,90,149,203,117,179,135,197,46,249,90,55,142,71,109,71,198,4,13,208,195,132,105,221,132,41,165,15,93,53,53,159,71,35,50,84,15,150,50,96,158,215,61,228,118,12,43,114,133,177,221,
+149,241,138,84,35,75,162,104,39,229,71,193,24,191,92,218,248,173,42,151,213,195,148,184,12,38,113,170,170,62,220,185,110,36,55,135,107,12,34,56,74,2,42,33,103,199,30,29,224,212,49,114,137,7,51,3,124,35,
+130,53,213,180,246,205,99,171,120,241,231,220,122,152,55,112,122,220,233,43,105,237,135,243,198,191,167,101,41,222,107,206,45,195,36,5,254,184,22,231,202,158,170,196,49,176,88,92,201,251,185,185,72,205,
+173,245,48,113,233,96,53,76,171,142,105,21,124,164,210,229,254,221,117,15,193,211,162,120,25,235,123,12,38,160,225,113,49,248,187,137,240,83,51,198,167,184,125,49,198,174,151,103,212,115,12,142,126,234,
+93,25,67,247,199,213,30,136,176,243,23,130,130,214,44,110,73,239,249,216,184,169,186,135,190,70,80,198,101,171,80,92,53,66,129,151,140,166,163,244,51,122,24,16,66,171,69,70,44,80,21,93,138,135,40,224,
+210,56,214,235,12,134,18,80,233,205,243,186,135,85,248,73,4,46,50,141,241,92,184,155,67,212,0,190,38,128,161,197,185,170,8,77,165,103,220,14,86,221,146,177,130,89,145,106,20,244,197,30,234,201,98,15,231,
+122,221,67,61,103,110,173,226,112,12,55,94,171,172,103,185,120,81,166,162,181,30,54,245,80,208,195,4,170,14,132,143,171,156,167,32,198,96,141,82,53,33,104,180,177,135,46,215,159,39,236,161,200,45,153,
+168,42,118,212,237,198,105,21,133,211,24,122,182,92,220,171,94,54,23,11,88,12,102,160,30,230,214,165,199,36,49,150,136,104,20,24,16,247,151,149,249,251,37,23,174,186,135,115,141,61,188,226,138,203,59,
+83,149,55,47,59,42,146,76,15,50,90,54,101,238,214,219,198,118,69,115,31,107,32,189,86,189,91,226,113,189,138,138,49,182,77,125,166,45,247,5,148,193,148,183,36,76,115,167,238,225,229,151,182,87,188,115,
+124,187,224,238,173,218,235,255,113,108,103,169,198,96,43,37,36,26,55,149,84,120,83,176,188,66,241,140,89,13,192,248,130,47,53,10,119,229,202,100,197,62,46,162,148,129,162,178,121,26,85,90,171,49,233,
+41,125,101,177,135,196,47,115,150,61,220,99,183,118,222,43,207,104,175,126,223,9,237,234,175,239,217,174,251,245,198,237,250,182,110,123,67,56,166,215,125,111,219,254,37,30,234,132,161,50,48,111,14,40,
+9,195,51,245,104,4,115,174,70,144,176,136,208,197,26,51,148,235,22,77,202,101,5,38,127,195,239,107,68,193,173,126,159,212,152,54,147,209,112,60,174,205,224,110,246,112,182,234,30,94,250,224,184,118,195,
+111,54,107,55,182,151,181,27,218,122,253,198,94,19,104,235,138,47,31,212,49,24,147,96,169,39,104,233,149,122,204,177,30,159,115,199,66,242,164,146,130,144,241,170,183,229,218,122,219,112,208,24,134,134,
+121,218,171,207,61,181,224,16,15,72,138,169,223,169,112,245,48,3,171,1,4,178,217,170,123,120,198,109,59,181,55,252,120,151,118,205,143,183,107,215,252,124,179,118,245,239,215,105,140,189,42,132,218,21,
+79,62,83,127,69,202,169,229,245,74,33,120,122,204,216,99,156,113,200,85,77,45,197,251,115,99,89,148,172,203,6,130,121,156,10,94,48,211,0,60,192,52,87,43,44,175,26,197,171,96,248,124,236,33,81,170,100,
+201,206,73,50,179,39,51,117,77,114,165,115,31,78,59,182,147,113,85,82,157,63,118,98,220,242,222,240,68,143,36,147,249,135,195,206,219,189,189,238,137,195,218,133,159,63,176,157,253,215,1,59,110,223,181,
+157,253,213,109,219,185,15,140,105,175,250,143,181,59,228,169,30,102,24,215,20,108,24,34,81,232,6,182,6,162,120,8,53,63,111,140,235,229,218,36,16,193,125,94,213,110,53,128,41,206,216,215,16,30,217,218,
+176,177,135,251,29,189,219,159,175,251,167,35,219,13,211,78,207,115,102,187,106,210,201,237,130,123,14,107,71,157,248,242,78,90,121,250,217,207,236,63,153,54,24,89,201,127,55,149,6,240,64,182,224,151,
+10,214,178,26,130,241,8,108,140,98,112,21,113,244,90,156,97,229,228,53,165,137,242,188,105,216,216,195,44,205,158,190,234,239,15,109,175,255,250,177,237,242,73,71,180,139,191,118,80,59,231,161,189,219,
+161,151,237,217,161,210,108,198,193,240,76,59,214,176,12,174,59,117,10,195,51,221,128,60,234,49,231,138,200,178,44,228,183,100,133,33,12,173,61,47,169,107,193,150,69,152,22,114,107,1,49,35,246,80,16,163,
+184,55,142,93,176,31,17,234,212,44,39,31,119,51,121,92,249,144,60,8,241,85,159,181,30,78,54,116,103,222,204,180,76,55,147,179,214,252,221,217,193,239,94,57,253,128,118,201,131,7,181,11,31,60,160,157,243,
+213,125,218,113,159,222,163,179,163,104,115,206,134,157,5,132,49,42,15,46,176,82,175,118,99,120,122,151,43,51,152,219,215,53,21,198,102,213,47,53,197,117,195,149,22,44,197,46,249,30,60,111,102,117,15,
+201,139,173,209,85,19,136,193,19,178,128,120,204,53,236,49,116,167,60,155,230,89,241,89,6,167,69,223,155,121,117,66,118,40,38,230,23,127,121,232,107,119,108,151,60,177,87,187,224,107,185,77,233,107,251,
+102,12,239,213,142,255,252,46,237,200,147,15,235,71,241,164,123,166,159,170,147,86,198,102,183,179,223,149,171,222,33,15,176,224,23,185,77,57,230,104,110,173,151,235,146,177,42,253,87,160,165,87,134,51,
+100,174,176,135,231,135,61,60,55,236,225,217,97,15,79,15,142,119,98,216,195,67,95,179,123,103,195,173,216,67,70,235,185,34,73,245,104,25,204,88,61,95,220,161,12,203,116,165,145,76,57,182,127,164,159,220,
+183,46,24,171,138,150,117,179,154,221,77,83,146,30,30,118,246,240,248,176,135,103,133,61,100,236,169,97,15,79,8,123,120,228,32,236,161,224,194,85,81,163,85,133,182,80,60,145,218,170,136,235,139,234,22,
+255,146,21,243,119,21,120,100,112,119,69,75,51,0,182,33,219,52,253,120,15,163,135,157,61,220,63,236,225,105,97,15,79,9,123,120,98,216,195,179,194,30,158,31,246,240,248,1,236,161,200,109,15,202,182,140,
+164,68,111,23,134,39,114,91,247,218,221,48,79,75,25,25,44,177,48,183,90,89,105,48,193,171,80,90,39,14,25,115,29,174,137,43,23,199,52,20,246,48,203,199,175,102,243,111,82,120,168,59,250,54,242,158,9,88,
+169,55,243,156,77,188,108,167,28,155,55,240,112,222,12,14,104,250,238,97,15,143,11,123,120,70,216,195,139,195,30,158,29,246,240,232,176,135,251,135,61,60,178,171,238,161,221,69,27,110,246,160,108,191,
+84,101,203,193,48,60,94,32,125,52,23,91,1,153,99,37,31,54,12,24,173,167,109,214,49,182,2,149,69,195,92,99,15,15,15,123,120,110,216,195,19,194,30,30,17,246,240,176,224,120,7,134,61,220,59,236,225,49,125,
+117,15,237,32,218,57,100,176,143,165,144,53,39,115,231,238,226,142,242,102,185,182,123,121,24,204,173,171,196,182,41,136,135,200,154,138,8,151,74,50,214,134,162,20,178,27,237,145,121,233,125,123,89,217,
+12,248,175,252,222,131,106,187,4,248,186,43,61,122,96,30,40,173,157,203,206,221,120,207,233,225,184,230,162,9,66,103,209,84,36,130,78,77,207,77,223,41,236,225,225,97,15,143,8,123,200,216,131,195,30,30,
+16,246,112,239,176,135,59,118,177,135,230,231,2,45,221,136,100,140,74,50,100,86,220,217,248,149,87,203,151,69,95,153,19,131,205,199,62,54,142,77,121,69,171,89,6,14,165,238,225,176,176,135,59,135,61,60,
+52,236,225,193,97,15,15,8,123,184,111,216,195,189,130,227,237,28,246,112,187,176,135,231,118,213,61,236,43,224,214,129,176,244,148,157,70,203,72,198,234,93,61,198,85,245,140,49,108,252,190,16,246,176,
+234,30,218,148,15,150,55,231,217,195,93,195,30,238,31,56,107,159,176,135,140,221,61,236,225,174,193,241,246,9,123,184,243,0,246,80,16,171,218,134,182,101,138,21,180,47,229,227,90,245,212,98,96,196,178,
+135,187,135,61,220,51,236,225,110,97,15,59,198,134,61,220,35,236,225,86,97,15,199,132,61,220,181,139,61,180,149,90,236,161,113,87,236,33,99,25,90,11,1,61,14,189,27,177,236,225,110,97,15,119,14,123,184,
+71,216,195,189,194,30,110,19,246,112,108,216,195,205,194,30,110,24,246,112,131,176,135,59,118,213,61,20,112,172,93,185,183,49,105,45,107,17,47,137,176,136,159,47,216,195,221,195,30,66,107,199,133,61,220,
+42,236,225,230,97,15,55,13,123,184,81,112,188,151,5,195,91,59,236,225,75,195,30,174,117,198,232,182,197,48,213,61,204,57,210,247,178,160,232,84,199,235,131,182,212,80,43,140,214,105,195,75,6,42,121,103,
+42,91,138,235,173,152,63,124,94,166,155,187,146,10,254,48,81,116,34,153,1,246,112,231,176,135,91,134,61,28,19,246,112,147,176,135,29,99,195,30,174,27,246,112,157,24,189,78,216,195,85,82,247,112,57,117,
+15,143,126,145,212,61,220,46,236,225,102,97,15,55,8,123,184,126,216,195,117,194,30,174,21,246,112,237,176,135,107,190,125,229,182,218,91,82,254,175,155,61,60,114,233,182,68,95,221,67,23,23,204,172,238,
+161,77,59,96,116,23,123,56,239,235,30,98,15,183,9,123,184,65,216,195,151,134,61,92,61,236,225,75,83,247,112,245,212,61,92,165,187,238,225,229,207,212,61,124,201,243,212,61,172,11,194,228,209,34,186,53,
+176,163,209,1,236,225,200,168,123,184,77,234,30,110,27,246,112,195,212,61,92,41,117,15,151,29,172,238,97,216,195,151,12,82,247,112,48,246,80,198,150,128,135,61,252,89,31,123,56,169,143,61,156,127,235,
+30,214,73,190,87,107,94,75,77,143,188,60,83,154,186,135,211,165,139,125,236,225,252,95,247,48,219,48,127,25,164,238,97,63,123,152,83,202,94,221,195,190,5,129,234,123,166,158,81,150,125,67,5,73,102,58,
+45,61,15,130,183,96,254,163,197,242,44,155,103,29,235,78,154,138,76,89,119,56,121,119,24,173,190,105,246,174,191,153,213,207,183,92,170,153,29,146,169,174,94,116,27,97,220,119,162,125,99,63,147,30,254,
+186,13,55,123,80,25,163,147,18,145,31,118,113,144,245,108,246,164,94,211,183,234,49,191,90,249,184,170,194,255,167,40,235,75,242,244,11,86,134,98,244,11,54,184,171,158,105,175,238,97,159,171,145,25,40,
+206,56,182,175,135,92,151,122,77,30,151,106,186,103,242,61,125,31,251,154,239,217,74,181,187,184,67,30,165,117,245,166,157,10,87,172,90,207,170,60,219,41,240,152,103,134,213,103,103,214,203,179,221,195,
+207,73,221,158,161,77,23,207,99,108,173,216,103,188,138,148,222,184,6,96,132,75,53,53,68,61,62,247,117,91,169,198,230,203,242,184,255,202,182,140,33,163,196,238,144,199,233,243,25,61,199,13,126,214,141,
+251,255,107,252,82,121,195,203,228,33,18,115,85,76,175,238,225,204,92,113,78,125,127,88,123,120,78,189,201,57,249,119,230,138,193,61,246,176,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,28,116,
+202,29,210,60,220,7,90,158,146,35,208,79,255,230,55,191,153,158,243,222,251,112,76,57,233,251,57,70,201,153,18,9,147,163,78,242,4,194,148,186,119,214,121,145,211,253,210,113,248,25,202,60,231,73,52,94,
+206,129,73,160,232,178,73,252,137,92,156,36,34,90,28,184,219,253,160,129,118,58,217,119,95,222,207,93,72,152,223,153,28,201,196,119,236,166,230,208,237,21,75,44,177,196,58,67,201,183,103,106,112,68,100,
+75,231,244,126,60,99,159,122,234,169,199,163,99,190,47,82,254,169,5,109,121,99,78,236,157,222,51,212,233,95,175,238,225,255,101,246,144,54,164,91,1,244,162,101,15,75,127,101,12,23,142,103,236,82,244,189,
+232,234,30,22,123,88,183,131,51,184,184,67,198,210,70,146,56,208,125,9,84,243,117,221,195,18,144,82,236,17,141,82,5,16,164,117,3,151,84,121,126,78,68,230,226,208,218,249,130,61,172,82,98,5,127,0,61,8,
+207,104,56,60,78,251,193,90,36,15,164,14,72,21,90,106,82,99,114,68,98,23,141,129,152,177,41,95,27,243,35,146,61,228,162,133,227,49,24,212,65,13,91,10,217,66,242,170,66,94,33,121,140,44,224,146,14,132,
+220,152,222,139,219,59,125,32,148,33,97,26,81,236,161,132,129,129,221,61,91,149,180,168,236,244,36,25,176,132,131,75,227,36,200,150,232,61,24,71,87,93,192,37,101,110,225,59,132,47,36,80,180,95,52,96,35,
+134,61,172,146,97,94,25,56,176,50,158,198,32,75,162,199,34,244,230,210,180,150,4,106,3,139,62,2,180,224,1,94,5,50,50,168,226,15,71,12,123,88,226,110,233,226,96,144,86,55,142,71,241,78,129,167,190,146,
+146,68,51,170,114,73,227,37,29,173,43,216,201,160,168,131,70,4,123,200,32,146,126,227,84,30,220,93,195,116,48,224,178,187,254,33,29,87,33,2,122,181,232,82,31,211,119,185,37,66,162,82,236,161,220,29,123,
+136,76,155,39,236,161,113,203,85,69,95,227,180,216,97,70,15,164,197,185,181,72,13,226,160,196,19,153,5,41,227,182,92,185,96,75,110,173,151,193,91,84,125,26,115,96,221,67,34,25,15,117,64,149,2,52,181,229,
+107,63,75,176,123,200,185,85,206,166,62,215,119,0,224,80,96,225,103,45,30,34,235,253,124,254,195,71,50,47,78,72,84,252,29,168,178,244,202,165,78,23,45,29,84,87,221,67,189,75,66,72,251,108,124,22,160,37,
+80,21,149,86,99,218,231,26,135,75,195,125,192,32,88,9,198,22,161,54,176,156,39,126,130,108,145,228,152,236,144,252,97,238,177,135,175,125,117,103,110,212,16,23,92,118,118,103,117,36,161,192,36,233,225,
+170,140,199,104,243,174,94,209,171,221,165,0,121,1,151,22,176,104,167,245,32,99,73,142,61,221,181,75,97,5,122,191,100,199,242,240,225,100,15,255,242,246,183,191,173,125,242,139,31,104,119,124,243,29,237,
+246,31,92,219,62,240,196,185,237,170,71,119,108,215,255,108,163,246,250,183,188,162,19,84,24,75,236,45,8,153,110,24,195,248,170,133,72,26,92,117,77,185,191,143,101,92,160,44,134,16,142,147,25,87,137,147,
+110,14,145,177,60,192,148,101,172,251,251,4,110,148,181,221,236,97,85,183,156,173,186,135,151,126,110,135,246,142,255,183,77,123,231,159,54,109,55,255,126,179,246,246,63,110,212,222,30,104,235,173,129,
+182,110,252,159,141,251,197,220,178,43,111,164,155,36,67,172,248,90,85,150,102,60,79,168,158,230,250,116,151,84,182,197,12,27,175,122,148,251,10,86,197,31,18,164,114,125,243,181,70,170,106,2,198,238,28,
+173,123,120,222,135,118,109,111,255,233,174,237,166,95,143,125,150,177,111,9,142,119,237,148,212,81,203,170,199,248,174,29,140,98,5,77,53,192,45,65,201,174,71,193,152,122,149,209,54,8,184,58,119,38,34,
+215,179,220,24,15,81,9,135,140,11,93,90,213,45,11,182,212,168,92,154,100,145,162,143,194,103,142,213,61,60,245,218,253,219,141,143,29,219,174,188,231,208,118,229,35,187,182,107,254,101,179,118,195,83,
+235,183,55,133,61,188,230,251,227,250,217,67,41,32,227,204,167,162,174,199,27,20,100,164,141,221,76,97,109,251,24,215,133,207,138,192,208,248,66,103,171,86,169,6,244,187,112,1,227,93,239,242,20,238,60,
+163,186,135,179,197,30,158,124,237,190,237,198,199,143,109,175,191,103,124,123,245,23,143,104,23,126,230,192,118,86,234,164,157,246,177,49,237,53,223,216,170,179,218,161,92,151,248,115,63,61,226,141,75,
+19,189,121,189,99,220,249,92,111,86,234,88,108,147,28,219,88,23,3,52,132,56,160,225,60,5,107,250,184,134,138,233,142,161,195,198,30,142,191,114,239,118,227,223,28,221,222,240,240,241,237,154,135,199,183,
+215,124,245,136,118,206,39,15,238,36,244,135,28,118,80,103,61,203,96,61,196,21,171,102,90,21,162,97,88,205,173,198,41,247,85,89,11,191,164,113,244,114,173,174,184,184,222,19,229,229,218,230,105,143,24,
+80,143,8,173,182,11,229,173,242,38,92,219,24,22,196,40,250,168,113,103,139,61,124,121,216,195,27,190,127,68,187,250,225,244,242,195,71,183,215,79,58,186,189,122,194,209,157,252,214,37,34,118,41,101,65,
+149,37,9,64,37,249,47,166,127,176,234,90,190,103,117,36,112,85,161,71,193,204,248,54,71,203,216,10,182,180,216,168,50,158,242,0,24,94,149,59,145,101,113,97,170,92,189,78,185,71,144,46,21,133,8,230,251,
+63,148,120,36,33,153,152,132,131,172,130,218,224,127,97,203,184,204,30,9,48,247,102,12,78,79,234,246,189,3,194,30,190,229,95,142,106,55,127,231,220,246,238,191,189,176,189,243,111,179,252,251,246,9,237,
+172,139,79,235,212,72,179,114,241,135,185,108,85,120,175,74,90,140,2,119,48,88,143,214,163,167,69,97,99,83,162,194,173,187,113,59,134,87,193,245,42,237,89,69,95,121,0,72,123,88,217,195,55,132,61,188,54,
+236,225,107,195,30,94,246,208,193,237,194,73,251,182,35,174,216,187,179,35,129,59,244,88,48,48,180,140,227,182,48,60,160,86,61,85,224,145,139,27,207,178,44,61,204,192,129,69,30,125,94,243,117,173,165,
+171,164,39,23,30,214,186,135,231,135,61,188,60,236,225,43,195,30,94,26,246,240,130,176,135,39,14,96,15,37,242,198,175,49,90,36,41,67,255,251,191,255,187,159,78,211,195,122,221,207,9,100,166,45,84,90,97,
+120,181,73,207,88,143,207,171,178,101,209,166,190,54,51,246,144,240,220,161,64,244,153,47,140,61,60,60,236,225,101,97,15,47,14,123,120,97,216,195,243,194,30,158,212,197,30,114,109,201,186,30,227,194,133,
+224,85,207,234,105,198,186,220,192,24,23,224,36,16,162,175,124,154,219,118,215,59,20,4,205,235,221,160,37,67,229,226,118,61,230,10,123,120,73,216,195,11,194,30,158,23,246,240,236,224,120,167,132,61,60,
+124,0,123,40,130,26,95,130,144,84,177,42,89,86,249,78,46,95,55,174,152,163,77,53,12,238,230,14,171,192,99,149,0,148,212,56,209,208,0,85,213,114,40,236,161,14,200,82,242,251,89,62,78,166,232,75,177,169,
+55,38,88,209,125,145,66,141,122,214,106,41,123,196,163,51,126,238,9,114,35,112,77,222,115,207,221,219,73,97,15,207,11,123,120,86,140,61,35,236,225,201,97,15,143,25,192,30,90,155,114,37,107,85,61,86,165,
+178,171,62,184,21,79,93,112,80,24,94,113,135,214,207,198,236,140,64,75,189,45,87,46,28,111,102,236,161,45,161,217,170,123,120,96,216,195,179,194,30,158,30,246,240,212,176,135,231,134,61,188,40,236,225,
+137,93,236,161,21,148,37,163,125,39,99,90,224,50,158,235,126,14,189,43,93,148,141,73,61,229,218,162,116,129,150,131,85,180,4,128,212,125,29,140,245,177,160,53,35,246,144,152,28,58,68,114,172,2,200,108,
+177,135,39,134,61,60,39,236,225,43,195,30,158,31,246,240,184,176,135,7,117,177,135,122,215,233,158,214,245,230,185,112,45,228,141,221,186,167,195,252,43,85,180,159,101,85,101,142,21,184,170,58,173,222,
+228,198,130,79,220,239,89,236,97,17,106,122,120,176,186,135,54,0,136,201,233,171,149,59,201,156,60,165,79,152,186,125,254,22,21,32,69,223,66,207,57,61,12,196,177,106,142,64,62,155,180,111,74,242,228,9,
+57,162,252,183,35,194,30,94,24,246,240,148,176,135,199,132,61,60,50,56,222,97,97,15,247,237,98,15,5,21,116,25,161,183,55,45,205,100,168,135,59,23,134,231,190,15,75,73,99,184,219,224,114,107,65,74,190,
+92,229,59,245,110,221,189,51,87,217,195,163,194,30,30,19,246,240,136,24,123,120,216,195,131,195,30,238,23,246,112,151,46,246,80,6,86,236,161,179,92,115,45,55,174,133,129,116,209,38,156,228,162,46,3,180,
+51,82,219,65,122,216,38,124,119,165,60,105,36,55,182,115,57,176,142,90,221,220,210,197,30,62,158,212,119,114,178,172,169,139,45,182,216,85,233,81,146,99,250,78,194,212,142,86,115,208,243,225,236,7,173,
+147,115,223,79,101,140,61,146,244,113,82,130,198,63,97,15,143,8,123,120,88,216,195,67,194,30,30,16,246,112,95,56,94,216,195,29,195,30,158,55,8,123,200,13,165,128,50,50,61,234,13,87,233,63,70,202,158,36,
+21,60,66,3,141,184,186,135,187,135,61,60,56,112,214,1,97,15,25,187,119,216,195,61,130,227,237,31,246,112,183,176,135,227,251,234,30,58,28,19,177,25,92,117,15,37,251,12,182,126,213,51,197,35,190,80,246,
+144,219,207,149,186,135,123,133,61,220,55,236,225,222,97,15,59,198,134,61,220,59,236,225,182,97,15,183,8,123,184,251,243,212,61,172,123,115,36,251,114,98,243,106,229,198,35,186,238,225,30,97,15,247,8,
+123,184,111,216,195,253,194,30,110,31,246,112,92,216,195,177,97,15,55,13,123,184,81,216,195,157,58,236,225,177,29,125,70,177,135,230,83,61,44,10,235,125,203,185,249,134,61,220,43,236,225,222,113,239,29,
+194,30,142,11,123,184,85,216,195,205,195,30,142,9,142,183,81,48,188,117,195,30,174,29,246,112,157,211,177,135,155,183,237,118,217,174,179,156,179,45,51,167,234,30,206,117,246,112,215,176,135,227,194,30,
+110,25,246,112,179,176,135,140,221,56,236,225,203,194,30,2,46,215,15,123,184,122,216,195,21,46,25,213,150,157,13,246,112,68,213,61,196,30,142,13,123,184,73,216,195,141,194,30,174,31,246,112,189,176,135,
+235,133,61,92,59,236,225,154,111,78,13,196,176,135,43,189,58,247,112,156,177,92,91,58,236,225,146,71,46,218,150,217,102,84,103,167,98,40,236,161,43,103,70,28,123,184,109,216,195,77,194,30,174,27,246,112,
+116,216,195,181,195,30,190,52,236,225,26,97,15,87,187,49,219,50,215,4,186,196,30,158,191,66,91,42,236,225,10,123,207,184,238,161,100,67,16,115,213,76,95,229,232,145,203,30,110,31,246,112,211,176,135,171,
+135,61,92,41,236,225,74,239,74,30,252,230,149,218,42,215,173,210,86,190,122,229,182,210,149,43,181,81,55,44,209,86,61,118,149,254,3,50,121,243,76,216,195,170,123,88,236,225,200,172,123,184,195,107,183,
+111,47,189,249,165,109,233,143,44,221,94,114,219,75,218,168,91,195,17,223,60,170,45,113,235,162,109,229,11,87,238,236,63,213,113,104,177,135,150,154,3,216,195,148,1,238,103,15,95,180,117,15,191,87,117,
+15,123,236,97,175,238,97,143,61,124,94,193,236,76,213,180,67,101,134,58,167,235,185,169,187,143,62,131,185,246,216,195,190,181,105,143,61,76,67,172,158,7,88,73,135,177,92,103,119,241,25,111,89,196,182,
+204,80,189,108,40,63,55,199,92,122,40,255,217,72,248,153,158,193,195,209,11,61,246,176,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,51,60,91,234,78,62,122,236,225,123,223,59,45,151,
+9,253,158,132,152,122,206,49,39,225,73,65,29,212,178,165,158,237,213,61,204,177,75,177,135,4,230,68,49,47,74,246,176,100,138,165,227,32,88,33,84,233,102,15,17,43,213,8,181,115,169,49,170,34,102,113,198,
+78,37,73,43,168,13,48,77,57,145,124,42,39,144,83,243,187,143,80,222,141,26,53,234,150,62,213,157,229,229,115,46,41,26,52,146,69,64,182,72,158,131,163,209,184,63,82,164,135,162,138,125,0,28,141,44,233,
+46,56,85,101,194,40,95,201,6,171,134,26,145,11,3,168,236,202,229,235,14,248,82,233,184,97,88,67,56,32,135,21,16,185,205,151,236,161,222,169,26,106,198,118,213,113,160,170,163,203,234,22,145,146,57,105,
+64,6,211,112,250,221,249,138,61,164,191,44,99,41,233,136,193,169,102,9,87,200,28,138,80,35,32,37,121,240,208,103,65,106,169,122,232,63,124,175,138,186,10,140,54,229,71,44,123,72,198,32,90,151,86,178,234,
+51,116,243,135,85,3,145,177,180,210,68,106,164,76,4,229,244,32,165,244,161,199,30,241,236,97,149,10,211,155,85,80,174,64,173,194,241,24,12,184,164,131,38,12,55,117,137,1,140,165,244,41,49,185,87,138,30,
+98,22,234,157,17,85,247,176,216,195,2,177,244,104,213,76,43,102,169,122,187,170,227,13,196,241,200,144,105,49,171,222,75,201,157,68,118,202,32,143,105,204,152,23,16,201,164,64,152,85,10,208,171,33,16,
+117,193,79,19,189,191,150,161,240,136,11,9,19,169,221,192,214,95,221,242,89,81,58,255,233,26,249,79,191,148,232,60,37,176,214,67,84,117,166,0,145,85,0,210,131,198,168,113,231,118,135,170,123,232,235,198,
+39,69,123,141,215,129,56,158,223,3,106,49,88,224,226,210,64,105,227,86,239,150,193,84,123,212,244,52,216,68,109,254,110,25,204,40,239,105,158,215,61,100,92,9,205,170,106,78,1,90,85,207,84,79,151,242,93,
+96,162,217,146,169,1,65,232,184,184,176,30,46,131,105,171,61,125,165,132,58,178,67,106,187,225,103,15,47,185,168,189,230,234,75,159,169,141,116,77,46,33,121,227,133,237,229,199,239,211,137,164,87,93,253,
+250,78,128,162,168,131,235,208,64,27,159,12,2,75,19,142,114,237,129,245,15,245,48,233,161,123,227,81,48,140,229,202,40,181,2,46,189,234,105,65,205,252,15,182,36,130,113,142,236,255,230,97,115,148,61,60,
+255,53,227,127,255,174,200,13,63,248,239,187,180,247,61,185,119,123,223,63,239,214,62,240,223,91,183,119,252,195,184,246,150,191,223,172,189,235,71,59,117,26,65,15,162,189,25,192,77,169,239,24,76,186,
+175,183,185,100,21,137,43,236,150,193,106,60,80,214,10,84,232,51,198,66,123,200,143,61,244,154,85,221,18,56,2,157,159,17,123,72,252,70,41,64,52,35,249,137,235,63,21,149,208,4,151,136,230,114,209,135,251,
+50,175,78,57,207,254,49,108,43,53,99,233,158,252,39,211,227,142,211,198,159,117,224,31,110,251,247,3,218,71,255,180,89,251,104,27,211,110,107,155,180,15,183,141,219,7,219,134,237,253,33,212,174,255,248,
+25,29,245,186,167,10,176,138,186,148,178,140,103,184,68,131,107,119,215,76,210,235,26,132,1,166,34,42,91,6,49,146,106,190,96,203,130,166,245,50,37,61,47,112,251,3,65,27,229,236,28,175,123,120,248,113,
+251,253,229,163,255,120,110,187,237,137,139,218,251,127,116,80,251,224,83,91,182,15,252,101,131,142,177,239,13,142,87,197,100,76,29,34,48,144,138,139,82,202,234,113,1,201,212,83,133,43,4,44,63,103,8,32,
+88,52,140,222,21,152,40,230,73,141,189,50,184,80,90,198,210,90,139,216,184,39,127,187,187,238,161,123,167,185,248,28,97,15,199,95,176,95,187,245,187,167,180,183,124,237,180,118,237,151,142,111,87,126,
+241,208,118,195,119,183,111,111,251,233,134,237,157,191,222,176,159,61,52,109,112,91,74,119,208,22,98,69,34,1,182,98,56,212,22,144,85,53,89,68,107,61,239,251,84,182,85,183,180,112,90,175,12,214,16,140,
+85,188,202,207,233,97,255,199,176,213,61,60,249,181,251,181,91,254,230,228,118,211,228,51,218,219,38,159,214,110,120,240,132,118,233,95,31,222,198,191,118,219,118,229,3,227,58,83,21,99,5,44,111,68,209,
+25,143,76,73,32,170,218,133,140,23,120,100,85,120,164,66,230,33,119,122,180,48,1,46,109,28,151,129,117,227,131,158,69,190,145,35,107,80,234,158,98,15,231,104,221,195,211,195,30,190,227,137,227,219,91,
+39,157,218,222,58,249,212,118,227,228,19,219,171,190,48,190,163,124,63,122,252,17,29,208,146,139,2,181,68,88,79,161,175,230,84,244,10,151,245,104,132,170,226,161,215,185,180,40,204,125,203,72,127,199,
+83,100,41,3,81,165,213,120,166,47,48,9,131,135,133,61,60,53,236,225,77,223,62,174,189,121,226,201,237,77,49,246,186,73,227,219,101,95,56,182,51,37,8,30,214,179,198,163,241,101,172,117,63,220,177,158,26,
+135,2,143,143,245,42,99,165,159,149,120,24,6,85,39,177,106,38,50,176,234,38,22,184,137,134,225,210,4,169,180,154,115,180,238,225,241,97,15,223,26,246,240,134,176,135,215,79,60,174,93,51,241,232,246,202,
+47,29,217,185,108,64,138,103,45,203,165,187,13,46,20,143,81,158,170,161,86,240,22,204,7,208,165,183,53,22,15,49,158,173,148,140,117,145,91,96,50,4,140,113,65,208,171,199,247,77,57,195,86,247,240,136,176,
+135,111,14,123,248,134,176,135,215,132,61,188,38,236,225,21,97,15,229,177,214,173,216,67,41,158,222,98,92,21,148,170,104,91,212,55,99,187,203,137,9,68,85,120,189,242,235,90,54,214,90,89,214,38,194,27,
+247,18,26,17,93,166,165,254,82,177,135,178,174,57,206,30,222,20,246,240,93,97,15,223,27,246,240,221,97,15,175,27,132,61,52,230,24,87,189,88,24,30,50,205,227,115,141,1,233,49,223,74,35,205,215,146,18,6,
+87,242,98,126,150,157,49,90,32,20,224,204,215,230,115,81,158,38,115,241,197,23,239,224,60,217,198,233,40,232,5,45,180,139,170,62,94,185,187,41,42,155,9,127,14,228,241,132,155,201,35,34,87,71,220,253,213,
+174,116,94,189,63,241,72,10,248,210,112,132,247,229,13,125,35,11,242,199,212,61,124,99,216,195,235,195,30,190,62,236,225,229,97,15,47,13,123,120,212,0,246,208,116,163,87,187,121,195,50,182,122,150,193,
+162,176,192,38,162,75,84,44,34,234,218,41,115,57,23,151,134,26,219,117,97,17,227,139,54,181,255,5,167,21,176,184,53,5,159,12,139,64,213,67,124,78,132,170,231,95,112,221,195,139,194,30,94,25,246,240,242,
+176,135,151,133,61,188,56,236,225,41,3,216,67,201,189,72,92,188,97,25,91,149,44,11,121,231,202,184,97,107,95,6,107,40,83,148,157,145,238,122,135,140,151,153,233,113,209,92,175,87,137,177,97,103,15,143,
+12,123,120,69,216,195,87,134,61,188,52,236,225,133,97,15,79,29,132,61,180,56,183,227,104,30,46,215,246,90,174,92,220,161,233,201,212,34,245,172,107,108,244,114,85,181,244,90,160,165,215,186,139,75,46,
+46,110,204,21,246,240,178,176,135,151,132,61,188,48,236,225,121,193,241,78,15,123,248,242,46,246,80,201,47,120,173,232,141,19,68,164,49,84,32,147,49,213,60,171,119,139,59,180,52,236,54,184,155,59,236,
+6,45,107,131,223,215,24,59,20,246,80,195,204,22,123,120,106,216,195,139,194,30,50,246,156,176,135,167,135,61,28,223,199,30,90,140,219,121,40,246,80,222,92,24,94,205,183,69,165,213,181,20,166,158,194,240,
+6,114,135,178,183,170,104,233,99,13,193,104,75,195,161,178,135,246,193,102,139,61,60,56,236,225,121,97,15,207,14,123,120,70,216,195,11,195,30,190,34,236,225,201,125,236,161,36,164,246,163,5,27,189,90,
+43,30,83,150,5,189,212,144,59,75,51,77,51,26,198,216,172,49,92,24,109,119,69,75,134,51,88,52,30,10,123,72,76,46,11,156,35,236,225,169,97,15,47,8,123,248,234,176,135,23,133,61,60,49,236,225,161,3,234,30,
+58,5,240,136,178,85,127,152,177,133,225,113,103,243,175,30,174,210,218,126,118,96,69,75,241,192,244,66,63,109,158,173,64,53,51,246,208,122,56,27,126,115,134,61,60,42,236,225,165,217,12,56,35,236,225,113,
+97,15,143,9,142,119,68,216,195,253,7,97,15,237,48,74,59,245,168,21,142,156,90,62,92,181,14,37,19,92,218,24,150,112,88,61,113,91,189,169,135,115,229,106,91,112,193,5,103,137,61,148,140,216,247,202,28,60,
+231,234,30,142,15,123,120,124,216,67,198,30,25,246,240,240,176,135,7,134,61,220,237,121,216,67,70,161,73,165,143,230,76,27,130,117,131,131,175,85,9,79,189,204,104,49,33,204,96,127,129,71,9,197,60,171,
+123,184,107,216,195,99,194,30,30,25,246,240,240,176,135,135,132,61,60,48,56,222,94,97,15,119,158,1,123,136,101,176,239,4,204,2,104,185,130,66,128,147,61,105,140,170,102,41,169,224,146,221,236,33,87,246,
+187,22,249,246,180,172,146,186,43,90,22,229,102,236,14,91,221,195,61,194,30,30,30,56,235,144,176,135,140,221,47,236,225,62,193,241,14,10,123,184,199,243,176,135,222,148,109,25,236,161,199,199,184,65,6,
+204,136,61,100,100,213,42,101,172,222,46,131,203,88,127,131,177,105,216,95,229,239,170,181,250,104,60,226,145,96,240,151,245,145,165,10,217,40,164,177,104,127,109,153,25,73,13,211,226,107,37,8,220,152,
+4,96,114,246,173,30,113,197,241,230,155,143,121,122,223,176,135,7,134,61,220,47,236,33,99,15,14,123,184,127,216,195,29,194,30,142,13,123,184,199,32,236,161,55,86,144,101,37,255,221,236,161,60,120,196,
+214,61,220,124,135,141,255,176,79,216,195,125,194,30,30,16,246,240,192,176,135,59,133,61,220,62,236,225,54,97,15,55,15,123,184,105,216,195,93,6,176,135,18,125,137,189,49,89,207,236,178,135,249,123,127,
+204,162,226,187,153,186,58,53,212,210,136,159,72,111,30,151,199,37,7,78,28,148,40,234,239,221,153,106,60,50,166,150,76,239,28,153,233,230,14,151,87,231,252,118,98,92,107,218,70,219,172,255,135,125,195,
+30,42,235,185,115,216,195,29,194,30,142,11,123,184,85,216,195,45,130,227,109,26,12,239,101,97,15,215,11,123,184,110,216,195,45,251,216,67,75,188,97,98,15,191,61,87,234,30,238,30,246,112,135,176,135,219,
+132,61,28,27,246,144,177,99,194,30,110,20,246,16,112,185,65,112,188,151,134,61,92,57,236,225,114,97,15,151,221,125,153,182,204,86,203,180,81,155,143,106,43,172,247,191,99,82,48,171,85,143,177,106,92,251,
+218,192,49,43,248,245,77,63,127,208,179,138,60,6,198,254,65,126,238,238,244,36,34,124,175,60,91,229,89,167,79,100,254,156,226,83,51,213,75,83,164,199,85,70,187,150,60,61,116,119,86,48,223,77,254,60,153,
+204,32,9,194,207,119,8,123,56,46,236,225,230,97,15,55,13,123,184,97,216,195,13,194,30,110,24,99,215,11,123,184,86,216,195,53,195,30,174,22,246,112,197,176,135,203,28,17,104,43,236,225,178,179,192,30,86,
+221,67,115,124,214,185,2,212,183,226,198,157,138,150,125,198,94,151,247,121,64,158,113,121,214,207,179,28,53,253,96,241,105,166,6,119,252,62,0,135,59,216,243,92,148,8,123,103,48,249,199,104,42,242,70,
+30,142,43,61,169,238,225,246,97,15,55,11,123,184,65,216,195,117,195,30,174,31,246,112,157,176,135,163,195,30,190,52,236,225,106,97,15,87,238,176,135,203,183,101,46,12,123,184,215,208,217,195,1,117,15,
+31,77,244,30,57,117,15,119,12,123,184,121,216,195,209,97,15,87,11,123,184,90,216,195,213,194,30,174,214,197,30,46,119,253,18,109,181,25,176,135,54,214,69,116,57,116,87,221,195,98,15,39,142,232,186,135,
+59,133,61,92,39,236,225,50,93,236,225,50,97,15,151,10,123,184,106,216,67,115,104,213,61,228,174,238,3,177,188,243,116,213,61,156,255,217,195,113,87,108,211,246,61,111,223,206,81,232,12,234,30,246,179,
+135,46,33,81,19,220,85,21,153,53,62,223,151,84,168,175,102,234,169,10,121,198,172,10,125,51,173,165,54,164,49,60,72,93,180,133,242,199,233,160,224,55,59,101,55,241,202,68,217,187,227,134,211,156,188,103,
+11,247,27,57,206,156,234,186,84,167,120,89,159,78,205,216,127,34,1,231,135,89,219,62,153,125,167,31,101,94,254,81,162,236,147,110,54,179,225,150,108,105,106,158,9,233,241,7,93,28,148,94,158,238,122,25,
+55,174,40,128,222,119,47,7,67,171,28,96,175,238,225,80,0,149,23,212,195,131,20,130,83,181,142,142,66,185,62,45,191,239,194,11,47,124,157,139,112,157,207,102,33,48,37,61,60,37,189,58,41,17,118,98,198,231,
+196,40,233,38,102,220,78,116,103,157,173,212,76,125,147,243,243,15,229,185,189,239,74,168,67,243,119,118,204,227,46,29,37,1,221,184,162,186,158,220,184,83,14,112,40,6,206,114,193,229,161,254,81,83,87,
+159,155,51,188,199,30,166,17,122,117,15,251,60,129,55,244,216,195,161,14,165,89,253,185,217,14,90,179,250,31,206,235,159,159,43,6,247,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,61,246,176,
+199,30,206,116,95,218,15,244,216,195,30,123,120,79,231,140,151,228,168,192,14,130,53,218,15,240,21,133,0,248,130,100,209,149,143,47,106,246,144,129,212,61,142,67,75,172,82,21,64,28,154,87,41,64,128,23,
+133,31,89,63,89,227,124,199,30,210,124,232,101,74,59,58,44,79,73,147,74,184,226,251,202,38,160,210,144,103,101,240,124,91,247,144,178,142,161,117,201,61,119,47,161,25,88,139,202,206,193,56,78,162,138,
+191,241,6,232,29,25,20,239,208,227,46,242,213,72,46,203,182,87,93,180,26,128,203,137,4,118,201,222,182,19,144,124,111,66,84,4,211,114,252,242,5,187,169,121,220,41,253,172,243,165,231,204,85,17,164,44,
+146,231,164,232,39,31,136,164,240,129,168,230,166,196,37,127,107,147,156,6,131,52,161,198,44,44,71,47,145,50,248,126,177,135,40,150,98,15,11,182,36,111,32,48,243,48,188,144,60,122,15,63,203,56,174,204,
+229,75,6,229,111,142,120,246,176,128,44,130,21,134,23,82,235,227,238,146,128,165,156,37,82,163,150,165,158,213,219,52,33,100,195,26,114,190,96,15,25,202,24,250,141,110,28,175,234,18,23,157,70,49,139,115,
+162,219,162,145,198,32,18,133,83,252,80,0,17,178,81,246,204,35,246,240,236,206,88,244,166,201,142,72,252,69,93,227,202,88,43,246,144,216,140,139,22,190,51,176,102,90,161,124,220,91,163,248,89,6,51,150,
+18,158,145,228,197,100,138,152,7,255,79,137,211,28,174,13,123,221,195,139,175,62,166,221,60,101,207,246,238,7,142,109,111,14,167,244,246,191,62,179,221,112,243,229,237,234,155,83,66,247,21,71,61,195,30,
+190,225,218,142,250,149,177,222,60,254,208,248,36,15,102,88,119,47,251,185,194,241,24,76,7,13,3,96,48,153,63,85,110,149,41,34,89,4,124,80,241,9,92,100,193,195,94,247,240,152,243,182,107,159,250,217,78,
+237,179,127,218,178,253,117,219,178,125,234,233,173,218,39,255,56,166,125,224,231,155,181,119,255,203,152,246,238,111,239,211,49,150,17,36,193,20,118,198,97,213,76,19,156,186,73,83,63,171,1,184,125,55,
+127,136,80,131,5,0,59,138,48,45,44,207,171,70,161,202,99,48,157,244,176,213,61,60,235,138,3,219,39,30,63,167,125,248,123,7,183,79,252,102,155,246,233,16,106,159,12,161,246,137,16,106,31,249,253,38,237,
+234,107,159,41,136,174,71,245,82,221,238,175,151,245,96,21,138,35,34,45,158,88,80,99,176,49,140,99,32,39,102,108,209,165,122,85,239,50,180,64,17,231,196,4,166,12,86,98,72,230,230,190,128,57,202,30,170,
+123,120,211,157,39,180,143,76,79,249,161,175,158,209,110,249,250,65,237,35,79,109,222,49,246,99,193,241,222,113,207,51,151,26,84,245,28,238,140,58,17,128,68,93,1,137,8,156,107,51,216,120,230,9,122,88,
+64,163,200,163,187,36,73,228,202,122,182,200,23,162,212,42,242,200,112,243,178,131,114,6,22,205,34,85,53,7,107,128,57,194,30,38,24,61,125,251,223,159,223,62,245,248,165,237,163,211,47,110,239,155,116,
+118,123,203,196,163,218,235,31,220,178,189,247,191,55,104,55,254,213,41,253,236,161,185,89,79,121,243,94,25,205,24,110,46,48,85,213,29,65,79,15,107,4,174,143,86,17,168,24,139,135,168,186,77,112,129,238,
+146,158,60,64,114,97,28,19,169,17,182,85,210,81,149,6,184,124,213,76,75,48,253,173,35,218,100,115,223,114,144,151,228,227,192,190,131,184,165,250,19,143,40,93,119,139,91,125,37,238,244,104,210,192,239,
+28,17,246,240,115,63,58,175,125,241,111,175,110,119,255,243,13,237,43,63,190,190,125,248,135,151,182,147,207,57,182,157,127,235,184,118,213,155,94,209,73,23,25,171,183,188,113,83,138,104,107,46,101,120,
+161,120,37,38,53,158,235,126,0,18,98,56,0,56,171,74,141,13,132,45,53,0,214,169,202,3,154,159,169,240,60,140,155,163,236,225,9,97,15,63,250,189,83,219,123,39,159,213,222,251,72,158,71,207,106,55,77,59,
+171,51,118,14,63,252,176,244,238,229,157,55,79,30,236,77,155,70,144,100,48,0,198,87,233,62,134,235,109,129,76,36,231,210,92,92,239,251,57,110,140,55,68,198,120,208,47,5,91,26,195,92,154,12,217,216,246,
+183,103,196,30,114,107,58,48,65,45,41,234,95,28,190,39,47,159,234,136,54,189,171,132,152,227,214,21,250,123,56,111,234,130,76,1,119,103,210,159,152,85,204,143,78,15,123,248,193,176,135,239,9,123,248,238,
+41,167,183,91,166,156,210,174,185,231,196,126,29,134,20,144,139,122,51,244,209,30,111,30,185,98,42,41,20,143,81,133,209,49,146,123,11,96,122,139,219,98,15,81,49,133,207,250,90,125,172,103,25,90,136,159,
+191,69,162,56,35,246,80,175,211,138,72,83,41,13,162,214,159,236,60,58,134,222,148,199,141,169,171,244,27,28,240,226,242,232,155,239,137,75,62,156,21,204,143,207,14,123,248,190,176,135,183,132,61,188,37,
+236,225,77,193,241,174,252,226,113,29,131,37,249,20,235,222,56,131,245,2,247,243,102,189,22,221,237,13,87,239,107,4,73,133,113,206,104,189,199,208,26,175,245,59,85,217,146,199,24,219,140,45,186,212,92,
+205,224,97,97,15,207,10,123,120,107,216,195,155,195,30,50,246,45,97,15,95,211,199,30,50,216,122,150,193,12,44,55,172,34,113,12,169,167,92,213,231,92,215,171,113,105,142,198,28,235,181,238,26,137,26,134,
+176,220,156,92,180,170,84,83,99,241,20,192,244,176,176,135,39,135,61,124,119,216,195,183,133,61,124,107,216,195,27,195,30,94,49,128,61,132,218,48,162,234,165,85,93,67,70,49,20,225,82,176,22,142,201,227,
+231,69,103,193,206,88,22,208,204,223,198,186,96,39,144,21,104,41,8,186,1,66,207,74,78,48,137,36,138,165,165,158,163,117,15,143,10,123,120,75,216,195,55,135,61,188,49,236,225,141,97,15,175,26,192,30,234,
+101,6,116,87,194,3,106,253,191,255,247,255,58,15,90,173,26,129,241,162,176,222,51,103,23,49,238,181,128,75,121,186,200,110,62,55,198,53,130,7,28,194,27,124,143,136,92,15,23,243,63,199,234,30,30,148,186,
+135,239,11,123,248,129,176,135,183,133,61,252,96,216,195,183,132,61,60,123,64,221,67,89,17,195,138,72,43,131,187,9,53,30,96,140,26,151,122,74,82,162,119,37,46,134,69,21,84,167,146,151,165,73,81,5,56,9,
+12,35,121,128,93,148,66,241,84,244,25,22,246,240,230,176,135,111,11,123,120,125,216,195,171,194,30,94,17,246,240,152,1,236,33,202,84,79,139,210,213,179,221,52,41,20,79,96,18,220,68,110,238,44,143,150,
+128,24,18,5,99,21,108,233,123,85,209,210,92,109,189,44,21,141,26,168,223,96,189,58,144,61,164,188,157,109,246,240,213,97,15,223,16,246,240,245,97,15,175,12,123,248,170,176,135,103,14,96,15,5,48,59,21,
+150,113,221,132,105,247,116,83,183,52,24,139,122,203,214,142,149,84,55,134,167,183,107,131,0,107,40,15,47,194,212,78,75,100,80,253,72,15,131,101,94,210,77,99,218,231,230,231,170,123,152,132,228,133,213,
+61,60,38,236,225,181,97,15,95,27,246,240,138,176,135,151,133,61,60,59,236,225,81,39,31,214,217,122,177,225,230,21,107,100,103,178,234,28,86,68,54,77,153,154,170,34,158,177,200,85,245,98,185,116,85,182,
+172,93,77,134,215,54,144,177,205,205,25,47,64,21,142,199,157,245,176,94,101,108,25,172,1,52,126,190,247,75,138,190,44,58,38,209,125,101,254,221,161,79,63,182,220,179,246,180,178,89,118,118,162,230,3,25,
+59,143,38,57,255,225,118,59,108,215,94,31,246,240,138,176,135,151,133,61,188,52,56,222,185,97,15,143,236,99,15,253,241,98,15,101,86,2,83,85,195,51,102,245,44,99,107,74,17,140,10,180,172,186,165,181,155,
+201,224,110,208,178,240,218,218,42,154,107,236,225,57,97,15,95,29,246,144,177,23,135,61,60,55,236,225,201,97,15,207,58,247,140,206,246,170,29,15,201,136,181,238,96,24,158,168,44,249,71,165,89,215,74,49,
+171,252,95,221,5,34,107,179,51,233,213,208,40,178,148,209,254,238,92,101,15,15,15,123,248,138,176,135,23,133,61,60,63,236,225,101,97,15,47,15,123,120,90,87,221,67,235,83,151,2,73,38,244,106,229,191,122,
+87,160,42,131,77,59,198,111,173,158,106,12,151,193,221,213,44,107,217,105,172,206,85,246,112,207,67,119,248,203,185,97,15,95,25,246,240,245,97,15,95,21,246,240,140,176,135,71,133,61,60,234,196,195,59,
+121,171,113,92,236,161,53,175,148,208,20,196,88,137,131,116,178,238,242,16,121,5,37,139,8,61,89,198,22,104,105,131,158,225,92,221,88,157,21,246,112,142,213,61,60,46,236,225,107,194,30,158,31,246,240,212,
+176,135,39,5,199,59,46,236,225,161,97,15,199,159,118,68,255,133,94,18,119,193,196,22,107,221,130,198,192,186,59,203,20,35,242,214,77,76,230,96,134,49,150,118,90,16,178,48,176,87,86,229,59,135,82,247,208,
+239,104,156,57,202,30,158,26,246,240,244,176,135,140,61,62,236,225,177,97,15,95,30,246,112,239,1,236,33,131,101,65,200,50,70,136,156,110,73,114,102,212,189,11,194,19,140,209,186,254,81,6,101,234,233,102,
+15,125,109,102,236,33,92,160,171,238,225,55,179,151,61,105,142,212,61,220,45,236,225,201,97,15,143,15,123,120,108,216,195,163,194,30,30,30,28,239,128,176,135,123,204,128,61,244,70,138,61,68,166,232,109,
+219,62,198,176,40,109,121,201,173,157,88,20,177,86,209,24,206,99,42,26,10,123,200,179,146,116,252,52,13,61,41,187,29,4,229,159,207,52,68,76,78,118,76,114,188,244,243,162,120,121,163,139,101,3,252,152,
+100,80,147,242,230,166,229,40,101,82,222,248,207,247,14,123,120,92,224,172,163,194,30,50,246,208,176,135,7,7,199,59,50,236,225,190,97,15,143,27,164,238,33,224,82,66,80,220,33,195,101,68,86,61,230,79,24,
+94,97,121,140,245,177,29,13,193,234,249,216,67,63,51,144,61,76,240,156,58,199,217,195,131,194,30,30,25,246,240,208,176,135,29,99,195,30,30,22,246,112,247,176,135,219,133,61,220,123,0,123,88,197,30,107,
+167,98,102,236,97,45,226,25,107,58,98,88,141,109,191,91,91,60,246,182,252,108,118,54,254,144,143,159,128,246,100,56,77,14,106,244,158,174,222,93,167,79,76,222,207,66,204,80,107,153,31,92,48,189,51,46,
+61,253,225,100,69,211,147,73,77,78,143,76,219,34,236,225,65,97,15,15,9,123,120,120,216,195,151,135,61,220,51,236,225,110,97,15,119,10,123,184,77,216,195,177,97,15,119,11,123,120,92,87,221,67,236,97,237,
+58,206,41,246,48,198,22,123,56,101,88,217,195,77,194,30,30,20,246,240,229,113,239,189,195,30,238,30,246,112,231,176,135,59,132,61,220,54,56,222,86,193,240,198,132,61,220,56,236,225,134,97,15,199,30,176,
+121,219,126,231,57,87,247,208,238,37,208,114,174,215,61,220,51,236,225,30,97,15,119,14,123,184,67,216,67,198,110,29,246,112,139,176,135,91,196,232,205,130,227,173,31,246,112,141,139,71,181,21,143,26,213,
+150,223,109,153,182,108,216,195,101,102,145,61,172,186,135,98,129,89,32,198,118,179,135,223,159,171,236,225,78,97,15,119,14,123,184,93,216,195,173,195,30,110,17,246,112,179,176,135,140,221,36,236,225,
+6,97,15,215,187,118,197,54,250,85,43,180,213,78,95,174,173,152,186,135,203,132,61,92,110,220,172,215,61,28,49,236,225,102,97,15,119,14,123,56,46,236,225,230,97,15,55,9,123,184,105,216,195,141,194,30,190,
+44,236,225,250,97,15,215,186,122,165,182,230,171,87,108,171,166,238,225,242,169,123,184,210,11,175,123,56,114,216,195,109,247,219,234,207,187,134,61,220,38,236,225,134,97,15,215,13,123,184,78,216,195,
+181,195,30,174,29,246,112,205,212,61,92,45,117,15,87,76,221,195,53,198,15,94,247,176,216,67,216,172,28,221,85,21,50,168,76,101,143,103,158,29,217,236,225,110,97,15,55,10,123,184,90,216,195,21,83,247,112,
+133,212,61,92,62,236,225,168,247,46,218,86,187,232,185,117,15,7,178,135,201,214,254,51,115,45,246,240,107,50,168,36,21,243,79,221,195,3,78,217,255,207,123,93,180,103,219,249,85,59,183,110,246,208,217,
+175,251,175,92,9,101,167,34,57,241,47,51,255,98,15,31,82,237,189,199,30,246,216,195,94,221,195,94,221,195,103,193,161,115,26,156,234,131,46,23,207,171,82,126,202,250,65,237,44,209,122,236,97,143,61,140,
+32,125,78,123,220,176,241,195,195,253,70,231,212,223,31,246,22,245,70,123,236,97,143,61,236,177,135,61,246,176,199,30,246,216,195,161,205,225,67,158,150,34,79,90,33,210,133,241,185,130,245,182,95,255,
+250,215,15,69,183,113,191,74,91,57,65,248,71,76,132,195,52,172,2,9,132,179,94,231,197,78,22,156,29,213,161,119,221,50,92,39,251,164,18,74,131,193,121,208,45,78,32,188,210,120,96,158,156,49,81,210,218,
+203,202,14,200,111,179,243,241,79,14,5,220,209,103,235,216,77,110,217,185,60,207,125,95,3,97,142,25,205,219,67,50,184,207,216,83,98,228,167,127,243,155,223,76,143,26,231,190,28,154,79,82,86,204,49,169,
+157,10,134,58,9,100,156,99,80,151,102,123,227,206,128,73,140,29,169,84,205,52,26,14,39,251,106,42,85,45,52,85,118,24,236,188,137,58,192,169,100,41,12,156,65,231,94,158,206,129,153,19,16,23,18,218,39,119,
+109,93,182,128,238,114,185,153,251,190,98,244,160,151,134,205,210,226,161,199,30,246,216,195,30,123,216,145,63,32,94,4,49,101,254,140,95,1,107,96,221,195,98,15,109,228,41,3,56,223,214,61,164,154,171,186,
+135,133,227,137,220,117,143,116,21,122,20,176,138,61,236,174,123,88,4,106,5,45,193,76,68,215,144,130,87,1,92,16,0,179,131,219,23,93,72,152,191,53,61,199,172,143,70,170,116,110,2,152,251,125,22,27,210,
+242,48,162,148,53,34,239,253,96,20,117,15,68,206,123,191,169,199,127,38,114,122,211,133,227,21,195,64,129,227,205,139,166,30,42,59,234,155,98,34,138,63,44,153,33,4,160,46,187,23,173,233,177,24,84,236,
+33,221,215,161,135,30,58,255,176,135,133,235,84,221,180,42,111,80,56,158,211,127,83,15,195,25,76,217,99,110,214,179,140,5,117,84,237,195,185,207,30,94,249,154,159,94,245,193,131,218,231,238,252,88,123,
+231,173,111,234,136,65,11,142,190,228,146,75,58,162,79,201,129,241,216,77,173,48,132,30,171,74,136,73,66,10,199,43,99,75,98,72,66,76,176,166,151,9,221,36,28,198,254,60,97,15,95,245,198,163,218,103,254,
+105,207,246,197,223,110,211,238,249,229,81,237,75,255,124,102,251,192,189,231,181,235,223,117,126,59,246,244,103,130,211,153,103,158,209,143,233,112,79,170,29,198,82,209,209,79,114,241,226,150,74,97,71,
+65,171,81,8,213,36,40,52,92,197,32,150,118,218,80,153,235,236,225,185,175,62,164,125,246,241,211,219,231,255,123,151,246,165,54,182,221,25,66,237,243,127,222,188,125,246,233,205,218,123,255,126,243,246,
+174,199,183,107,215,93,255,134,142,81,12,40,160,131,193,85,18,176,187,151,171,78,177,134,240,51,228,194,244,151,116,92,212,122,52,93,210,82,74,121,130,54,146,38,25,150,195,181,97,103,15,33,111,111,251,
+228,137,237,51,225,150,62,254,245,83,218,95,253,219,174,237,142,24,123,71,8,181,219,67,168,125,246,79,155,182,55,92,127,109,127,85,29,61,68,139,85,56,30,197,142,158,236,134,46,187,11,210,48,216,248,45,
+200,139,18,190,228,254,72,53,178,69,120,128,247,49,87,216,195,157,119,222,177,221,254,205,243,219,167,31,185,184,125,106,234,165,237,195,147,207,108,31,251,201,14,29,99,255,58,132,218,59,255,234,127,177,
+119,129,136,22,154,209,85,36,142,106,182,251,242,251,170,129,88,252,33,149,108,85,184,44,36,15,10,68,197,7,238,0,136,80,245,97,161,232,67,80,104,195,90,247,240,220,176,135,183,63,113,126,251,196,148,139,
+219,39,31,189,184,125,116,234,133,237,29,83,198,183,27,30,26,219,62,246,171,141,219,213,215,60,83,78,91,175,113,85,50,253,194,241,8,73,185,171,49,45,26,235,233,42,181,205,96,95,19,153,185,51,185,63,163,
+244,110,119,73,79,154,77,64,8,205,166,225,81,98,24,17,124,88,216,195,155,195,30,126,250,177,243,218,199,31,185,176,125,252,209,11,219,109,211,206,111,111,248,202,9,109,255,131,247,106,111,184,99,207,103,
+177,135,122,178,234,164,21,149,70,194,175,7,25,45,130,23,74,95,208,180,232,108,85,101,220,86,207,226,148,170,126,105,25,204,104,211,85,169,128,188,14,11,123,248,133,176,135,159,13,123,248,201,140,225,
+219,166,158,215,222,255,205,51,219,41,175,59,184,51,13,93,112,201,217,157,222,213,139,244,208,222,176,135,152,84,111,233,109,165,58,69,95,146,67,227,181,34,53,227,53,16,12,94,160,130,235,224,134,139,129,
+194,52,209,91,51,216,163,215,93,172,79,212,226,33,106,27,22,246,240,139,97,15,191,28,246,240,190,176,135,247,134,61,252,212,147,151,181,179,46,60,173,147,24,212,194,222,155,241,70,193,30,198,92,25,15,
+193,33,48,229,174,221,238,205,157,101,96,92,212,120,215,72,126,15,51,81,176,101,85,181,164,168,103,184,30,175,10,120,64,75,250,202,57,206,30,158,24,246,240,147,97,15,63,24,246,240,3,97,15,63,24,246,240,
+157,97,15,165,151,220,171,16,249,170,57,90,156,160,55,46,224,144,14,51,222,212,162,183,139,117,40,128,90,116,134,4,8,80,12,132,13,12,132,45,171,148,167,94,214,40,54,25,24,75,174,200,173,105,49,73,26,245,
+186,40,62,91,236,225,153,97,15,63,26,246,240,125,97,15,223,23,246,240,214,176,135,215,13,96,15,141,201,98,125,189,86,205,209,42,165,171,231,77,45,188,64,143,235,109,134,114,109,176,52,175,96,164,223,43,
+106,77,21,31,159,23,210,199,88,141,168,97,77,81,221,236,33,213,174,6,240,53,114,227,217,98,15,207,13,123,248,225,176,135,183,134,61,124,79,216,195,91,130,227,189,126,0,123,104,154,41,50,13,155,84,85,120,
+10,195,243,230,97,122,26,131,113,122,94,175,219,226,241,113,17,108,5,133,84,41,193,114,101,134,106,52,198,234,97,99,157,160,116,48,246,80,47,23,63,108,63,204,149,206,217,122,234,92,252,155,85,211,173,
+121,212,76,91,173,127,79,43,17,243,242,180,224,189,137,152,15,103,57,22,216,114,223,246,254,176,135,239,10,123,200,216,155,194,30,94,57,128,61,52,29,49,8,205,226,129,218,121,197,42,121,234,107,133,225,
+21,218,195,88,115,48,3,10,199,213,32,240,1,81,90,0,243,245,42,32,233,115,174,47,32,206,136,61,164,208,133,212,218,240,147,145,185,191,58,121,126,231,150,227,24,74,112,58,182,115,60,91,235,197,204,137,
+23,101,188,5,255,187,119,114,132,221,63,58,45,236,225,251,194,30,222,28,246,240,166,176,135,111,13,123,248,218,1,236,161,113,172,119,24,84,36,90,193,90,62,199,49,85,25,192,66,124,24,37,58,11,92,34,181,
+177,109,90,226,242,26,160,50,44,49,192,231,85,87,28,124,41,8,146,28,15,11,123,120,116,216,195,247,134,61,124,123,216,195,183,134,61,124,107,216,195,107,7,176,135,214,192,82,73,70,253,207,255,252,79,63,
+153,86,31,87,25,192,226,131,185,168,60,153,80,220,112,168,66,143,230,106,200,157,139,19,10,184,172,11,76,4,189,130,47,97,124,165,175,30,200,30,234,121,153,24,45,166,29,20,55,147,39,184,78,117,127,117,
+122,22,48,253,236,30,78,230,179,71,114,218,123,243,31,77,79,238,250,61,236,225,135,194,30,222,22,246,240,99,97,15,63,18,246,240,109,93,236,161,229,27,140,199,99,89,167,7,203,208,66,241,170,80,156,113,
+206,101,185,164,197,5,119,46,131,45,21,77,81,178,46,61,175,199,165,168,140,55,71,23,109,234,99,99,159,128,124,216,216,195,247,132,61,124,71,216,195,55,133,61,124,67,216,195,43,195,30,30,219,199,30,214,
+149,80,2,132,237,25,129,169,104,210,238,138,120,162,173,192,195,37,185,174,60,91,154,201,165,171,234,29,163,139,64,211,251,34,184,44,77,22,38,121,177,146,178,140,148,108,112,103,226,240,25,177,135,198,
+241,11,174,123,248,154,176,135,55,134,61,188,54,236,225,213,97,15,95,19,246,240,236,62,246,80,46,235,177,45,99,141,203,125,81,105,197,241,155,90,42,58,155,154,164,157,222,184,149,148,30,237,222,254,209,
+219,88,68,27,2,117,42,193,64,141,195,120,192,72,246,169,250,145,30,74,249,193,216,67,217,152,13,137,23,204,30,142,15,123,120,67,216,195,215,135,61,188,50,236,225,21,97,15,207,235,98,15,25,107,119,194,
+252,106,10,98,176,232,92,204,161,104,204,88,107,91,73,70,213,32,182,49,80,128,135,140,205,62,153,6,40,247,182,172,100,120,221,200,196,216,162,93,244,240,176,178,135,215,132,61,188,50,236,225,21,97,15,
+95,21,28,239,130,176,135,71,119,213,61,148,102,66,116,24,103,172,122,184,113,17,165,86,64,149,87,235,49,198,20,119,88,8,79,189,218,225,172,155,92,106,251,199,43,110,184,104,23,220,131,169,71,166,85,160,
+165,87,65,203,215,236,129,205,86,221,195,243,195,30,190,38,236,225,101,49,246,21,97,15,47,12,123,120,106,23,123,104,119,209,217,146,236,137,145,104,82,99,214,58,214,184,21,101,121,128,222,181,208,96,64,
+25,220,93,194,179,106,28,50,218,16,241,51,92,223,74,139,33,101,176,157,15,238,108,28,151,193,32,16,159,219,182,157,237,186,135,71,132,61,124,117,216,195,75,195,30,94,28,246,240,242,176,135,87,134,61,60,
+189,139,61,172,186,135,92,178,42,68,119,99,120,162,110,97,180,248,68,99,182,42,225,21,138,87,133,29,171,112,43,23,183,208,64,183,204,42,123,152,156,250,171,138,98,44,181,212,82,119,100,58,82,58,193,149,
+22,171,58,108,123,206,233,97,162,239,177,9,32,15,103,110,84,131,108,58,246,240,130,176,135,87,132,61,188,54,236,225,21,97,15,207,14,123,120,204,32,236,161,214,229,146,210,199,90,27,51,214,84,84,24,94,
+221,227,193,141,7,22,120,180,65,175,1,170,242,60,215,157,39,236,225,9,97,15,175,10,123,120,113,216,195,51,195,30,158,22,28,239,196,176,135,135,15,194,30,114,55,83,150,158,49,69,8,106,230,87,139,125,227,
+87,15,91,15,115,221,234,93,219,189,78,23,128,150,92,27,187,88,110,60,79,216,195,157,247,222,238,233,51,194,30,158,29,246,240,212,24,123,82,216,195,227,195,30,30,21,246,112,191,65,216,67,73,188,165,154,
+233,195,182,12,67,141,95,167,13,85,235,176,80,90,70,98,12,69,97,129,199,158,21,12,175,42,209,206,51,246,112,247,176,135,103,132,61,60,57,236,225,9,97,15,143,13,123,120,84,112,188,131,195,30,238,29,246,
+240,252,203,206,234,96,241,18,247,186,238,201,107,109,199,84,16,98,112,237,109,113,93,65,72,229,232,186,193,225,133,178,135,89,69,205,121,246,112,223,176,135,39,5,206,26,31,246,144,177,71,132,61,60,44,
+56,222,49,97,15,15,24,192,30,218,161,208,59,197,25,66,232,172,91,45,239,188,98,145,92,88,208,93,220,177,122,21,175,248,66,216,195,97,169,123,120,72,216,195,99,195,30,190,60,236,97,199,216,176,135,71,132,
+61,220,59,236,225,142,97,15,247,29,192,30,114,111,219,50,166,14,137,255,96,236,33,67,151,89,102,153,78,99,72,42,4,171,17,197,30,30,18,246,240,136,176,135,71,135,61,60,58,236,225,190,97,15,247,10,123,184,
+107,216,195,237,194,30,110,29,246,112,119,236,225,169,199,118,78,1,189,249,225,96,15,187,234,30,14,63,123,120,72,216,195,163,227,222,251,133,61,220,43,236,225,110,97,15,119,14,123,184,99,112,188,113,193,
+240,54,15,123,184,73,216,195,141,195,30,110,245,98,97,15,247,14,123,184,111,216,195,221,195,30,238,28,246,144,177,219,134,61,220,58,236,33,224,114,108,112,188,13,194,30,142,14,123,184,74,216,195,21,194,
+30,46,23,246,112,217,89,100,15,171,86,233,136,97,15,247,8,123,184,83,216,195,237,194,30,110,29,246,112,108,216,67,198,110,30,246,112,147,176,135,27,134,61,92,39,117,15,215,72,221,195,149,194,30,174,24,
+246,112,133,89,168,123,40,240,161,205,71,20,123,184,91,216,195,29,194,30,110,21,246,112,243,176,135,91,132,61,220,52,236,225,198,97,15,55,12,123,184,94,234,30,174,149,186,135,107,134,61,92,37,236,225,
+42,93,236,161,249,215,238,99,81,164,130,152,220,216,114,207,206,70,95,12,248,61,236,93,21,218,17,83,247,16,123,184,123,216,195,237,194,30,110,26,246,112,131,176,135,47,11,123,184,126,216,195,245,194,30,
+174,29,246,112,116,216,195,213,195,30,174,21,246,80,175,217,150,49,13,97,14,185,236,124,205,30,238,17,246,112,76,216,195,209,97,15,87,11,123,184,106,216,195,149,195,30,174,28,246,112,205,176,135,207,87,
+247,208,21,206,131,176,135,83,48,254,125,216,187,42,180,42,228,169,85,170,124,167,74,180,106,183,45,244,124,184,192,144,164,135,131,20,133,83,164,109,44,181,140,203,171,163,164,153,158,109,158,71,147,
+67,63,154,143,191,22,183,123,48,207,119,211,123,63,203,116,244,148,123,38,15,12,123,184,119,216,195,93,195,30,110,55,180,186,135,61,246,48,141,220,171,123,56,84,21,237,76,75,106,15,21,155,241,31,246,141,
+157,94,221,195,52,132,219,66,109,128,187,27,246,252,190,13,113,151,106,58,235,113,252,225,99,155,228,190,199,93,93,100,239,178,47,117,73,221,178,98,167,2,194,71,15,189,114,158,78,129,199,60,51,173,81,
+58,91,122,233,161,246,118,213,42,206,27,234,177,135,105,132,101,242,112,123,165,56,87,203,3,194,172,167,87,247,112,86,188,106,86,126,118,150,231,225,89,249,227,35,241,103,231,138,193,61,246,176,199,30,
+246,216,195,30,123,216,99,15,123,236,97,143,61,236,213,61,236,213,61,28,152,10,70,171,177,72,196,41,251,64,104,81,165,17,169,220,23,173,228,180,156,248,253,222,229,94,20,54,78,235,235,22,112,135,100,245,
+208,112,144,30,57,250,116,96,78,223,92,104,14,129,42,229,15,114,13,231,20,213,77,231,123,110,58,37,28,47,66,173,238,174,246,125,63,235,213,49,43,249,114,78,29,158,206,41,227,180,80,48,19,115,4,251,221,
+28,231,220,153,197,200,73,125,11,148,103,213,73,27,50,93,26,149,235,166,145,22,222,132,23,134,208,70,89,163,254,201,239,209,96,78,10,41,114,136,197,134,90,247,208,89,241,139,186,238,161,94,169,186,135,
+142,70,157,248,215,45,195,85,247,176,64,233,17,199,30,190,238,170,87,255,130,94,10,216,92,50,35,61,235,52,159,90,142,88,165,180,30,221,236,97,149,3,244,59,116,28,78,251,61,101,176,191,71,49,208,205,30,
+98,14,53,212,60,101,15,111,248,200,222,237,203,255,184,95,187,233,195,103,183,235,223,126,105,199,141,103,198,30,50,214,88,246,218,77,136,59,28,167,213,34,127,48,102,253,29,180,56,3,185,125,213,61,52,
+134,231,73,221,195,139,47,61,247,233,207,76,62,161,61,240,171,29,218,195,127,217,166,125,249,167,123,181,79,125,243,176,246,214,91,67,140,94,117,198,115,234,30,86,49,56,18,67,172,3,233,17,195,233,55,136,
+89,170,236,24,67,41,2,72,33,232,40,97,63,12,103,176,225,192,83,230,62,123,248,218,215,254,228,170,183,156,212,166,60,121,125,187,235,219,23,181,175,254,102,199,246,96,8,181,175,254,121,139,246,213,182,
+121,123,255,55,182,110,215,223,177,109,187,228,85,231,116,122,138,49,148,58,164,131,212,239,122,113,32,142,87,133,166,52,136,30,214,32,12,166,179,164,228,169,66,143,162,177,0,41,58,115,123,192,22,244,
+143,230,210,169,5,185,4,84,207,207,251,122,206,167,254,53,7,234,15,56,20,136,186,224,238,68,108,146,37,219,74,253,81,251,57,217,72,116,86,71,68,77,119,127,166,162,9,81,222,76,57,251,220,19,255,114,219,
+93,103,181,123,159,120,125,123,244,159,111,110,247,253,228,132,118,255,239,183,234,24,123,95,8,181,123,212,80,123,252,208,24,251,134,142,97,4,44,133,239,248,184,110,11,239,198,241,184,56,33,27,215,102,
+44,153,33,99,201,136,41,126,76,81,140,165,229,156,235,236,225,121,97,15,239,120,244,162,246,185,71,94,217,238,152,246,170,118,223,247,175,109,247,252,215,113,253,198,126,252,235,199,116,198,51,35,244,
+44,102,137,196,144,76,73,47,23,153,166,49,10,227,169,30,214,8,37,29,246,59,232,23,10,90,218,46,250,105,250,76,42,159,210,86,206,21,246,240,29,97,15,63,255,216,37,237,115,143,94,214,110,159,254,202,246,
+153,71,47,109,239,157,114,106,123,215,164,237,218,151,158,222,164,83,247,176,155,71,146,140,192,115,244,84,113,193,85,230,160,212,59,101,176,241,203,96,63,199,96,191,75,151,105,110,39,108,35,91,196,64,
+49,212,177,41,85,80,233,185,34,237,239,200,40,124,205,41,164,135,91,107,28,103,91,193,123,191,177,218,106,171,169,166,181,111,223,238,232,226,207,73,45,35,4,61,61,217,212,87,162,151,124,56,111,234,123,
+216,195,47,132,61,252,235,176,135,127,253,232,43,218,103,167,93,218,62,50,249,162,118,193,245,71,183,67,143,218,179,221,250,240,254,29,99,75,20,106,252,122,179,133,227,149,220,208,148,197,48,99,188,176,
+189,226,15,185,189,4,198,207,234,89,83,28,65,42,158,169,234,48,17,135,211,124,13,59,123,120,94,216,195,47,132,61,252,171,176,135,127,21,246,240,211,211,46,10,206,115,78,59,236,216,3,159,17,148,134,61,
+100,128,55,204,133,41,222,245,10,33,184,55,79,221,206,144,162,76,171,210,165,223,97,124,245,46,77,180,70,226,194,164,255,164,139,85,81,139,118,19,7,33,184,57,59,38,133,26,54,246,240,221,97,15,63,27,246,
+240,83,97,15,63,21,246,240,99,97,15,111,184,251,196,78,64,41,97,56,55,45,26,148,122,182,112,60,156,2,21,173,0,86,178,225,42,235,233,119,140,105,61,47,80,25,183,60,67,131,233,85,181,75,169,113,97,3,197,
+44,97,37,200,159,72,155,168,252,134,133,61,252,114,216,195,207,133,61,252,43,252,112,216,195,15,135,61,60,53,236,161,133,131,92,218,162,193,27,38,25,6,84,145,15,23,155,196,45,25,93,37,75,120,0,3,43,17,
+49,37,21,59,204,88,63,95,134,194,119,252,29,127,143,193,168,55,61,109,122,34,106,83,70,161,155,61,52,126,103,187,238,225,145,169,123,248,149,176,135,247,132,61,252,90,216,195,7,194,30,254,85,23,123,40,
+129,240,232,137,42,187,89,68,154,55,234,205,23,138,199,104,80,180,196,130,91,23,52,13,194,20,164,186,97,75,141,87,192,150,191,91,141,105,250,162,3,41,246,80,16,155,163,117,15,79,14,123,248,217,176,135,
+183,133,61,188,45,236,225,109,97,15,223,61,128,61,52,21,225,6,113,14,148,240,164,255,133,214,21,239,192,112,6,233,69,34,113,227,86,112,211,219,26,1,30,64,80,238,231,171,224,99,85,181,44,28,79,3,90,70,
+18,132,235,97,134,27,207,122,213,231,196,47,179,93,247,240,236,176,135,159,12,123,248,161,176,135,31,12,123,248,254,176,135,55,12,96,15,189,113,6,98,29,170,54,26,82,13,255,128,85,242,49,216,3,70,167,218,
+157,113,40,136,25,195,220,89,48,210,131,12,173,223,169,6,171,98,143,85,30,80,3,209,102,50,150,225,130,151,94,166,252,153,35,236,225,249,97,15,63,22,246,240,253,97,15,223,31,246,240,214,224,120,215,12,
+194,30,234,93,156,82,61,232,22,28,34,216,3,177,86,13,193,16,174,202,120,81,153,187,107,16,63,235,111,104,24,79,53,82,119,253,196,42,34,41,0,146,51,13,11,123,120,110,216,195,15,135,61,188,53,236,225,123,
+98,236,45,97,15,95,63,128,61,180,2,98,192,64,42,205,231,133,226,105,136,238,130,113,12,23,201,69,110,129,168,130,18,55,46,146,180,140,45,67,171,248,178,70,98,240,96,117,15,103,155,61,60,35,236,225,135,
+194,30,190,43,236,225,45,97,15,111,10,123,248,250,46,246,80,148,198,243,218,194,145,13,253,234,87,191,234,60,140,237,70,241,184,59,200,210,171,113,14,235,177,80,16,184,68,120,232,29,67,124,189,202,118,
+214,52,103,108,139,214,2,163,198,49,222,169,114,135,133,61,60,54,236,225,7,195,30,222,28,246,240,166,176,135,55,133,61,188,190,143,61,180,110,181,83,1,199,179,128,55,197,112,223,110,67,187,221,153,171,
+154,106,4,48,9,134,136,43,224,73,62,76,87,82,74,25,150,164,165,230,97,141,80,9,72,213,19,151,110,206,136,61,212,243,179,197,30,30,28,246,240,99,97,15,63,22,246,240,83,97,15,63,30,246,240,230,25,176,135,
+50,36,24,94,5,175,2,182,140,71,174,90,40,158,133,5,3,53,80,247,125,30,86,74,22,14,190,47,154,215,125,30,18,17,129,174,74,122,26,6,195,202,30,190,63,236,225,187,194,30,190,53,236,225,13,97,15,175,10,123,
+120,220,128,186,135,214,187,2,148,113,234,85,180,229,186,122,85,144,226,166,162,49,183,151,106,74,51,25,43,105,169,251,239,68,224,42,177,45,235,146,161,153,187,187,169,82,59,160,50,60,238,44,42,15,11,
+123,248,250,176,135,111,9,123,120,125,216,195,55,132,61,124,93,216,195,243,6,212,61,180,146,49,181,48,182,40,113,134,10,52,198,30,99,139,59,212,67,86,78,166,165,186,114,202,212,166,199,53,4,244,78,50,
+82,247,242,112,127,189,46,57,17,217,11,233,25,54,246,240,248,176,135,111,9,123,120,109,216,195,171,194,30,94,25,246,240,130,176,135,71,15,168,123,8,162,172,59,0,68,88,209,181,10,48,51,182,50,45,115,175,
+69,0,35,173,176,138,76,147,99,243,20,70,235,233,90,46,74,76,24,138,116,161,189,44,96,107,88,217,195,235,195,30,94,29,246,240,202,176,135,87,40,5,24,246,240,216,1,236,161,125,39,81,214,88,45,12,79,128,
+178,242,225,138,221,59,32,149,90,214,166,94,93,29,167,215,25,205,3,10,180,180,129,0,239,89,112,193,5,251,81,60,202,219,97,101,15,47,10,123,120,85,216,67,198,190,58,236,225,37,97,15,207,24,164,238,161,
+49,137,213,103,120,97,120,181,98,178,25,192,8,105,165,85,18,204,174,122,215,107,221,123,105,76,219,205,52,166,229,221,62,70,150,6,169,27,50,123,104,99,32,139,139,9,217,240,159,30,98,102,66,22,255,135,
+246,137,220,214,202,235,146,207,218,211,202,23,22,202,126,241,135,242,6,31,206,27,155,16,180,238,63,142,12,123,248,218,176,135,175,10,123,248,138,176,135,87,134,61,188,42,236,225,153,97,15,199,143,63,
+182,115,175,135,181,177,187,234,184,166,164,194,152,51,191,234,93,129,202,216,53,62,171,119,187,221,185,152,67,95,171,64,86,59,153,182,135,104,168,139,101,50,245,16,139,155,126,140,103,83,148,121,25,34,
+32,159,22,212,178,116,252,79,21,64,102,139,61,188,36,236,225,149,97,15,175,15,123,248,186,176,135,231,135,61,60,46,236,225,209,3,234,30,98,15,109,168,91,197,216,81,20,124,140,65,83,17,131,245,88,119,239,
+118,215,60,172,82,158,122,217,195,19,208,162,243,132,61,60,41,236,225,27,194,30,190,34,236,225,57,97,15,207,12,142,119,106,216,195,35,195,30,30,55,160,238,161,93,70,198,74,236,29,142,137,186,2,145,100,
+3,125,42,96,113,227,110,99,157,68,56,130,169,19,13,223,155,21,246,16,186,39,144,165,231,255,43,191,167,72,235,228,184,243,93,241,88,26,79,154,77,90,205,37,6,61,46,205,70,216,162,9,66,103,209,84,100,204,
+77,141,107,76,199,30,158,19,246,240,252,176,135,140,61,45,236,225,201,97,15,143,13,123,120,64,216,195,147,79,59,161,179,185,230,202,26,243,35,131,237,74,216,102,173,122,194,5,89,214,41,4,163,236,90,112,
+69,81,88,35,216,161,52,60,184,112,69,228,153,177,135,86,75,93,117,15,31,159,99,117,15,247,8,123,120,78,216,195,211,195,30,158,28,246,240,132,176,135,199,6,199,59,60,236,225,190,93,236,161,55,172,119,107,
+211,77,84,245,53,81,185,118,45,185,181,148,20,141,182,228,146,75,118,216,67,235,219,50,148,27,207,74,221,67,155,242,195,194,30,238,23,246,240,244,192,89,39,134,61,100,236,209,97,15,143,12,142,119,92,216,
+195,131,6,176,135,130,24,35,236,65,161,86,4,22,107,89,31,123,4,27,215,83,64,243,42,40,205,10,123,168,103,7,214,61,28,22,246,240,240,176,135,39,134,61,60,58,236,33,99,143,15,123,120,76,216,195,253,194,
+30,238,28,246,112,255,62,246,80,6,198,101,139,61,100,240,64,246,80,47,234,77,61,45,2,243,138,17,201,30,190,60,236,225,49,97,15,199,135,61,28,31,246,240,128,176,135,251,134,61,220,51,236,225,142,97,15,
+199,117,216,195,113,109,124,31,123,40,106,207,136,61,116,75,82,93,11,101,252,247,221,33,221,201,151,121,65,247,83,30,160,113,170,20,96,54,219,191,155,223,25,126,246,240,240,176,135,199,199,189,15,14,123,
+184,111,216,195,189,194,30,238,30,246,112,151,224,120,59,192,240,194,30,110,22,246,112,211,211,70,183,173,135,129,61,76,52,158,251,117,15,247,9,123,120,96,216,195,189,195,30,238,30,246,144,177,59,134,
+61,220,54,236,225,182,49,122,155,224,120,27,135,61,92,231,146,81,109,181,176,135,43,134,61,92,190,143,61,92,113,189,21,250,123,207,30,149,253,42,15,55,95,117,213,85,59,251,86,213,187,35,170,238,225,46,
+169,123,184,119,216,195,221,194,30,238,24,246,112,219,176,135,219,132,61,100,236,216,176,135,155,133,61,220,36,236,225,203,194,30,142,14,123,184,74,216,195,21,194,30,174,24,246,144,81,113,201,126,99,171,
+120,171,64,86,25,148,64,247,60,236,225,183,251,138,60,94,151,121,246,128,60,227,242,128,182,150,203,51,232,245,233,67,210,75,59,95,117,7,123,158,139,168,101,178,173,243,88,78,30,30,113,197,113,34,237,
+147,234,30,238,17,246,112,231,176,135,219,134,61,220,42,236,225,86,97,15,55,15,123,56,38,236,225,166,97,15,55,8,123,184,94,216,195,209,97,15,87,187,112,241,182,234,32,117,15,139,63,156,111,216,195,237,
+195,30,238,25,246,112,167,176,135,91,134,61,220,36,236,225,198,97,15,55,10,123,184,97,216,195,245,194,30,174,19,246,112,77,236,225,177,207,174,123,40,193,152,239,217,195,189,194,30,110,25,246,112,221,
+176,135,163,195,30,174,25,246,112,141,176,135,171,222,186,104,27,125,225,51,236,97,101,102,150,124,18,20,215,220,120,102,192,30,206,63,117,15,15,10,123,184,111,216,195,221,195,30,238,16,246,112,255,243,
+246,237,228,218,125,215,165,63,171,238,97,82,197,94,221,195,108,4,92,149,88,210,99,15,187,5,43,67,161,104,134,20,165,159,151,199,237,177,135,29,153,16,226,108,189,60,61,246,48,141,0,160,116,169,230,216,
+174,199,231,190,190,105,158,141,243,188,44,143,61,40,87,66,45,107,241,62,163,68,98,40,110,60,100,53,237,172,254,177,231,212,84,120,198,221,129,151,75,229,233,177,135,179,219,160,47,228,247,103,59,104,
+189,144,255,116,94,254,206,92,49,184,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,61,246,176,199,30,246,216,195,65,216,195,235,222,113,250,159,15,63,122,239,232,165,207,153,101,246,
+144,34,150,98,0,142,83,64,37,48,75,217,48,172,82,237,113,193,114,124,205,241,43,141,180,171,34,157,83,81,11,216,3,115,188,10,239,201,46,231,211,57,151,2,92,78,182,117,156,45,227,79,102,85,182,87,30,119,
+246,12,122,145,216,12,115,233,136,178,87,139,34,231,181,209,74,222,171,48,171,90,165,151,191,246,146,223,127,114,242,94,237,193,255,220,173,189,243,163,41,27,246,214,87,118,100,13,116,85,228,14,100,11,
+206,132,187,235,30,22,123,232,176,219,25,176,131,111,231,192,128,172,42,210,58,98,235,30,158,114,214,190,237,254,191,57,167,61,242,135,113,109,106,8,181,59,255,126,191,246,190,207,159,217,238,123,240,
+11,207,203,30,86,85,60,135,224,78,251,203,88,6,15,100,15,109,209,142,8,246,240,228,211,15,109,95,126,228,146,118,79,216,165,187,127,112,124,155,252,231,173,218,228,16,106,19,254,184,101,251,212,183,246,
+104,111,249,228,225,207,169,123,232,180,191,74,2,146,59,208,86,150,209,12,39,94,241,32,99,136,85,187,217,195,121,90,247,16,123,248,233,187,207,105,247,126,227,178,246,229,169,87,180,187,190,121,113,251,
+218,255,219,165,61,28,28,239,225,16,106,15,133,80,251,242,255,108,218,222,123,247,203,219,27,174,123,166,200,99,119,17,56,26,15,146,135,114,123,238,205,253,171,156,96,17,106,126,134,66,175,174,97,199,
+30,26,247,133,225,25,183,30,74,30,71,176,125,117,137,59,95,203,177,235,83,57,70,157,234,8,200,29,125,81,22,92,153,113,188,142,237,161,231,221,226,137,176,108,165,72,238,63,30,97,247,3,81,211,221,155,55,
+246,147,107,194,30,78,127,242,134,118,255,55,175,110,95,158,118,69,251,210,215,47,111,95,252,206,153,237,193,63,62,99,236,215,130,227,125,240,43,167,247,211,225,116,86,180,89,84,60,52,30,112,60,242,66,
+61,220,93,14,144,230,146,177,122,153,177,197,32,146,43,21,142,71,73,32,136,205,85,246,240,19,97,15,191,26,246,240,27,63,190,165,77,253,167,183,181,187,30,191,162,125,100,202,249,237,205,159,223,190,221,
+247,244,198,237,67,247,158,214,233,173,98,10,75,106,72,174,228,97,64,65,151,221,6,87,13,68,114,68,10,188,186,120,219,199,37,55,36,133,210,163,34,54,225,140,66,26,122,86,15,211,101,33,108,124,174,151,115,
+48,238,204,120,138,219,23,243,241,180,69,23,93,244,178,244,48,5,207,146,51,188,19,47,189,122,107,132,162,247,71,144,125,95,92,239,223,47,8,123,120,103,216,195,47,132,61,252,98,198,239,131,63,188,174,61,
+242,111,55,183,183,124,250,194,118,88,166,167,47,252,199,216,212,61,124,134,61,172,241,74,140,70,3,77,163,69,55,233,209,123,122,179,74,150,84,227,84,153,3,158,64,106,72,230,132,139,16,237,233,180,74,6,
+229,12,106,174,176,135,183,132,61,252,82,216,195,47,132,61,252,66,216,195,219,195,30,190,239,225,243,219,137,39,159,208,129,155,141,89,189,86,37,62,25,70,133,71,9,75,10,236,50,124,61,231,33,76,99,160,
+159,173,6,18,204,124,157,193,20,242,116,153,64,203,170,161,200,91,204,221,115,141,61,252,114,216,195,207,133,61,188,35,236,225,231,194,30,126,60,236,225,133,97,15,129,141,90,188,2,20,125,37,69,59,233,
+97,225,120,84,182,42,0,232,53,227,184,180,150,85,199,212,48,168,146,158,165,151,230,25,4,231,228,139,180,154,148,242,26,110,174,212,61,188,32,236,225,93,97,15,255,58,236,225,237,97,15,63,27,246,240,253,
+97,15,15,15,123,40,168,212,27,247,230,176,69,52,210,112,157,2,180,244,180,158,34,3,118,41,190,224,84,240,116,33,0,85,255,144,39,148,42,190,20,241,24,7,13,72,149,235,247,134,157,61,124,95,216,195,207,135,
+61,252,108,216,195,207,132,61,252,100,216,195,55,13,96,15,245,18,178,165,106,20,210,74,3,50,202,104,146,254,18,152,114,107,238,92,72,60,119,246,181,170,110,89,245,150,72,255,121,140,198,35,67,246,248,
+59,16,188,97,101,15,239,13,123,248,197,176,135,183,135,61,252,84,216,195,143,134,61,60,125,0,123,40,192,20,149,86,101,252,74,250,15,216,168,170,120,85,10,80,143,214,248,229,226,120,7,110,207,141,241,13,
+133,209,22,93,90,229,5,53,128,44,140,168,13,142,55,199,217,195,163,194,30,222,31,246,240,254,176,135,19,194,30,62,20,246,240,246,176,135,103,119,213,61,36,39,68,171,144,254,151,252,31,235,128,77,42,101,
+60,226,148,107,10,62,230,102,65,173,166,48,243,181,32,197,88,176,165,159,165,185,134,238,120,252,109,6,243,30,236,4,68,151,216,165,187,238,33,153,4,173,23,221,22,45,24,33,92,130,233,31,211,40,79,132,186,
+121,44,175,83,50,45,185,40,212,133,160,203,244,47,30,18,96,142,143,184,251,43,121,38,39,237,251,251,83,194,30,222,17,246,240,227,97,15,63,22,246,240,227,97,15,223,59,128,61,164,153,4,117,160,207,170,16,
+92,213,91,242,90,134,23,14,192,101,141,101,145,154,59,235,93,198,18,149,227,35,168,233,11,174,44,208,210,16,241,53,143,249,89,15,147,44,10,98,197,30,50,122,182,217,195,115,195,30,126,38,236,225,71,194,
+30,126,36,236,225,135,194,30,190,105,0,123,104,60,234,89,68,203,192,226,112,160,143,194,240,52,138,158,50,22,173,172,170,200,133,224,100,156,10,120,134,5,222,176,30,30,226,49,60,24,205,59,72,156,244,174,
+94,38,101,154,163,117,15,47,12,123,248,169,176,135,31,10,123,248,161,176,135,31,8,142,247,134,46,246,176,150,120,198,35,163,139,74,203,189,61,29,96,11,130,199,96,141,225,99,92,83,241,135,92,83,4,231,254,
+26,166,187,94,98,33,64,5,91,86,197,76,141,75,191,69,179,89,148,41,23,238,190,48,127,182,234,30,158,31,246,240,227,97,15,63,16,246,240,253,49,246,214,176,135,215,244,177,135,230,223,90,226,121,229,170,
+3,81,188,226,15,65,91,221,70,51,132,177,230,104,110,234,243,170,102,137,140,41,186,180,187,135,253,28,239,16,161,245,50,151,38,115,98,96,53,64,177,135,148,65,47,168,238,225,89,97,15,63,26,246,240,189,
+97,15,223,19,246,240,93,97,15,175,238,99,15,165,125,197,30,42,5,104,10,210,139,229,214,85,21,207,184,102,112,245,160,49,42,18,87,198,101,142,246,187,166,177,2,45,185,62,195,245,44,67,187,171,91,138,250,
+51,170,123,72,112,106,92,75,65,237,156,196,221,159,204,162,99,82,242,236,137,9,86,110,57,118,0,255,191,133,30,51,31,158,152,72,122,111,198,213,35,217,130,249,135,227,194,30,126,52,236,225,187,195,30,222,
+18,246,240,150,176,135,55,118,213,61,196,30,90,192,227,146,24,202,125,25,87,112,101,81,106,220,214,27,23,129,141,89,99,177,42,106,9,66,230,104,212,90,25,46,120,9,114,12,47,216,178,128,75,145,92,239,194,
+241,6,171,123,72,140,78,141,111,101,53,203,117,15,15,9,123,248,169,176,135,159,10,123,248,153,176,135,159,14,123,248,174,46,246,208,78,133,173,25,83,7,35,245,102,69,230,154,151,25,234,205,50,86,195,88,
+76,20,153,38,75,19,169,225,61,230,97,217,154,222,215,139,126,222,107,149,244,20,216,124,205,20,54,51,246,16,241,146,21,213,159,243,250,68,128,147,175,103,24,184,203,195,180,68,86,177,122,255,180,148,185,
+241,165,89,198,221,151,150,254,70,122,239,177,40,225,158,190,45,236,225,173,97,15,223,17,246,240,205,97,15,175,11,123,120,252,0,246,80,166,196,64,198,26,139,220,145,27,86,13,82,61,167,103,185,175,235,
+47,164,136,182,124,76,105,62,150,99,155,170,36,38,34,184,241,45,149,172,148,178,104,83,141,97,67,96,88,235,30,94,19,246,240,29,97,15,223,20,246,240,141,97,15,175,14,123,120,193,0,246,208,120,145,90,86,
+69,89,189,234,115,204,161,132,67,242,47,64,21,187,164,87,37,44,30,145,183,184,67,70,219,48,176,120,16,4,11,175,173,87,127,99,216,217,195,19,195,30,222,20,246,240,250,176,135,111,8,123,120,117,216,195,
+75,6,97,15,185,100,85,146,53,6,185,32,99,229,191,12,144,126,50,200,38,128,164,163,170,105,169,121,88,23,152,112,109,235,102,110,111,121,104,121,89,165,60,125,108,139,118,40,236,33,44,48,227,248,151,137,
+214,112,158,73,33,219,110,143,43,187,134,157,58,104,185,103,109,211,230,143,158,157,29,138,7,50,86,30,205,106,232,135,219,237,176,93,123,115,216,195,55,132,61,188,58,236,225,235,148,2,12,123,56,126,0,
+123,104,243,141,129,50,38,46,232,99,129,168,202,255,201,168,184,190,222,237,46,240,88,247,107,249,122,109,239,88,38,214,69,68,134,129,134,176,107,82,32,200,176,179,135,151,134,61,188,54,236,225,149,49,
+246,53,97,15,95,25,246,240,172,176,135,103,159,123,70,39,26,214,134,155,205,55,227,206,155,20,128,184,165,117,172,168,92,84,90,141,95,61,91,143,223,211,227,92,187,56,98,155,1,26,201,114,48,189,210,9,84,
+12,166,150,159,89,221,195,217,102,15,143,14,123,120,85,216,195,43,194,30,190,42,236,225,85,97,15,175,13,123,120,246,0,246,208,134,0,201,175,109,25,155,239,117,15,143,64,85,213,44,235,126,188,238,2,143,
+101,176,32,102,126,22,197,25,236,115,84,41,174,137,177,178,44,48,200,140,216,67,43,168,57,194,30,238,157,186,135,151,133,61,188,58,236,225,155,194,30,94,29,246,240,162,176,135,39,14,96,15,109,182,121,
+236,65,153,252,185,38,99,189,234,57,110,91,197,29,171,222,161,113,89,204,97,85,170,45,186,84,35,49,182,2,149,140,138,177,122,216,199,248,136,42,71,38,251,178,90,202,247,255,156,105,104,122,18,142,41,153,
+150,166,100,252,190,38,30,178,125,223,74,137,162,111,161,231,28,181,228,156,102,213,100,81,159,205,134,218,148,172,154,38,100,247,239,223,78,9,123,248,198,176,135,175,14,123,120,65,216,195,115,130,227,
+157,17,246,240,232,46,246,208,86,170,157,195,186,225,172,198,158,105,135,17,130,147,30,238,54,214,177,139,167,144,218,90,39,123,149,88,20,169,102,193,192,88,187,147,54,1,186,209,30,64,200,176,176,135,
+23,132,61,188,56,236,33,99,207,12,123,120,90,216,195,19,194,30,30,220,197,30,82,180,23,104,41,207,181,192,48,54,43,58,219,124,55,118,93,133,97,27,214,214,171,59,240,52,66,245,190,67,181,89,97,15,53,6,
+192,43,11,137,223,199,173,177,135,147,147,101,77,237,211,87,171,214,67,224,170,40,70,7,250,24,244,48,45,61,181,78,118,10,63,149,241,244,72,222,220,164,44,176,255,105,207,176,135,23,132,61,60,59,236,225,
+233,97,15,79,14,123,120,66,112,188,35,195,30,30,48,72,221,195,170,163,36,170,50,142,241,140,50,255,194,114,184,234,168,81,163,58,65,207,92,238,77,143,56,246,112,255,176,135,103,7,206,58,37,236,33,99,143,
+11,123,120,76,112,188,19,195,30,30,58,4,246,144,161,122,196,24,172,85,143,113,40,10,215,88,85,7,113,40,117,15,231,26,123,120,68,216,195,83,195,30,142,15,123,200,216,147,194,30,30,23,246,240,160,176,135,
+187,133,61,60,96,16,246,208,184,235,102,15,141,59,79,25,139,73,28,209,236,225,81,97,15,143,15,123,120,66,216,195,19,195,30,30,18,246,240,128,176,135,251,132,61,220,37,236,225,246,97,15,247,84,247,240,
+148,99,58,231,66,131,177,135,85,19,205,34,190,110,109,24,209,236,225,17,97,15,79,142,123,31,22,246,240,192,176,135,251,134,61,220,43,236,225,238,193,241,118,14,134,55,46,236,225,150,175,90,181,109,22,
+246,112,155,176,135,59,236,188,93,103,193,206,192,218,108,51,175,214,77,103,246,164,236,77,233,245,238,66,202,21,145,121,136,199,56,247,179,138,60,102,106,250,94,162,249,148,172,207,255,38,203,198,47,
+36,48,93,148,71,160,218,172,179,246,93,96,129,151,60,71,195,61,51,41,111,92,111,197,252,225,243,50,221,220,149,19,132,31,186,207,153,204,96,221,117,215,254,221,126,97,15,15,13,123,184,127,216,195,189,
+194,30,50,118,151,176,135,59,134,61,4,92,110,31,28,111,179,176,135,235,165,238,225,154,97,15,87,14,123,184,194,214,225,15,83,247,112,165,89,100,15,141,253,25,212,61,252,65,31,142,135,122,33,119,80,67,
+109,157,60,163,242,60,231,158,233,153,202,135,77,214,9,42,163,211,178,175,72,143,220,237,242,106,154,138,52,196,212,4,142,159,99,15,247,15,123,184,87,216,195,93,195,30,238,24,246,112,251,176,135,140,29,
+23,246,112,108,216,195,205,194,30,110,20,246,112,237,176,135,171,135,61,92,45,236,225,202,179,88,247,80,175,142,168,186,135,123,133,61,220,35,236,225,142,97,15,199,133,61,220,54,236,225,86,97,15,183,12,
+123,184,121,216,195,77,174,94,169,109,16,246,112,157,176,135,107,133,61,92,99,144,186,135,207,199,30,198,245,213,61,252,201,136,170,123,136,61,220,43,236,225,110,97,15,183,9,123,184,69,216,195,205,194,
+30,110,26,246,112,147,176,135,27,134,61,124,89,216,195,245,194,30,174,55,8,123,104,177,48,163,186,135,137,244,223,204,120,157,8,123,79,112,155,20,175,251,68,223,152,229,198,168,82,27,237,18,12,64,200,
+12,43,110,205,212,165,7,148,0,84,190,11,166,179,87,146,134,91,178,230,124,52,251,95,211,200,12,220,250,155,185,117,74,198,217,79,183,221,126,219,118,200,97,135,180,125,194,30,110,29,246,112,195,176,135,
+235,133,61,92,39,236,225,90,97,15,215,9,123,184,94,216,67,81,185,248,195,33,176,135,19,179,64,153,127,216,195,131,195,30,238,31,246,112,175,176,135,59,133,61,60,160,143,61,204,169,254,95,178,247,244,231,
+164,148,191,207,244,245,187,52,220,47,123,236,97,46,33,233,177,135,207,148,238,124,201,96,83,207,243,162,131,51,155,135,103,246,125,255,97,95,160,232,213,61,236,91,154,141,205,107,175,238,97,26,65,67,
+212,211,99,15,211,24,75,230,89,68,166,55,179,97,53,43,223,159,165,121,120,86,254,240,72,253,217,158,193,195,209,51,61,246,176,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,236,177,135,179,197,
+30,94,247,166,115,255,112,210,25,187,118,212,234,78,0,29,146,57,59,114,194,79,30,236,140,151,228,193,49,168,51,96,71,163,206,151,28,164,57,96,115,124,90,215,174,83,3,121,156,49,57,90,85,79,141,22,140,
+122,150,132,1,165,230,12,10,223,224,20,49,122,172,223,102,239,122,90,126,102,162,173,99,187,169,46,55,91,104,161,133,214,76,238,189,232,11,94,15,207,168,238,225,229,151,95,252,199,59,38,239,223,190,249,
+203,125,218,173,31,61,191,93,125,237,171,59,2,149,23,101,221,67,198,190,251,125,39,182,73,79,92,216,158,8,161,246,196,159,182,105,159,121,248,200,118,195,155,94,23,89,240,51,204,146,158,212,43,8,20,250,
+15,61,67,65,143,65,170,186,135,60,67,47,142,104,246,48,84,217,211,55,188,249,152,54,241,27,175,108,247,135,114,153,252,163,35,219,183,219,214,237,27,127,220,186,77,248,143,157,218,155,223,125,214,243,
+178,135,220,190,27,199,35,95,228,214,35,150,61,60,45,236,225,196,199,94,209,30,152,250,234,118,255,163,87,180,9,223,63,179,125,253,183,219,181,199,219,150,237,27,33,212,238,253,233,230,237,230,47,102,
+71,50,61,74,224,89,87,39,215,185,176,177,236,180,191,106,30,170,19,161,116,66,119,221,195,17,195,30,158,26,246,240,171,97,15,31,156,22,99,131,227,125,117,250,21,237,190,16,106,15,255,251,254,29,99,191,
+30,66,109,90,8,181,135,254,223,216,118,253,27,159,113,237,146,48,128,59,200,146,170,178,150,6,40,53,174,32,230,115,198,19,195,84,221,195,121,202,30,94,26,246,240,115,97,15,39,132,61,236,54,246,174,175,
+95,214,62,249,216,177,237,254,255,216,172,99,236,251,62,253,202,254,130,113,52,29,4,45,136,150,82,225,213,149,203,26,131,123,139,238,130,157,159,173,200,77,2,97,172,147,79,240,148,121,82,247,240,250,176,
+135,223,14,123,248,112,216,195,251,195,30,234,217,123,190,249,202,246,193,7,206,107,47,63,246,160,118,251,247,182,104,159,156,112,220,179,32,172,42,250,134,89,42,233,18,192,131,86,171,155,78,51,109,97,
+32,24,93,208,37,227,13,9,50,40,66,153,110,224,114,216,235,30,158,147,186,135,159,13,123,56,41,236,225,119,194,30,126,51,236,225,87,195,30,126,98,210,197,237,229,199,28,212,1,182,94,241,154,147,251,85,
+58,69,168,81,207,145,12,210,79,22,142,135,98,25,136,227,85,41,95,70,82,251,80,253,96,21,253,142,241,76,10,197,104,175,115,133,61,188,56,236,225,253,97,15,239,78,84,198,14,79,9,123,248,245,176,135,111,
+15,123,200,88,173,95,61,84,55,247,27,171,212,120,164,254,212,120,122,217,247,74,126,88,23,107,87,109,83,141,36,17,241,123,101,172,225,192,165,201,160,74,251,53,87,216,195,247,133,61,188,63,236,225,221,
+97,15,239,14,123,248,165,176,135,31,238,98,15,189,121,46,202,133,73,134,73,245,11,199,43,50,141,206,185,4,106,85,216,130,145,220,185,123,12,83,225,1,46,121,7,201,162,30,238,190,130,221,25,177,168,110,
+158,31,182,186,135,95,13,123,248,229,176,135,119,133,61,252,114,216,195,207,132,61,188,100,16,246,144,138,157,140,159,138,221,199,116,210,52,206,48,29,50,68,42,89,145,154,219,26,199,213,187,26,75,239,
+114,119,141,194,27,168,115,253,14,13,181,169,76,195,204,149,186,135,151,132,61,252,106,216,195,59,195,30,126,41,236,225,23,195,30,126,164,139,61,172,55,205,48,140,2,228,198,43,129,56,9,177,158,166,170,
+53,150,69,107,130,81,198,85,224,210,187,62,22,189,75,80,106,204,211,70,107,40,242,97,94,226,85,195,0,59,134,181,238,225,71,194,30,222,29,246,240,139,97,15,191,16,246,240,246,176,135,111,31,192,30,138,
+174,140,164,136,71,168,84,129,183,34,81,112,10,10,63,214,88,174,210,188,149,119,23,93,202,141,53,10,173,52,3,33,3,148,241,245,104,132,97,103,15,31,14,123,120,79,216,195,47,133,61,252,92,216,195,79,135,
+61,60,115,0,123,232,77,50,182,32,15,4,75,213,61,227,226,165,140,215,99,85,218,83,35,113,211,154,134,140,91,238,91,60,19,21,60,205,181,223,245,224,14,25,110,78,70,166,41,149,48,199,217,195,99,194,30,78,
+10,123,248,112,216,195,169,97,15,31,9,123,120,231,32,236,33,247,5,97,117,23,137,195,62,20,128,133,129,32,28,71,140,114,109,211,77,149,48,169,138,90,140,45,216,82,49,41,6,18,154,27,22,32,17,152,15,200,
+195,184,38,99,98,52,185,211,28,173,123,120,122,216,195,187,195,30,126,38,236,225,103,194,30,126,38,236,225,135,186,216,67,57,177,53,46,23,45,94,201,107,1,90,104,53,189,206,112,40,143,55,141,52,229,17,
+122,214,84,230,119,25,91,84,169,134,241,115,152,9,134,122,21,249,5,66,31,27,30,36,135,148,123,115,156,61,188,32,236,225,157,97,15,63,29,246,240,211,97,15,63,17,246,240,237,125,236,97,45,250,221,197,97,
+245,195,5,145,105,48,188,66,242,24,95,84,26,15,208,235,5,106,153,107,141,97,234,121,141,192,200,130,178,10,178,172,207,171,156,167,207,245,186,234,0,196,107,85,247,144,242,103,142,212,61,188,52,236,225,
+29,97,15,63,17,246,240,19,97,15,63,22,28,239,198,62,246,208,58,183,216,67,70,155,130,24,88,56,94,25,93,204,161,239,193,241,52,0,195,69,110,198,50,166,8,84,40,144,177,95,129,175,202,130,118,211,165,40,
+56,106,188,50,120,142,178,135,151,132,61,188,61,236,225,199,194,30,126,52,198,126,56,236,225,245,93,117,15,173,118,44,243,140,43,6,213,24,46,227,138,55,44,182,184,220,91,47,139,216,88,38,198,170,128,89,
+110,175,49,138,61,20,237,187,107,161,154,210,40,110,169,112,9,83,177,134,131,177,135,212,64,47,136,61,60,55,236,225,103,195,30,222,22,246,240,67,97,15,223,31,246,240,250,174,186,135,48,60,130,111,17,186,
+80,188,170,111,232,213,215,139,37,230,166,48,31,129,199,244,98,223,75,162,193,104,216,143,105,77,207,154,199,141,247,238,50,158,197,32,26,243,75,47,189,116,7,197,35,49,198,56,208,106,10,98,112,0,110,61,
+91,236,225,9,97,15,63,27,246,240,131,97,15,223,31,246,240,125,97,15,223,214,197,30,90,191,114,103,111,142,129,158,154,142,188,233,170,84,137,33,148,121,49,14,195,36,155,170,92,90,86,101,142,54,245,104,
+16,189,239,85,207,106,164,2,48,235,66,5,85,119,138,115,152,227,236,225,97,97,15,191,16,246,240,115,97,15,191,16,246,240,142,176,135,239,15,123,120,206,197,167,117,114,220,98,15,77,29,53,254,188,10,46,
+85,122,179,200,112,99,86,207,226,32,164,150,117,67,139,149,145,185,217,238,166,121,215,207,123,48,135,101,188,6,16,169,5,54,67,97,88,217,195,191,10,123,120,91,216,195,91,195,30,222,28,246,240,205,97,15,
+79,236,99,15,141,19,213,179,76,45,85,127,180,140,53,189,8,100,230,94,198,200,158,220,228,96,53,84,219,62,82,69,11,9,61,94,247,0,200,174,106,14,182,8,49,21,21,112,41,77,165,189,126,62,246,16,95,108,129,
+145,21,220,239,163,170,159,154,229,228,227,105,160,201,217,186,117,183,188,251,171,87,125,214,238,124,18,129,59,147,209,76,75,194,62,57,154,198,223,221,24,246,240,189,97,15,223,17,246,240,109,97,15,111,
+12,123,120,233,0,246,208,237,103,198,166,177,88,24,158,233,195,84,165,102,97,221,214,34,87,150,70,50,216,130,192,171,4,164,86,72,22,12,197,28,154,111,101,86,254,142,198,227,242,210,205,97,103,15,79,13,
+123,120,107,216,195,183,134,61,124,115,216,195,27,194,30,190,42,236,225,49,93,117,15,237,65,113,75,111,74,47,112,77,137,68,119,249,63,174,172,55,5,158,218,208,43,238,144,91,87,129,71,17,191,8,83,243,179,
+113,47,243,242,177,223,171,106,60,207,87,247,112,182,217,195,91,194,30,190,57,236,225,27,195,30,94,23,28,239,138,176,135,199,15,82,247,80,15,90,245,120,195,140,21,160,170,252,95,213,75,43,50,173,118,47,
+11,193,179,49,224,247,221,214,162,167,171,98,60,131,165,156,190,54,215,216,195,43,194,30,190,57,236,225,27,98,236,53,97,15,95,27,246,240,252,1,236,161,77,118,155,110,112,29,199,37,133,225,137,194,92,150,
+235,14,164,74,25,173,151,125,93,239,51,184,140,54,166,53,152,225,192,120,199,43,67,97,15,237,140,204,54,123,120,92,216,195,55,134,61,188,58,236,225,235,194,30,222,16,246,240,198,176,135,231,117,177,135,
+64,102,220,159,77,55,134,11,80,85,13,79,160,234,118,229,238,2,143,122,216,211,77,151,86,81,57,151,145,48,178,8,53,249,243,92,99,15,175,12,123,248,198,176,135,55,133,61,124,99,216,195,87,133,61,60,173,
+139,61,100,176,155,205,108,180,217,91,46,87,102,108,237,112,148,27,119,163,120,122,184,162,118,119,25,79,199,52,137,168,207,98,15,171,58,222,140,216,67,13,51,199,216,195,51,194,30,190,35,236,225,235,194,
+30,190,50,236,225,197,193,241,206,15,123,120,124,216,195,227,251,234,30,218,204,147,214,121,156,25,113,83,99,183,118,55,244,228,64,238,208,194,67,182,86,59,39,117,115,154,121,190,202,119,234,101,105,228,
+80,216,195,120,197,156,171,123,248,202,176,135,87,132,61,100,236,5,97,15,207,13,123,120,122,216,195,195,7,212,61,20,65,43,11,178,225,86,155,116,12,99,176,185,180,152,67,203,75,189,108,51,192,88,246,51,
+14,223,186,145,60,153,21,99,141,207,129,117,212,234,210,146,174,186,135,223,156,99,117,15,247,14,123,120,89,216,195,139,195,30,158,27,246,240,172,176,135,167,195,241,194,30,30,26,246,240,130,203,206,234,
+220,237,33,33,49,249,23,123,232,85,32,145,123,27,151,85,250,143,1,53,158,165,169,26,169,230,217,17,83,247,240,224,176,135,23,7,206,58,59,236,33,99,79,13,123,120,82,112,188,51,194,30,30,25,246,240,248,
+211,142,110,103,158,117,102,39,82,27,211,56,163,238,186,135,104,180,110,246,176,27,199,155,85,246,80,239,206,149,186,135,227,195,30,158,23,246,240,212,176,135,140,61,51,236,225,169,97,15,143,12,123,184,
+79,216,195,131,195,30,158,121,206,25,157,158,174,186,135,221,204,175,29,11,171,155,154,87,43,55,30,177,236,225,216,29,54,254,195,241,97,15,207,8,123,120,122,216,195,51,194,30,30,21,246,240,240,176,135,
+7,135,61,220,43,236,225,46,97,15,247,193,30,14,82,247,80,0,242,136,186,150,115,115,136,61,156,156,153,98,90,31,218,115,92,34,252,118,121,220,234,0,19,120,150,4,226,121,213,180,89,119,46,25,183,57,50,103,
+59,119,228,90,138,239,208,84,132,198,158,54,102,155,245,255,112,108,216,67,104,237,177,97,15,95,30,246,240,144,176,135,7,134,61,220,47,56,222,94,193,240,118,12,123,184,77,216,195,177,3,216,67,99,117,118,
+217,195,42,242,216,197,30,126,123,174,176,135,7,134,61,60,38,236,225,225,97,15,15,12,123,200,216,189,195,30,238,17,246,112,247,24,189,91,112,188,173,175,90,190,109,146,186,135,107,135,61,92,45,236,225,
+202,169,123,184,98,216,195,149,231,28,123,248,253,185,202,30,238,22,246,240,176,176,135,7,135,61,220,55,236,225,30,97,15,119,13,123,200,216,157,195,30,110,23,246,112,235,176,135,155,133,61,220,32,236,
+225,232,176,135,107,134,61,92,117,220,172,213,61,28,81,236,225,22,169,123,184,95,216,195,253,194,30,238,25,246,112,151,176,135,187,134,61,220,33,236,225,118,97,15,199,133,61,28,155,186,135,99,194,30,110,
+16,246,112,253,139,22,111,163,195,30,86,4,183,207,44,122,15,198,30,114,127,83,216,136,101,15,247,11,123,184,79,216,195,157,195,30,110,31,246,112,92,216,195,173,194,30,142,13,123,184,89,216,195,49,97,15,
+55,126,227,18,109,131,241,171,116,10,37,215,124,45,136,21,123,168,1,164,144,125,199,165,127,78,112,251,175,17,205,30,110,223,199,30,30,24,246,112,199,176,135,91,134,61,28,19,246,112,147,176,135,27,133,
+61,220,232,189,139,182,141,46,122,166,238,161,135,113,82,82,211,216,243,212,61,156,191,216,195,67,194,30,30,24,246,112,191,176,135,187,135,61,60,120,6,236,161,139,131,122,236,97,143,61,236,32,239,61,246,
+112,40,68,206,28,227,150,250,160,75,52,89,175,238,97,26,97,221,60,144,117,247,226,244,234,30,166,17,86,239,108,146,47,176,192,138,121,150,203,227,74,138,30,123,56,148,49,58,179,159,153,99,99,120,102,255,
+209,72,249,254,92,49,184,199,30,246,216,195,30,123,216,99,15,123,236,97,143,61,156,139,236,225,149,111,56,245,15,84,235,142,81,156,34,56,82,113,40,78,173,227,40,165,142,70,235,164,193,1,185,83,66,178,
+39,218,171,42,37,70,241,14,235,113,250,72,11,230,176,221,169,100,95,93,165,223,186,125,49,39,148,147,242,247,30,201,137,227,116,187,169,46,55,115,223,151,92,126,40,115,253,144,230,225,168,106,86,136,50,
+231,148,104,174,62,253,155,223,252,102,122,180,84,247,169,161,150,43,27,127,126,245,91,247,107,19,159,220,183,189,243,131,39,71,149,247,202,142,113,14,206,156,237,122,227,206,141,156,25,185,222,177,184,
+37,186,14,106,60,90,47,6,59,162,33,146,97,176,131,53,199,167,212,126,206,153,156,232,59,168,115,146,225,220,42,219,61,63,207,134,222,180,252,206,100,91,199,110,114,115,185,89,80,60,75,198,206,221,149,
+47,24,197,243,139,145,31,45,29,99,199,51,246,169,167,158,122,60,98,209,251,162,126,157,10,218,58,251,220,3,219,132,160,61,223,252,213,14,237,27,191,221,182,221,244,193,211,250,209,157,23,29,123,248,142,
+119,158,216,254,246,159,110,108,147,31,187,162,61,242,163,163,59,132,218,164,255,218,177,125,48,242,196,107,175,123,125,199,157,73,31,112,73,206,143,237,87,149,82,64,239,81,0,25,2,122,79,169,63,223,115,
+38,229,200,180,74,4,234,221,42,5,232,103,253,28,111,225,230,113,239,167,29,10,184,163,207,181,117,17,170,221,153,30,62,169,111,121,58,67,247,126,222,238,143,232,108,211,136,205,110,138,104,244,33,110,
+172,103,177,135,183,134,61,156,26,28,239,155,223,189,161,125,255,71,239,108,147,255,254,148,246,141,167,199,117,8,181,233,127,216,188,189,253,227,97,12,199,31,250,188,236,225,124,81,247,144,27,223,24,
+246,144,177,95,155,242,234,246,96,112,188,191,249,199,155,218,183,254,241,45,237,177,63,132,65,236,35,212,30,250,159,77,218,59,239,26,219,145,63,116,215,61,172,49,12,198,18,176,138,61,116,142,236,240,
+173,26,1,144,169,119,5,173,242,140,26,235,85,90,204,17,172,64,153,51,227,167,92,72,232,214,182,120,195,84,55,185,165,151,199,246,45,47,159,115,85,220,160,61,156,113,186,72,158,131,35,252,188,63,183,251,
+63,20,53,205,3,2,212,25,97,15,31,9,123,248,80,216,67,198,62,24,28,239,107,129,182,190,249,47,55,182,7,254,245,176,126,28,239,145,63,109,218,190,248,253,125,218,53,215,93,217,25,211,221,236,33,163,69,113,
+178,197,17,205,30,158,22,246,80,128,154,24,246,240,107,97,15,203,88,56,222,109,15,94,208,110,185,253,240,54,225,87,155,182,187,254,110,159,126,104,139,177,165,210,33,243,167,136,21,204,104,63,140,85,18,
+228,42,244,168,135,11,175,117,3,241,60,103,15,239,12,123,56,57,236,97,25,251,0,28,47,198,126,240,171,231,182,125,247,127,70,189,243,249,199,15,109,215,134,33,38,115,16,92,4,174,34,90,8,93,170,36,160,105,
+167,36,14,230,93,70,151,74,158,171,11,78,243,148,61,124,99,216,195,239,133,61,156,28,246,240,107,97,15,25,123,127,216,195,219,194,30,30,17,246,80,212,188,240,162,115,35,96,185,174,99,100,245,44,166,129,
+222,138,238,74,239,122,200,134,75,183,229,103,205,211,133,227,209,95,250,30,153,147,222,46,246,80,3,204,181,186,135,216,195,207,133,61,156,26,246,240,7,97,15,159,8,123,248,96,216,195,79,119,177,135,18,
+6,106,29,111,20,161,38,169,240,198,169,242,232,45,169,223,233,182,100,88,84,119,131,25,172,145,252,141,34,77,73,18,77,83,117,35,249,92,171,123,120,105,216,195,7,195,30,34,194,191,26,246,240,209,176,135,
+143,135,61,124,199,32,236,33,137,96,149,252,170,74,28,133,227,129,57,184,116,85,4,224,210,140,212,195,158,50,152,94,171,36,79,50,178,42,236,8,201,99,52,247,55,222,245,186,11,248,157,46,58,74,245,234,240,
+205,189,154,137,222,95,75,148,127,36,119,232,222,209,167,4,176,117,220,153,155,159,21,165,35,16,93,35,138,216,47,37,58,79,201,27,124,136,82,246,131,97,15,31,12,123,120,95,216,195,251,194,30,126,37,236,
+225,71,6,97,15,9,76,9,185,171,32,20,217,47,9,49,73,176,94,38,71,4,99,113,233,226,15,203,165,171,186,158,113,44,160,241,2,198,66,126,36,38,14,219,234,42,246,97,103,15,39,132,61,188,55,236,225,61,97,15,
+239,14,123,120,123,216,195,75,7,176,135,222,40,205,52,37,60,131,171,94,11,237,51,117,45,213,59,205,116,241,135,85,199,180,91,59,205,157,187,229,196,26,71,46,110,28,147,73,144,29,234,73,68,43,87,151,121,
+249,220,145,43,46,209,171,159,209,64,153,155,191,155,108,110,106,26,105,202,194,11,47,124,93,122,119,61,91,191,207,233,225,172,112,222,149,55,125,127,220,241,129,76,244,191,184,52,236,225,67,97,15,239,
+10,123,248,149,176,135,95,14,123,248,241,176,135,47,239,171,123,88,10,58,250,102,124,3,160,131,209,30,50,126,61,78,243,92,114,226,42,97,98,156,86,85,0,189,107,236,87,185,3,227,188,42,92,10,118,122,89,
+239,50,202,85,234,206,145,25,43,61,37,138,241,48,150,238,67,195,72,88,242,181,159,197,173,31,146,136,164,244,193,231,250,14,0,236,121,47,252,44,151,142,251,125,62,50,254,71,226,206,19,18,21,127,247,241,
+176,135,247,133,61,252,114,216,195,47,135,61,252,124,216,195,155,7,97,15,25,136,77,242,160,87,10,9,96,52,85,59,215,214,203,198,184,249,184,132,226,133,226,234,89,174,172,158,139,158,53,222,77,103,21,244,
+172,188,124,13,216,81,117,15,25,109,12,59,80,215,211,165,254,147,183,103,60,63,149,134,153,144,196,230,155,41,216,250,112,95,230,229,130,237,197,251,13,182,149,26,201,254,61,89,29,77,207,27,154,22,215,
+120,250,145,176,135,247,135,61,252,74,216,195,47,134,61,188,61,236,225,217,125,236,161,249,210,82,80,79,193,111,186,139,196,21,159,4,209,1,123,80,181,243,2,99,153,65,34,112,21,107,173,11,17,52,132,185,
+154,235,87,57,79,172,4,205,180,7,128,45,104,253,127,246,206,59,78,171,234,218,223,216,99,44,49,154,168,41,38,154,106,137,198,222,187,162,162,162,34,189,40,69,122,239,130,138,138,84,123,195,142,5,236,20,
+1,169,34,12,48,67,19,123,139,137,49,49,253,222,148,155,123,127,55,49,154,122,126,207,115,120,215,228,240,242,14,51,195,20,6,239,251,199,249,12,12,3,188,235,236,181,215,94,123,175,239,179,151,234,0,117,
+95,202,17,53,216,17,119,132,227,38,114,131,27,110,255,23,126,102,21,137,205,107,8,222,108,3,232,189,154,150,123,118,41,55,24,137,253,169,4,173,185,68,217,213,164,127,111,201,30,174,130,61,44,133,61,92,
+11,123,184,22,246,112,110,134,61,12,237,164,251,92,131,76,192,89,241,53,144,158,160,78,133,65,12,96,162,120,26,236,232,26,157,3,1,136,81,213,48,241,1,167,129,47,201,41,17,72,128,49,32,174,78,175,117,246,
+176,11,236,225,11,176,135,211,96,15,167,193,30,78,131,61,124,56,195,30,154,15,135,56,212,200,43,115,40,138,23,143,134,71,87,60,141,55,144,105,180,91,70,221,55,48,120,221,88,247,21,6,81,234,175,113,78,
+1,151,53,177,2,163,125,112,15,190,136,66,236,161,180,105,141,251,30,246,133,61,156,11,123,248,12,236,225,211,176,135,79,194,30,222,150,233,123,168,177,238,122,92,55,117,91,73,180,236,40,251,107,191,103,
+107,177,248,170,209,210,42,186,181,6,43,249,215,205,53,206,151,161,113,130,34,206,123,191,198,239,69,121,252,181,17,63,159,61,244,5,212,10,123,56,24,246,112,22,236,225,147,176,135,79,192,30,78,5,199,155,
+144,233,123,168,177,186,101,244,60,212,48,131,86,32,120,126,13,222,48,48,61,191,58,175,29,57,141,205,98,244,1,103,185,172,101,187,225,153,200,24,237,125,124,49,6,45,133,168,206,221,124,246,208,223,59,
+135,77,86,136,218,31,146,143,47,71,78,188,156,185,59,137,199,235,96,247,45,159,195,188,245,97,204,151,5,68,211,101,164,138,191,24,8,123,56,19,246,112,42,236,225,20,140,125,4,246,112,108,134,61,52,104,
+57,74,6,172,104,234,40,67,24,172,97,252,218,175,210,107,82,107,26,165,145,46,59,174,209,26,239,207,251,103,249,176,165,222,160,241,26,28,192,165,127,71,17,170,130,212,138,250,30,110,54,123,216,19,246,
+112,6,236,225,163,176,135,143,192,30,62,4,123,56,174,0,123,168,17,6,166,0,38,53,46,80,188,184,15,64,170,204,224,99,212,53,18,27,172,92,95,53,64,220,78,131,157,22,97,120,16,166,113,175,64,96,184,174,197,
+234,173,85,226,186,254,214,42,123,216,1,246,112,58,236,225,100,216,195,7,97,15,31,132,61,188,53,143,61,116,148,253,192,209,111,212,15,29,8,157,192,179,163,25,56,187,107,169,27,11,231,188,201,134,137,70,
+52,122,116,142,6,84,25,73,75,144,165,142,178,255,166,238,106,255,165,202,216,67,93,218,219,155,170,221,247,240,98,216,195,231,97,15,103,194,30,206,129,61,124,14,246,240,193,12,123,232,14,201,127,216,121,
+229,7,114,142,249,213,209,116,142,26,105,165,203,92,102,130,78,211,88,179,42,13,54,29,245,202,26,137,51,97,172,104,193,235,191,161,59,231,195,150,199,30,123,108,178,211,78,59,165,163,107,23,31,143,108,
+125,9,210,46,246,91,242,171,1,172,70,125,15,159,133,61,124,12,246,240,62,216,195,59,97,15,111,130,61,188,44,175,239,161,75,146,17,212,40,27,203,135,107,168,134,26,129,77,15,221,26,186,86,7,206,163,75,
+71,118,229,186,236,146,36,167,168,71,248,111,68,87,75,141,247,215,122,128,75,150,107,176,1,203,214,38,142,164,75,145,98,115,31,177,218,26,179,135,19,97,15,239,135,61,188,3,246,240,54,216,195,137,176,135,
+131,243,216,67,183,106,126,88,63,80,96,120,110,9,29,85,115,231,48,214,116,210,168,110,162,18,77,30,93,143,205,176,204,174,194,104,189,195,249,238,210,164,183,4,211,232,26,92,21,246,208,45,162,221,4,200,
+187,75,200,183,215,145,75,47,37,58,159,200,115,112,170,33,201,158,210,243,65,238,33,127,45,33,251,89,78,78,250,199,206,176,135,15,192,30,222,10,123,120,19,236,225,4,216,195,225,25,246,208,83,198,56,59,
+246,132,194,108,201,196,66,116,86,99,61,225,112,255,27,29,181,162,10,17,68,154,25,151,35,239,220,246,239,232,21,190,52,95,160,70,199,136,59,109,60,13,169,140,61,148,177,168,49,123,56,9,246,240,102,216,
+195,9,176,135,99,193,241,70,194,30,182,207,176,135,66,85,30,186,153,204,91,26,113,131,224,109,43,174,179,26,163,177,110,253,162,223,97,0,91,26,239,168,251,66,140,216,186,118,52,119,212,91,140,232,26,173,
+177,230,214,149,177,135,74,143,165,102,52,152,104,254,46,159,167,148,28,123,25,55,33,142,101,100,69,2,190,149,170,131,178,35,204,129,218,126,36,245,243,25,229,181,108,254,75,207,56,227,180,100,36,236,
+225,205,176,135,26,59,26,246,240,106,216,195,190,25,246,208,147,7,141,245,208,205,5,223,101,71,55,214,8,243,100,55,23,26,235,185,85,20,213,204,195,253,117,220,176,228,150,208,0,230,124,215,232,200,167,
+117,115,13,119,79,92,21,246,208,205,68,141,217,195,118,176,135,19,97,15,71,195,30,94,11,123,56,1,246,112,34,236,97,239,28,123,168,220,215,45,153,27,115,171,128,142,108,28,197,58,186,186,162,243,54,139,
+226,197,29,152,238,152,60,253,112,148,253,59,38,36,122,136,203,149,209,91,55,215,131,162,133,103,189,176,135,103,211,247,112,20,236,225,68,216,195,59,96,15,39,194,30,94,9,123,120,5,236,97,203,246,23,167,
+27,113,221,200,42,128,111,216,195,245,64,107,227,178,48,13,140,82,169,248,93,180,253,115,212,117,247,108,27,79,221,220,155,28,220,2,122,26,26,208,86,101,236,97,173,246,61,236,10,123,120,39,236,225,181,
+176,135,67,97,15,7,129,227,245,131,61,236,144,97,15,117,109,211,58,5,223,150,72,140,200,186,172,115,213,17,206,114,135,26,29,148,184,238,238,40,123,210,169,225,28,188,165,29,45,179,236,97,236,127,235,
+173,239,225,201,103,29,251,201,112,216,195,145,176,135,3,49,182,63,236,97,31,216,195,174,176,135,151,110,130,61,180,66,24,181,97,247,175,166,131,158,58,70,71,203,184,218,213,151,19,13,33,233,201,82,206,
+30,234,202,49,178,21,177,135,6,171,58,99,15,135,195,30,14,132,61,236,3,123,216,3,246,176,43,56,94,123,216,195,139,97,15,251,20,96,15,253,176,158,67,105,168,31,204,132,193,165,35,84,1,26,236,60,182,80,
+230,11,201,178,135,254,90,6,194,11,134,204,178,220,52,100,59,90,6,104,233,94,88,175,34,233,248,53,199,60,43,136,37,101,240,86,51,136,200,94,116,112,84,238,164,99,215,8,206,5,139,105,188,177,29,121,163,
+45,201,149,87,144,73,173,81,102,96,229,253,66,216,195,193,192,89,189,96,15,53,182,11,236,97,71,112,188,110,176,135,45,50,236,161,199,187,89,246,208,179,40,31,247,173,166,127,209,217,125,171,96,15,219,
+193,30,246,133,61,188,2,246,80,99,187,195,30,118,129,61,108,9,123,120,46,236,97,211,2,236,161,41,95,32,58,230,188,142,94,52,119,244,107,131,238,123,40,123,216,1,246,176,59,236,97,119,216,195,110,176,135,
+173,96,15,155,195,30,94,12,123,216,24,246,240,52,216,195,198,176,135,109,11,176,135,113,205,91,45,179,135,101,117,206,30,182,133,61,236,133,123,183,131,61,108,14,123,120,9,236,97,83,216,195,243,193,241,
+26,131,225,157,12,123,120,44,236,225,145,176,135,199,208,247,240,132,147,143,77,247,175,181,209,247,176,0,123,88,63,125,15,207,135,61,108,11,123,216,2,246,176,41,236,161,198,158,11,123,120,22,236,225,
+89,24,125,6,56,222,177,244,61,252,30,236,225,1,45,232,125,120,218,238,201,62,244,61,252,34,236,225,222,91,43,123,120,58,236,225,165,176,135,23,195,30,158,7,123,120,22,236,225,25,176,135,26,123,42,236,
+225,137,176,135,199,92,191,87,114,248,176,61,147,3,175,216,35,217,191,249,174,201,215,154,239,144,124,169,154,236,161,75,79,131,233,123,40,123,120,30,236,225,249,176,135,141,97,15,207,128,61,60,29,246,
+240,36,216,195,19,96,15,143,135,61,60,10,246,240,48,216,195,3,123,239,153,124,167,223,78,201,215,207,222,52,123,104,68,119,201,105,208,236,225,9,244,61,60,15,246,240,92,216,195,211,97,15,79,130,61,60,
+30,246,240,88,216,195,163,97,15,15,135,61,60,12,246,240,123,227,62,147,28,88,1,123,104,48,179,186,224,6,223,28,157,229,113,235,97,15,47,128,61,60,5,246,240,104,216,195,195,97,15,15,133,61,60,4,246,240,
+123,176,135,7,103,216,67,141,51,193,80,177,227,22,211,39,167,188,251,45,75,218,26,114,128,23,61,110,221,170,250,30,54,133,61,188,0,246,240,60,216,195,51,97,15,47,172,2,123,72,84,127,193,6,232,108,34,210,
+54,217,102,80,236,111,7,231,178,40,247,184,118,161,221,159,103,15,158,29,121,42,236,104,185,201,76,171,82,189,162,221,214,215,99,54,226,55,39,114,154,56,146,115,165,121,28,172,173,177,242,206,54,241,101,
+235,179,150,44,173,226,89,216,34,211,122,157,3,182,247,216,156,127,224,33,57,115,243,67,82,193,15,60,93,228,251,175,123,255,149,199,50,164,137,75,220,188,163,213,90,203,40,175,176,219,59,134,22,251,30,
+242,162,139,236,97,101,158,89,165,78,30,85,249,71,210,127,104,125,195,199,34,123,200,75,176,242,94,100,15,115,47,194,151,225,83,100,15,171,58,149,170,251,115,85,66,0,170,251,143,54,228,159,175,23,131,
+139,236,97,145,61,44,178,135,69,246,176,200,30,110,121,246,240,202,95,79,188,29,174,104,244,169,105,189,73,45,150,76,131,242,38,31,91,13,197,175,67,55,45,211,148,197,240,84,201,90,129,180,38,229,158,216,
+3,118,142,117,254,193,46,236,55,236,135,215,242,243,233,57,57,165,155,82,14,6,30,242,114,51,206,182,21,141,86,185,41,115,149,151,165,28,142,215,26,153,210,100,57,38,228,70,139,164,93,248,112,63,177,31,
+211,168,81,205,147,149,239,158,151,188,241,251,19,147,97,195,251,167,250,200,79,37,123,216,25,218,229,121,0,144,85,47,13,72,86,191,213,41,121,255,159,71,36,75,126,112,118,242,244,115,55,125,250,216,195,
+30,176,135,165,160,61,107,160,93,150,148,210,154,232,205,43,146,31,252,245,232,228,71,16,106,75,126,120,22,242,223,25,229,133,240,173,190,239,225,237,176,135,63,129,61,92,179,238,202,100,25,28,211,50,
+104,151,229,175,246,75,222,254,232,248,228,61,8,181,183,254,113,8,125,94,58,39,253,6,118,220,250,217,195,123,97,15,95,2,199,123,3,246,240,71,176,135,203,33,212,74,64,123,150,224,214,175,254,207,73,201,
+187,52,140,123,155,30,106,47,253,249,160,228,142,103,142,75,213,1,249,125,15,183,26,246,112,2,236,161,198,46,135,61,92,14,142,247,46,236,225,91,176,135,75,224,152,158,46,229,242,252,87,78,79,141,125,43,
+57,48,121,229,175,7,37,139,63,36,136,93,221,145,130,248,224,114,126,56,216,195,136,208,209,198,211,232,174,132,162,193,176,135,93,97,15,215,194,30,174,128,61,212,88,71,118,25,35,251,198,207,110,76,102,
+172,189,50,237,161,118,211,163,178,196,7,37,143,206,190,2,125,199,122,66,45,138,226,1,77,171,6,8,163,37,211,132,176,212,123,133,193,46,73,122,64,0,211,170,254,148,57,10,90,198,181,206,33,177,240,43,37,
+216,63,176,68,45,227,223,90,203,82,182,26,109,86,143,220,30,123,199,252,157,91,193,101,9,217,223,151,209,62,62,128,74,118,49,42,184,69,46,61,70,99,3,212,74,216,67,231,108,24,187,0,28,239,17,216,195,1,
+67,123,164,68,73,231,158,77,146,49,227,254,205,36,41,109,112,93,85,221,163,118,75,77,150,162,112,37,77,170,248,84,249,104,176,235,111,232,190,26,4,123,232,210,99,52,14,99,157,179,47,8,90,102,216,67,71,
+194,254,165,89,246,208,10,191,137,134,90,43,165,73,38,36,202,153,20,151,134,164,73,25,68,32,240,142,184,6,111,81,246,112,2,236,225,143,96,15,87,195,30,26,141,211,0,197,156,125,36,195,30,58,31,227,242,
+108,229,71,18,41,138,90,20,172,120,177,189,18,36,37,77,161,206,203,26,172,203,43,116,137,166,83,190,36,221,121,139,176,135,61,96,15,103,193,30,174,131,61,124,31,246,240,29,216,195,229,176,135,79,87,192,
+30,170,179,82,89,107,247,141,192,241,212,73,58,194,254,153,196,89,244,124,136,17,14,224,82,195,213,117,249,40,95,210,205,235,157,61,28,12,123,184,28,246,112,9,236,225,82,216,195,117,176,135,111,192,30,
+222,150,97,15,253,224,42,113,52,42,100,191,202,248,21,134,70,163,56,71,92,28,207,249,171,68,41,250,62,4,127,24,2,23,21,183,122,138,243,222,159,81,9,20,40,94,189,244,61,124,24,246,112,57,236,225,139,176,
+135,47,194,30,46,132,61,124,172,2,246,208,214,65,34,1,138,189,213,60,59,210,89,221,180,35,108,208,82,162,148,207,31,134,240,212,23,167,130,79,151,55,168,249,114,84,227,9,98,213,75,223,195,50,216,195,197,
+176,135,47,192,30,46,130,61,156,1,123,56,168,0,123,168,130,61,186,242,168,106,151,97,208,104,133,223,142,178,110,173,164,56,203,31,58,154,129,204,71,39,219,104,28,167,161,74,18,157,2,238,180,148,75,40,
+117,80,24,174,74,168,78,216,195,193,176,135,165,176,135,11,96,15,23,194,30,206,135,61,156,154,97,15,67,52,170,46,82,26,77,216,67,186,197,95,107,176,35,174,132,95,12,64,133,172,130,113,13,214,8,141,245,
+9,148,214,121,171,177,206,93,163,120,0,214,70,117,183,137,242,14,142,176,186,47,179,54,229,202,181,206,30,62,1,123,184,4,246,112,62,236,225,124,216,195,217,176,135,119,228,216,195,104,48,229,58,235,7,
+207,54,138,19,223,137,6,83,142,182,170,118,93,91,225,184,50,97,213,179,26,232,242,21,77,214,53,54,92,88,99,117,125,101,200,62,106,46,21,169,105,160,95,29,109,141,174,117,246,112,45,236,225,82,216,195,
+133,176,135,207,195,30,206,128,61,236,158,99,15,205,150,52,54,174,162,49,72,101,65,45,95,128,164,75,208,46,34,2,162,1,170,223,29,225,208,97,250,178,194,141,253,126,96,180,33,37,54,16,186,164,121,56,96,
+209,60,216,195,58,233,123,248,50,236,225,26,216,195,87,96,15,95,129,61,92,0,123,216,189,79,167,52,49,8,193,168,46,105,214,164,27,103,81,60,127,29,253,16,101,147,12,100,182,41,82,49,175,150,58,12,214,216,
+112,97,71,53,228,195,209,149,71,205,180,250,105,255,158,184,128,242,67,213,124,181,206,30,94,1,123,88,2,123,248,28,236,225,115,176,135,207,193,30,62,150,97,15,163,137,170,129,201,145,117,254,70,103,60,
+57,68,191,231,239,131,86,51,160,233,218,202,251,205,184,140,198,142,174,209,90,67,163,245,144,198,137,222,250,8,103,202,34,58,255,253,181,157,47,235,172,239,97,127,216,195,69,176,135,51,96,15,167,195,
+30,62,11,123,120,71,134,61,52,51,242,67,71,147,184,96,135,3,193,139,166,143,2,151,209,41,207,145,118,169,210,93,157,187,70,97,131,152,115,91,119,151,119,16,233,9,216,82,4,64,86,209,160,231,247,253,57,
+69,166,217,54,128,181,214,247,112,40,236,225,60,216,195,103,97,15,159,129,61,124,10,28,239,166,60,246,208,192,99,52,214,157,53,44,8,53,71,83,227,252,126,116,200,11,160,90,252,78,60,199,105,160,129,129,
+255,196,101,9,210,44,65,180,4,128,233,239,197,123,124,41,202,153,42,98,15,117,243,205,102,15,7,195,30,62,15,123,248,20,236,225,147,24,59,21,246,112,66,30,123,232,252,213,165,69,232,52,36,218,247,101,73,
+53,215,103,13,52,168,153,110,234,162,206,89,13,244,239,248,146,252,25,95,92,208,104,254,108,164,167,50,75,254,172,89,155,47,200,160,85,39,236,97,31,216,195,57,176,135,143,195,30,78,133,61,124,20,246,112,
+98,30,123,168,148,63,110,118,48,40,249,248,1,125,76,56,130,253,13,119,52,226,154,71,251,162,116,101,95,64,100,103,1,100,6,138,231,191,101,154,26,208,86,208,165,6,45,71,56,159,61,212,213,107,212,247,240,
+114,216,195,217,176,135,143,193,30,62,2,123,248,8,236,225,29,121,236,161,231,206,194,84,26,231,135,247,171,145,56,240,27,81,60,51,44,35,174,59,40,141,141,238,210,174,197,18,43,142,156,204,162,6,102,187,
+90,234,57,126,47,48,63,13,54,82,43,53,118,132,107,189,239,161,236,225,34,216,195,57,176,135,243,97,15,159,135,61,124,4,246,176,71,174,239,161,247,105,120,52,163,81,6,150,232,19,172,203,106,100,52,77,55,
+64,105,108,52,104,141,91,29,204,167,93,147,117,83,231,168,200,172,79,126,87,75,71,89,96,203,100,195,206,150,209,206,179,78,216,195,89,176,135,79,192,30,62,4,123,120,15,236,225,109,176,135,151,231,177,
+135,30,191,154,236,199,210,161,177,38,10,26,26,116,154,1,202,205,64,52,147,138,229,200,253,177,105,105,24,173,183,132,43,71,151,90,95,130,255,30,183,53,148,27,108,148,174,19,246,240,86,216,195,135,97,
+15,39,193,30,222,5,123,120,11,236,225,208,60,246,208,99,25,15,221,188,208,79,215,141,203,134,178,176,150,96,165,17,61,206,182,2,234,48,1,113,148,93,115,221,96,24,137,29,77,141,140,185,27,176,165,68,105,
+48,17,46,69,230,215,166,153,130,150,178,20,174,207,138,81,107,196,30,94,1,123,248,8,236,225,157,176,135,183,193,30,222,12,123,56,50,175,239,97,176,135,30,209,56,170,129,225,185,198,154,27,7,100,25,219,
+63,19,150,184,99,203,145,247,172,203,23,165,103,56,247,93,131,227,14,128,64,108,157,50,30,253,4,157,86,81,223,195,26,179,135,199,31,127,108,242,0,236,225,29,176,135,55,195,30,78,4,199,27,5,123,216,33,
+199,30,58,178,193,30,106,152,31,222,44,202,128,228,210,99,218,24,215,87,152,138,6,161,166,241,186,184,185,179,27,133,232,106,25,201,135,163,237,72,199,26,237,17,81,85,217,67,153,41,162,245,230,179,135,
+163,96,15,239,128,61,212,216,113,176,135,215,193,30,14,200,235,123,232,129,155,68,90,160,179,113,35,90,214,141,99,163,17,110,173,155,27,200,124,57,46,81,78,5,183,143,26,109,244,54,187,138,254,167,30,228,
+87,198,30,186,62,215,74,223,195,14,176,135,183,194,30,142,135,61,188,1,246,240,102,216,195,155,97,15,251,102,250,30,58,111,60,112,115,203,152,197,240,220,254,133,161,129,227,197,238,202,145,151,68,211,
+96,71,217,109,163,193,201,205,130,115,90,23,55,127,246,96,94,99,101,255,43,99,15,125,49,252,204,111,201,184,22,43,76,133,110,243,122,169,19,120,214,55,106,229,162,207,141,206,165,57,35,110,197,219,95,
+198,82,178,154,125,232,218,198,176,135,215,195,30,222,2,123,56,9,246,240,22,216,195,171,97,15,187,87,192,30,186,141,11,244,93,215,205,231,14,3,193,11,208,50,58,90,186,129,136,142,150,186,176,148,169,241,
+161,58,236,33,91,198,127,114,32,191,86,201,177,42,92,14,228,175,196,200,227,120,236,64,240,57,235,200,27,25,204,156,220,135,235,23,159,102,43,86,198,205,132,37,22,163,187,195,30,222,11,123,120,3,236,225,
+8,216,195,97,224,120,131,96,15,59,22,96,15,93,46,60,144,247,80,78,151,214,96,207,157,189,229,208,37,204,236,44,16,188,184,63,203,104,237,225,158,167,25,46,57,22,202,117,207,112,227,122,103,15,79,129,61,
+188,10,246,240,90,216,195,161,24,59,24,246,112,0,236,97,79,216,195,150,21,176,135,178,10,2,152,66,204,126,96,127,239,217,148,7,7,206,99,221,221,199,72,110,68,119,74,112,247,85,146,101,15,109,157,93,25,
+123,232,114,228,241,15,255,254,95,209,100,191,138,82,32,21,147,243,239,92,195,136,158,196,99,111,137,47,234,206,21,170,105,169,215,236,207,50,243,56,145,118,165,50,3,111,253,109,76,223,195,171,97,15,135,
+193,30,14,128,61,236,3,123,216,211,86,128,176,135,151,194,30,246,45,192,30,198,153,147,203,133,185,174,35,23,251,232,56,127,118,148,141,222,54,142,203,178,135,142,174,115,118,139,178,135,23,193,30,14,
+7,206,234,7,123,168,177,221,97,15,187,130,227,245,132,61,108,13,123,216,46,175,239,161,137,129,110,26,253,15,3,144,220,20,123,104,158,44,63,108,98,225,21,82,158,73,251,178,188,186,34,96,203,184,113,73,
+196,207,41,196,255,241,191,108,27,141,57,171,241,136,149,57,76,192,209,21,17,216,155,167,188,51,94,133,26,15,146,243,175,49,143,198,41,32,241,62,103,175,56,62,244,208,67,62,233,0,123,56,8,246,176,7,236,
+161,198,246,129,61,236,1,123,216,22,246,176,9,236,225,197,25,246,208,163,84,13,246,3,251,33,77,252,227,226,145,173,138,61,236,8,123,216,7,246,176,55,236,97,47,216,195,118,176,135,173,97,15,155,195,30,
+54,129,61,60,19,246,240,156,122,96,15,137,196,127,199,27,222,38,176,214,61,123,120,25,236,97,127,220,251,114,216,195,214,176,135,45,96,15,155,193,30,94,4,142,215,4,12,239,116,216,195,19,96,15,143,134,
+61,60,22,246,240,248,147,142,77,15,222,106,171,239,33,241,225,239,153,190,135,245,195,30,94,8,123,120,57,236,97,27,216,195,102,176,135,26,123,1,236,225,185,176,135,231,98,116,99,112,188,19,97,15,15,235,
+183,91,242,77,250,30,126,149,190,135,251,194,30,238,189,53,179,135,103,192,30,182,134,61,108,1,123,216,20,246,240,92,216,195,198,176,135,26,123,38,236,225,169,176,135,39,208,247,240,104,250,30,30,66,223,
+195,111,210,247,112,127,216,195,47,87,147,61,172,160,239,225,27,185,38,143,94,229,120,30,207,209,60,223,228,217,35,150,161,42,41,0,54,250,33,0,14,239,96,231,233,235,77,221,44,47,235,188,207,89,153,1,41,
+223,7,178,135,23,192,30,94,12,123,120,62,236,97,99,216,195,179,97,15,79,131,61,60,5,246,240,100,216,195,227,96,15,143,132,61,252,30,236,225,193,176,135,7,84,194,30,26,232,182,10,246,240,124,216,195,11,
+96,15,27,195,30,158,14,123,120,10,236,225,137,176,135,199,195,30,30,13,123,120,36,236,225,17,244,61,60,164,77,225,190,135,193,30,186,28,109,117,236,97,83,216,195,51,96,15,79,132,61,60,22,246,240,40,216,
+195,35,96,15,143,128,61,60,44,143,61,140,190,135,193,30,154,121,113,217,193,214,205,30,54,133,61,60,31,246,176,49,236,225,69,5,216,67,18,141,143,139,125,15,139,236,97,57,81,90,100,15,171,130,15,85,89,
+47,93,217,63,86,100,15,215,183,242,83,173,94,100,15,121,9,251,22,217,195,74,186,232,84,54,165,170,250,231,181,54,135,171,250,31,110,233,159,171,23,131,139,236,97,145,61,44,178,135,69,246,176,65,179,135,
+244,119,73,174,153,120,76,210,189,239,9,105,189,86,165,188,205,164,226,137,110,30,86,36,84,18,136,0,88,103,182,54,228,177,171,119,224,121,33,39,135,234,255,201,247,214,90,1,225,239,172,242,156,220,107,
+235,60,77,229,52,244,104,14,234,119,174,110,212,175,86,148,206,53,140,59,219,182,98,8,209,22,216,124,74,38,130,74,127,25,213,132,95,41,38,31,138,190,122,198,140,110,201,143,254,251,180,100,237,143,207,
+72,250,15,232,157,150,89,62,149,236,225,243,40,231,87,35,38,95,187,174,95,242,147,63,55,73,126,250,175,195,146,91,239,107,153,18,44,217,162,218,86,221,247,80,218,101,30,0,200,75,64,90,171,86,13,78,202,
+80,206,151,162,171,126,255,127,154,37,63,129,80,91,249,179,227,146,225,87,119,78,13,222,234,251,30,202,30,174,4,237,121,25,218,165,20,246,112,229,42,30,48,129,82,148,243,63,248,159,179,147,31,67,168,189,
+247,143,131,146,167,75,78,77,6,13,189,34,101,143,172,47,169,22,80,92,170,140,33,212,64,1,107,89,76,247,231,212,67,91,27,182,100,170,202,192,150,98,198,3,203,47,156,73,255,5,93,199,26,126,102,57,69,248,
+247,168,65,205,243,128,145,18,203,87,178,101,149,66,243,123,147,115,152,57,187,61,66,177,179,69,104,237,104,105,147,71,74,155,107,108,5,40,123,248,83,216,195,117,176,135,171,224,152,86,67,187,172,90,59,
+52,41,91,59,56,41,89,211,47,89,251,203,243,128,46,15,74,126,8,161,246,198,39,223,78,174,185,237,232,244,3,171,22,216,234,250,30,202,30,190,12,142,247,54,236,225,135,176,135,107,32,212,86,129,246,56,178,
+50,17,83,151,116,79,158,92,118,106,106,236,15,146,239,36,239,36,223,74,86,252,246,91,105,20,118,196,140,200,91,21,123,168,177,101,176,135,171,193,241,62,128,61,252,17,236,97,25,28,211,76,208,158,209,119,
+183,79,206,61,175,113,114,207,180,99,146,215,63,58,48,121,114,81,187,228,150,123,250,36,55,140,27,64,169,116,88,202,39,21,98,15,165,87,26,92,223,67,217,195,117,176,135,171,96,15,53,214,145,93,205,200,
+190,7,123,248,60,236,97,51,73,198,87,233,0,0,255,244,73,68,65,84,216,67,71,209,243,228,235,110,106,1,146,119,101,57,123,104,33,60,148,60,126,85,13,224,92,85,12,227,252,213,96,231,173,199,180,170,131,26,
+4,123,104,128,90,3,123,232,156,13,99,151,128,227,61,145,97,15,149,59,68,31,37,117,28,22,192,195,80,69,104,138,87,84,232,41,111,82,182,164,4,209,226,184,134,7,123,24,65,202,185,238,203,240,229,248,34,73,
+68,210,71,192,82,73,68,96,0,214,146,173,128,240,103,37,16,47,107,40,191,204,36,120,121,17,190,186,142,13,250,152,110,20,180,80,193,109,207,211,1,89,239,98,228,189,139,77,42,100,252,93,122,140,198,97,172,
+115,118,25,198,78,129,61,60,39,215,247,208,140,42,140,21,222,82,149,19,173,14,52,62,26,69,41,229,87,211,161,177,202,151,252,89,95,140,35,107,79,165,45,206,30,78,132,61,252,0,246,240,21,216,195,52,26,99,
+172,115,246,113,216,195,75,115,125,15,149,44,249,193,29,45,21,57,170,100,149,17,171,174,83,135,169,28,73,101,142,82,127,101,74,26,172,252,223,229,201,191,227,11,209,173,21,150,197,146,180,197,216,67,51,
+168,215,97,15,127,14,123,248,62,236,225,26,216,67,3,84,204,217,232,123,24,141,29,21,122,43,242,86,32,26,12,98,182,59,158,6,235,206,230,212,202,137,21,183,100,27,51,251,2,252,183,52,92,84,199,50,76,189,
+245,61,52,55,54,93,52,131,50,169,120,19,246,240,7,176,135,119,22,96,15,29,65,81,60,85,238,234,157,163,81,156,138,58,71,89,73,177,35,172,138,214,4,67,151,142,86,38,74,153,2,174,14,133,143,163,111,16,179,
+176,166,190,178,94,216,195,169,176,135,107,97,15,75,97,15,93,103,75,88,103,159,132,61,236,112,89,187,242,187,224,253,128,6,162,44,231,160,164,223,71,50,77,101,188,58,106,21,118,26,172,38,83,99,29,97,71,
+51,232,210,48,218,127,47,58,231,169,201,52,203,170,55,246,112,29,236,225,10,216,195,229,176,135,203,200,145,159,135,61,28,146,99,15,21,153,57,247,28,25,69,224,209,92,74,28,79,227,53,88,193,119,64,151,
+94,102,98,75,131,48,216,20,51,230,175,198,102,129,75,255,204,128,166,170,79,105,147,151,241,218,120,166,78,251,30,14,135,61,124,25,246,112,41,236,97,9,236,225,18,216,195,103,96,15,155,229,250,30,170,110,
+143,46,180,126,40,121,165,44,146,39,196,225,163,123,139,6,232,214,186,189,65,77,181,173,17,221,39,140,205,98,121,234,48,125,252,57,133,107,46,79,42,130,148,66,213,89,223,195,233,176,135,43,97,15,151,192,
+30,46,129,61,92,0,123,120,79,166,239,97,116,231,112,148,13,68,1,104,101,59,227,57,210,178,12,6,47,97,15,21,240,129,4,132,129,142,172,110,236,124,118,100,29,85,181,212,74,18,125,156,239,146,165,10,221,
+52,218,167,78,250,30,190,5,123,184,18,246,176,4,246,240,5,216,195,185,176,135,189,114,236,161,167,23,225,202,74,125,117,103,71,55,139,227,249,251,96,151,116,109,133,222,194,86,186,180,70,104,168,70,107,
+172,209,90,67,253,190,178,226,0,46,125,57,242,136,202,23,21,184,133,170,207,93,147,9,136,138,1,245,31,53,238,123,216,138,190,135,239,192,30,190,10,123,248,54,236,225,219,176,135,75,242,216,67,51,40,151,
+31,49,188,232,124,23,163,172,225,142,116,116,197,115,164,85,184,11,133,24,224,52,46,150,35,71,85,247,85,89,107,82,162,238,218,159,49,51,139,32,167,158,82,233,191,221,4,234,132,61,236,1,123,184,26,246,
+112,62,236,225,124,216,195,249,176,135,79,229,177,135,186,178,129,73,42,77,163,165,208,2,176,244,5,104,124,24,236,239,117,109,149,238,26,17,73,138,115,56,168,82,133,226,1,91,26,220,20,140,43,37,246,171,
+41,169,238,157,101,15,213,98,74,170,57,234,53,238,123,56,24,246,112,5,236,225,92,216,195,231,97,15,103,195,30,222,147,199,30,234,142,6,36,215,93,141,117,13,142,78,119,254,222,23,225,163,91,71,4,151,81,
+210,8,163,179,163,236,113,143,35,41,247,224,247,67,32,238,154,109,84,55,208,41,22,119,42,24,240,84,190,7,123,232,82,85,107,236,225,72,216,195,165,176,135,179,97,15,103,193,30,206,4,199,187,173,0,123,24,
+77,226,2,165,243,5,4,138,23,148,184,9,136,47,194,151,224,40,139,234,152,86,26,192,52,72,226,52,58,105,153,164,248,24,224,100,31,162,149,167,168,143,63,175,156,169,78,216,195,43,97,15,95,132,61,156,9,123,
+56,3,99,159,133,61,188,37,143,61,116,132,205,151,3,178,10,190,208,239,5,169,38,161,226,146,36,162,227,135,247,67,155,76,152,144,200,44,250,184,78,251,18,68,118,252,123,209,213,210,32,39,232,225,227,223,
+117,164,43,99,15,221,57,153,145,121,127,53,219,212,229,28,247,46,103,199,116,55,207,225,105,137,54,206,125,112,173,190,188,109,60,103,65,41,50,254,15,251,195,30,46,134,61,156,6,123,248,44,236,225,83,176,
+135,183,230,177,135,110,230,131,62,17,178,242,9,56,195,81,138,30,106,145,82,186,254,58,178,190,40,231,165,70,58,29,228,13,163,247,97,244,74,140,14,123,190,48,95,130,47,204,124,92,70,169,34,246,80,49,186,
+231,218,98,8,94,214,205,210,181,130,60,92,131,111,217,200,96,214,189,246,188,253,5,204,155,149,236,41,127,220,25,246,112,49,236,225,211,176,135,79,194,30,62,9,123,120,79,30,123,232,129,156,111,93,183,
+12,55,148,74,113,190,57,23,157,151,206,79,35,174,75,77,68,102,131,157,1,74,55,214,192,200,200,52,90,227,163,13,96,116,197,211,3,28,117,35,188,176,71,62,123,104,207,23,71,222,245,217,188,219,131,253,106,
+247,61,188,4,246,112,5,236,225,34,216,195,37,176,135,47,192,30,62,153,199,30,250,15,251,184,121,23,132,212,80,3,143,70,10,108,104,148,107,104,180,0,140,75,14,92,115,61,0,240,101,233,174,129,223,57,191,
+163,171,101,214,104,13,118,73,51,114,135,128,188,78,216,195,69,176,135,211,97,15,167,194,30,78,134,61,188,7,246,176,83,142,61,212,109,156,43,94,31,227,201,132,70,250,129,92,114,116,93,215,211,56,209,112,
+215,147,189,144,200,145,118,137,241,128,192,128,21,4,90,236,176,178,93,45,163,89,171,83,193,173,162,238,108,224,170,19,246,112,18,236,225,147,176,135,15,193,30,62,0,123,120,55,236,225,200,28,123,168,145,
+62,30,203,184,113,55,123,18,195,139,235,163,204,129,221,13,69,27,49,221,216,68,69,195,53,216,63,183,109,160,94,97,64,10,44,215,96,150,189,222,70,183,54,16,9,128,212,121,223,195,30,176,135,79,195,30,222,
+15,123,120,15,236,225,93,176,135,215,193,30,182,186,236,162,244,184,53,46,248,50,137,112,158,58,170,174,171,186,112,28,221,104,96,108,251,60,198,241,247,70,105,55,4,190,28,231,185,193,200,72,238,19,189,
+79,163,53,168,35,108,91,177,160,93,116,233,77,177,135,158,152,40,95,180,155,0,12,196,10,216,165,103,9,88,199,243,28,152,202,138,179,167,243,28,150,117,99,206,45,102,254,173,230,98,144,247,100,15,167,194,
+30,222,11,123,120,23,236,225,237,224,120,55,192,30,118,204,244,61,244,252,201,211,8,221,87,67,3,195,11,230,48,122,166,197,65,158,198,7,119,24,93,45,141,226,238,151,125,28,105,35,115,184,185,191,214,192,
+96,15,229,38,60,1,113,35,97,196,142,39,250,30,214,152,61,28,3,123,120,31,236,161,198,222,2,123,56,1,246,112,104,1,246,208,99,30,71,77,99,116,227,216,58,6,96,25,173,255,220,112,68,131,71,95,146,41,163,
+163,108,86,229,124,54,225,112,169,139,71,119,247,106,56,13,246,49,10,235,226,206,227,48,86,218,165,214,216,195,78,176,135,247,192,30,222,10,123,120,35,236,225,93,176,135,119,193,30,246,207,99,15,189,171,
+206,61,107,180,237,140,35,218,104,238,24,173,255,52,216,32,22,160,165,110,237,105,102,22,180,140,172,203,17,247,92,171,94,217,195,115,96,15,39,194,30,78,130,61,124,8,246,240,110,216,195,209,176,135,125,
+96,15,91,21,232,123,232,7,116,217,201,231,14,131,72,11,36,94,215,119,190,235,214,6,47,35,118,172,223,65,155,91,76,139,64,85,149,190,135,181,198,30,246,134,61,124,4,246,240,70,216,195,235,96,15,175,1,199,
+27,1,123,120,5,236,97,187,78,205,210,229,41,250,30,186,92,88,48,243,40,198,228,222,125,171,25,89,84,30,226,128,206,51,173,0,45,61,178,117,205,214,112,111,99,113,212,163,125,167,163,187,69,216,195,209,
+176,135,227,97,15,175,198,216,145,176,135,195,96,15,251,195,30,182,131,61,188,188,83,187,84,214,96,240,138,132,192,173,155,123,88,143,100,124,33,186,116,182,185,99,156,106,184,116,153,41,201,248,59,154,
+202,32,98,190,26,160,170,194,30,102,250,30,214,30,123,120,46,236,225,24,216,195,107,96,15,135,195,30,14,134,61,28,0,142,215,13,246,176,117,1,246,208,35,25,247,168,113,183,134,217,88,172,195,46,99,206,
+99,55,253,142,184,157,163,227,6,135,136,198,162,119,91,156,61,188,4,246,240,58,224,172,161,176,135,26,219,15,246,176,55,56,222,64,216,195,14,121,236,161,71,46,230,182,146,41,70,208,224,5,221,192,251,24,
+97,101,12,221,219,134,145,126,245,247,254,189,6,195,30,118,134,61,28,9,123,216,31,246,80,99,7,193,30,246,131,61,236,4,123,120,49,236,225,165,176,135,93,187,119,73,221,216,131,54,13,119,14,110,138,61,212,
+200,128,41,157,18,174,179,206,125,167,132,127,207,101,199,159,241,137,23,231,178,228,191,205,209,237,223,248,245,235,252,124,41,241,163,20,37,128,91,193,232,106,185,63,191,222,149,167,188,15,83,133,10,
+0,127,72,105,144,55,117,227,126,107,57,180,43,85,102,112,36,125,15,187,193,30,14,133,61,28,4,123,56,16,246,176,51,236,225,229,176,135,109,97,15,47,134,61,60,23,246,176,9,236,97,123,250,30,90,77,244,195,
+203,15,235,222,91,101,223,195,67,143,250,230,223,186,192,30,94,137,123,119,135,61,188,28,246,176,61,236,97,27,216,195,150,224,120,23,131,225,157,3,123,120,218,208,125,146,19,58,239,151,28,223,100,125,
+223,195,173,158,61,188,24,246,176,59,236,97,103,216,195,54,176,135,26,123,41,236,225,69,176,135,23,97,244,133,224,120,167,195,30,30,67,223,195,131,232,123,248,117,250,30,126,25,246,112,223,195,118,75,
+246,253,230,191,121,96,231,115,116,123,215,181,141,218,126,47,120,97,231,188,169,163,135,117,46,123,108,244,255,198,207,191,197,178,87,74,178,243,110,14,199,147,8,63,147,231,8,30,93,89,69,254,6,181,225,
+42,245,91,226,47,109,75,194,190,31,1,101,160,106,25,150,147,183,41,88,151,242,161,86,121,235,239,89,176,135,151,195,30,118,128,61,108,1,123,120,17,236,225,133,176,135,26,219,4,246,176,49,236,225,233,244,
+61,60,145,190,135,135,211,247,240,64,250,30,126,187,197,14,201,87,171,201,30,22,232,123,88,74,146,179,101,216,195,195,97,15,47,134,61,108,5,123,120,41,236,97,83,216,195,11,96,15,207,129,61,60,27,246,240,
+76,216,195,83,97,15,79,24,14,127,8,123,120,56,236,225,183,63,13,125,15,79,162,239,225,69,176,135,205,96,15,155,194,30,158,7,123,120,54,236,225,25,176,135,167,193,30,158,4,123,120,194,85,112,136,244,61,
+60,172,205,62,229,5,178,40,159,152,164,108,181,125,15,47,186,232,194,164,25,236,97,19,216,195,179,96,15,79,131,61,60,25,246,240,68,216,195,19,96,15,143,42,208,247,208,101,44,219,247,112,171,102,15,47,
+166,239,225,197,176,135,77,97,15,155,192,30,94,82,100,15,139,125,15,75,188,75,39,119,189,76,19,86,11,175,169,176,39,120,116,179,44,178,135,85,17,139,87,75,32,190,169,127,208,69,158,167,216,247,48,173,
+231,20,251,30,22,217,195,90,155,90,149,205,227,122,251,143,42,251,32,245,245,231,245,98,112,145,61,44,178,135,69,246,112,235,101,15,123,244,236,240,201,200,107,207,250,251,197,151,156,145,170,216,61,223,
+242,86,127,31,127,77,181,224,95,124,255,239,28,188,127,194,247,62,230,249,163,133,60,84,8,165,84,48,74,188,125,209,11,9,27,52,123,104,227,137,147,78,58,129,131,247,38,201,220,121,173,146,15,126,119,82,
+50,125,222,37,41,167,164,130,239,83,201,30,254,248,199,35,208,101,244,74,214,190,220,45,249,205,63,190,151,188,242,211,147,146,65,67,58,167,96,199,167,166,239,97,176,135,235,214,13,64,168,114,83,178,18,
+201,241,218,55,46,75,126,249,215,195,146,159,253,245,144,228,142,7,155,166,183,20,127,170,216,195,149,40,231,87,35,38,255,225,251,99,147,55,222,189,38,89,247,110,219,228,103,159,28,154,252,10,104,107,
+245,79,142,72,186,117,239,156,150,74,125,52,190,87,175,94,169,155,91,83,178,62,101,153,213,50,76,52,156,82,105,224,217,182,229,88,15,233,57,219,254,131,23,18,122,78,78,17,238,45,230,255,243,30,48,122,
+223,23,57,123,122,119,229,38,55,57,149,253,64,14,161,109,141,56,244,137,143,62,250,232,85,113,60,130,200,42,42,130,159,228,179,135,171,96,15,215,128,9,172,70,57,255,202,27,35,146,31,126,56,54,41,123,187,
+93,242,139,127,126,55,249,5,132,218,207,32,212,174,26,115,94,90,44,223,234,217,195,53,208,46,107,97,15,87,195,30,174,0,19,152,143,114,126,213,79,174,79,230,189,209,180,220,216,159,38,223,64,228,118,96,
+42,233,119,4,61,195,114,244,44,181,218,123,69,101,144,106,157,32,212,226,238,106,255,220,159,245,171,5,117,35,60,103,211,159,112,134,189,134,35,227,229,30,29,123,147,27,35,220,129,103,207,66,231,209,49,
+176,155,28,126,52,83,7,11,71,219,171,20,13,85,58,178,130,150,249,236,225,90,8,181,151,64,123,28,217,23,100,34,96,15,135,129,9,92,209,163,93,242,224,51,167,37,31,252,253,155,137,198,190,254,95,7,39,171,
+126,126,88,210,181,247,121,169,40,198,130,183,154,140,184,163,90,131,85,17,104,156,223,179,252,170,145,190,32,95,136,192,150,127,174,4,66,173,52,7,243,159,32,120,209,232,82,175,173,67,180,54,53,119,24,
+111,61,169,96,3,215,10,13,70,44,182,47,122,169,17,146,224,54,102,69,232,178,66,55,182,239,97,150,61,252,9,236,225,79,96,15,87,195,49,205,2,237,185,33,199,30,90,16,247,131,223,250,192,249,201,20,68,169,
+35,175,26,145,214,136,253,208,91,45,123,24,35,251,62,236,225,188,60,246,208,234,97,244,82,138,70,54,42,1,196,227,3,156,22,147,55,96,101,217,67,71,189,193,244,61,204,178,135,97,172,56,222,83,176,135,3,
+115,125,15,243,217,67,57,6,19,141,104,242,168,177,170,118,148,56,248,184,68,169,234,49,98,59,175,195,197,117,101,141,111,16,236,97,24,91,134,177,143,231,177,135,26,168,248,91,97,139,250,43,69,161,106,
+173,162,229,144,106,189,252,30,136,190,144,160,212,52,90,237,151,211,65,74,213,185,174,158,211,236,205,121,235,147,75,73,211,58,178,50,38,191,71,16,251,136,58,241,42,175,159,228,247,107,119,222,121,231,
+145,185,162,218,103,178,43,209,70,115,24,37,220,23,80,193,61,134,146,125,49,90,169,5,222,222,144,101,15,141,198,105,128,98,206,62,153,199,30,106,164,6,107,84,104,168,149,17,170,159,86,236,173,210,214,
+151,160,38,83,58,45,58,228,57,194,209,63,77,119,214,216,16,198,104,140,163,29,70,27,27,164,74,85,8,104,172,249,185,63,239,247,169,48,254,146,181,122,49,82,200,213,84,23,231,97,176,215,165,111,16,181,55,
+50,24,37,92,51,228,188,139,144,243,151,160,202,43,243,170,138,96,15,127,1,123,248,83,216,195,151,97,15,13,80,249,236,161,31,90,21,78,160,0,138,68,149,252,107,188,218,43,229,191,26,172,46,75,109,166,66,
+54,19,144,232,3,225,156,55,160,197,8,59,186,91,140,61,52,131,50,169,120,23,246,240,125,216,195,187,115,236,161,194,82,101,134,102,72,202,142,164,87,130,115,8,57,112,22,199,83,139,21,26,106,5,166,234,181,
+2,184,204,106,50,253,247,124,129,34,182,245,206,30,174,131,61,52,93,116,157,53,169,120,38,143,61,244,195,249,168,202,137,102,82,82,46,129,227,57,210,138,68,163,29,160,6,71,59,64,231,110,188,48,13,14,77,
+166,255,158,25,153,47,67,247,174,55,246,240,21,216,195,149,176,135,110,4,202,96,15,205,160,76,42,156,51,46,61,193,30,250,161,29,173,160,210,194,112,85,238,142,180,60,132,186,73,53,149,225,210,102,85,106,
+51,179,56,109,244,129,8,197,94,136,84,243,217,67,147,17,101,81,126,95,241,139,95,149,57,185,74,128,246,188,77,240,91,133,103,148,33,59,246,162,222,111,168,8,216,72,1,64,80,185,19,9,254,34,70,98,49,73,
+253,127,185,159,117,139,183,2,246,176,20,246,112,57,236,225,244,60,246,208,121,231,92,212,88,3,148,6,7,157,38,183,20,157,241,28,101,231,177,129,203,40,45,113,166,193,106,182,178,6,7,112,105,164,119,110,
+43,84,245,165,184,177,176,118,92,167,236,225,44,216,195,53,176,135,203,96,15,151,193,30,46,134,61,188,47,195,30,58,186,126,96,153,5,141,211,141,253,26,6,107,124,180,23,115,164,149,6,27,184,52,88,141,165,
+106,60,255,141,208,84,199,175,253,189,155,139,104,249,169,219,107,188,154,47,239,133,119,36,235,132,61,252,1,236,225,26,216,195,21,176,135,75,96,15,23,230,177,135,206,57,151,32,71,49,58,224,105,116,182,
+255,161,191,15,106,77,183,22,6,49,146,71,194,17,160,165,198,234,190,209,221,50,180,152,106,176,227,192,192,165,72,205,151,29,3,178,236,161,238,92,99,246,176,13,236,225,143,96,15,223,132,61,124,15,246,
+240,7,176,135,203,97,15,123,100,250,30,26,96,20,114,107,176,145,217,32,37,140,21,44,98,180,2,12,163,93,174,212,65,43,21,118,26,24,144,124,105,209,145,214,17,55,240,105,164,90,106,189,32,154,52,155,129,
+5,123,232,215,90,239,123,216,19,246,240,101,216,195,69,176,135,139,96,15,23,193,30,62,91,160,239,161,243,86,151,150,60,211,32,3,84,24,46,119,232,200,71,43,64,127,175,180,95,196,71,195,130,29,14,170,52,
+228,196,26,233,28,23,43,112,169,83,68,110,178,161,148,73,214,80,131,213,133,212,42,123,56,20,246,112,21,236,225,2,216,195,249,176,135,115,97,15,239,43,208,247,80,3,52,218,160,20,52,138,201,70,192,87,130,
+88,206,223,128,46,253,181,170,119,93,215,249,239,252,116,36,67,62,44,108,105,20,247,107,116,232,241,171,217,88,232,181,212,104,26,192,106,149,61,188,10,246,112,5,236,225,92,216,195,185,176,135,179,193,
+241,238,204,99,15,93,58,130,70,49,125,20,208,8,94,33,218,247,69,59,63,217,36,153,164,232,122,103,228,117,254,187,145,16,207,179,229,80,116,180,244,171,25,153,73,138,203,88,180,242,116,253,86,168,90,39,
+236,225,72,216,195,101,176,135,115,96,15,53,118,6,236,225,109,121,236,161,115,56,104,20,57,65,113,185,232,74,25,95,29,77,151,34,201,21,13,208,72,71,75,111,208,248,104,2,231,139,138,46,150,129,241,137,
+242,69,14,238,11,145,46,213,157,235,164,239,225,64,216,195,18,216,195,231,96,15,103,192,30,62,11,123,120,123,134,61,116,31,171,6,218,99,87,93,80,64,195,39,58,226,57,42,6,39,63,164,243,208,121,105,180,
+213,141,13,82,254,172,115,223,128,23,68,170,222,16,77,29,13,110,89,72,83,227,165,223,42,98,15,157,219,53,234,123,120,5,236,97,9,236,225,52,216,195,103,96,15,159,129,61,188,63,199,30,186,79,141,203,191,
+60,109,116,143,171,129,209,13,222,249,167,145,206,75,105,111,131,145,115,54,182,142,186,179,47,195,8,111,160,115,164,253,26,49,32,154,196,5,192,169,241,102,105,6,187,77,245,61,244,22,8,181,152,238,161,
+171,205,30,54,131,61,92,13,123,184,4,246,112,25,236,225,18,216,195,167,43,96,15,205,138,156,95,26,106,68,213,72,153,67,151,22,51,48,13,12,222,63,26,196,249,243,26,161,75,7,112,169,225,206,115,127,239,
+154,29,236,146,116,169,163,237,191,93,167,236,225,82,216,195,89,176,135,79,193,30,62,10,123,120,63,236,97,151,188,190,135,186,180,134,186,221,115,143,171,235,6,176,165,161,174,181,209,59,205,228,194,223,
+27,153,157,203,206,107,47,53,113,68,53,82,131,141,240,186,184,59,172,108,27,79,231,181,155,136,58,101,15,239,135,61,124,22,246,240,81,216,195,201,176,135,247,194,30,94,157,215,247,80,216,82,35,221,204,
+235,186,38,20,113,217,72,246,218,25,3,156,81,221,20,209,109,161,47,200,105,96,80,114,4,125,194,216,48,56,112,60,163,191,177,161,50,246,208,11,17,106,212,247,176,23,236,225,116,216,195,135,96,15,31,128,
+61,188,7,246,112,116,134,61,140,99,86,13,209,125,77,38,28,189,48,52,118,82,177,3,210,173,141,208,6,47,189,193,20,211,81,22,169,117,158,234,222,142,118,0,151,254,218,160,167,220,223,249,41,19,225,28,174,
+83,246,240,41,216,195,7,97,15,239,133,61,188,203,86,128,176,135,157,11,176,135,142,106,62,134,23,134,58,186,177,185,15,238,208,57,238,81,79,208,165,206,231,232,108,235,200,198,232,106,236,54,219,108,83,
+127,125,15,199,195,30,78,134,61,212,216,59,96,15,111,130,61,28,94,128,61,116,111,172,49,113,153,80,182,177,99,180,13,203,130,150,30,234,9,85,155,116,184,131,18,187,115,148,61,244,11,23,247,171,234,120,
+36,136,229,6,87,198,30,122,6,198,6,99,25,39,37,107,185,202,181,132,125,112,211,156,100,241,107,169,112,110,131,19,61,78,235,9,66,15,50,191,150,89,140,246,110,216,206,176,135,15,194,30,222,1,123,120,11,
+236,225,61,176,135,247,192,30,14,44,192,30,122,220,19,27,130,44,115,24,6,235,226,122,130,46,237,20,48,87,214,101,157,159,26,29,29,45,13,100,62,142,186,39,151,129,249,184,23,118,151,164,123,59,159,117,
+111,49,1,73,23,231,111,173,244,61,60,23,246,240,102,216,195,251,96,15,31,129,61,188,23,246,112,28,236,97,255,10,216,67,203,35,94,164,235,105,162,201,137,8,158,235,116,28,202,7,59,108,128,19,185,211,173,
+29,101,231,114,112,196,209,51,92,142,113,139,244,61,236,11,123,56,21,246,240,22,216,195,27,96,15,175,3,199,187,26,246,176,123,1,246,208,93,141,110,103,98,111,18,144,53,88,119,15,178,84,151,118,71,164,
+91,11,90,154,63,155,88,104,180,47,193,242,232,230,244,61,228,124,90,80,186,20,119,126,30,23,86,133,171,2,119,63,158,244,124,122,163,99,90,220,98,7,142,71,187,170,169,240,138,99,254,227,181,246,61,28,7,
+123,120,51,236,161,198,94,3,123,56,18,246,112,16,236,97,135,60,246,80,35,53,216,173,155,27,118,71,215,40,238,99,210,97,106,233,178,164,193,6,53,207,165,60,189,208,181,205,204,116,255,234,178,135,158,105,
+241,130,255,202,220,173,93,246,112,2,236,225,245,176,135,35,97,15,135,195,30,14,1,199,235,5,123,216,22,246,176,95,174,239,161,85,191,56,97,140,22,128,206,59,219,111,199,45,104,102,95,206,99,145,29,42,
+4,41,123,232,29,28,217,190,135,213,97,15,125,201,28,253,252,6,222,113,5,149,197,50,70,119,6,35,26,116,218,1,252,122,215,77,150,75,57,50,217,145,57,216,210,203,171,25,229,53,40,108,86,88,121,191,20,246,
+112,44,112,214,72,216,67,141,29,8,123,216,31,28,111,8,236,97,199,60,246,208,146,102,244,59,12,246,48,2,140,59,30,55,1,222,201,145,207,30,218,205,114,51,217,195,53,117,210,247,176,43,236,225,181,176,135,
+131,96,15,53,118,24,236,225,32,216,195,43,96,15,155,193,30,182,200,177,135,214,130,178,236,161,198,230,247,61,116,20,29,85,187,71,71,75,206,170,176,135,254,108,189,178,135,189,96,15,71,192,30,14,131,61,
+28,2,123,216,21,246,176,51,236,225,101,176,135,151,194,30,158,15,123,120,126,142,61,244,252,120,83,236,161,7,112,145,57,233,154,57,29,71,122,148,19,100,90,124,117,110,235,1,26,43,174,91,111,125,15,101,
+15,187,194,30,94,131,123,247,130,61,236,2,123,120,57,236,97,123,216,195,54,224,120,205,193,240,154,192,30,158,9,123,120,34,236,225,9,57,246,208,64,38,116,233,227,33,156,191,143,211,70,131,151,83,64,23,
+207,94,102,144,223,190,83,163,53,150,57,95,255,125,15,47,129,61,236,13,123,216,21,246,176,61,236,161,198,182,132,61,188,20,246,176,25,70,95,12,142,119,22,236,225,241,176,135,135,192,30,30,0,123,248,85,
+216,195,47,193,30,238,243,141,154,177,135,118,180,36,56,150,177,247,253,65,189,178,135,103,195,30,118,129,61,236,4,123,216,6,246,240,82,216,195,139,97,15,47,193,216,11,97,15,207,131,61,60,11,246,240,100,
+216,195,163,96,15,15,130,61,252,46,236,225,126,213,100,15,245,0,215,120,220,216,198,172,175,217,190,147,196,228,205,45,210,247,80,246,176,25,236,97,59,216,195,86,176,135,205,96,15,47,129,61,60,31,246,
+240,92,216,195,115,96,15,207,132,61,60,25,246,240,104,216,195,163,50,236,161,243,209,40,110,228,246,49,32,233,182,206,225,252,190,135,172,179,191,178,11,173,112,52,41,231,26,162,188,183,12,75,149,218,
+228,241,88,30,59,73,139,247,236,88,145,28,171,202,2,113,69,95,185,59,216,59,168,150,33,133,92,197,49,207,90,175,56,230,67,174,178,24,45,123,120,9,236,97,75,216,195,75,97,15,47,132,61,60,15,246,240,108,
+216,195,51,97,15,79,133,61,60,25,246,240,100,216,195,195,115,236,161,235,175,185,113,220,89,153,223,247,144,250,240,63,89,18,127,135,177,175,224,194,203,217,239,174,34,184,173,224,228,99,10,159,169,111,
+78,181,99,71,75,141,181,177,242,103,120,202,137,240,205,234,108,89,190,104,211,199,55,87,81,63,147,165,228,14,50,169,213,222,231,172,204,192,202,59,243,170,140,192,243,235,227,142,179,138,119,97,210,2,
+246,240,66,216,195,243,96,15,207,134,61,60,3,246,240,84,216,195,83,97,15,143,173,132,61,220,234,251,30,94,2,123,216,12,246,240,98,216,195,11,96,15,155,21,217,195,34,123,88,100,15,137,31,110,4,236,9,174,
+180,176,188,47,120,101,2,217,77,202,150,170,243,151,243,78,75,138,236,33,163,80,236,123,152,115,201,98,223,195,205,157,74,213,253,123,85,206,180,170,251,15,55,212,159,175,23,131,139,236,97,145,61,44,178,
+135,91,47,123,136,206,249,99,244,143,159,168,251,26,113,213,153,201,204,5,199,37,221,122,156,249,233,101,15,149,47,190,253,246,21,84,244,59,39,63,248,97,171,228,103,255,239,251,201,156,69,87,164,117,98,
+251,165,125,106,250,30,6,123,184,14,173,102,89,89,15,170,131,221,147,117,111,181,72,126,7,161,86,246,198,197,201,216,113,163,210,218,147,93,124,212,139,40,30,21,227,177,192,174,30,68,101,188,149,11,100,
+254,255,96,175,253,27,14,26,214,130,234,164,231,228,84,38,75,189,201,141,195,247,75,169,46,154,205,21,68,118,170,221,36,46,251,23,16,156,236,137,36,161,181,13,227,228,152,68,123,208,80,45,230,195,253,
+196,126,76,163,70,53,167,40,182,190,239,97,176,135,171,145,28,175,68,152,186,114,101,175,164,116,101,143,228,7,191,60,43,249,79,123,168,253,231,177,201,196,91,250,165,42,32,81,188,172,209,26,111,205,73,
+195,149,27,10,101,229,216,134,191,112,58,242,83,139,2,148,99,86,122,109,29,165,209,233,72,253,123,122,223,23,70,111,116,89,216,102,27,156,51,246,114,113,60,187,227,9,109,201,49,241,166,255,144,223,247,
+48,216,195,247,97,15,223,133,61,92,141,10,183,12,97,234,242,85,221,146,159,253,249,240,228,55,224,120,31,254,237,91,201,61,143,180,77,57,6,141,221,234,217,195,181,40,231,223,128,61,252,16,246,112,5,146,
+227,165,168,112,95,120,189,117,242,225,199,7,3,93,126,35,249,101,114,64,50,99,233,169,73,135,203,215,19,43,202,140,182,186,190,135,193,30,174,133,61,92,5,38,176,4,229,252,203,176,135,83,94,232,148,244,
+165,221,201,181,19,79,75,222,253,227,183,83,99,127,158,124,61,41,253,241,183,184,219,246,132,180,224,189,213,178,135,142,172,253,152,166,193,30,142,200,177,135,6,31,149,53,55,78,58,49,121,239,127,190,
+147,44,88,119,58,68,204,153,104,191,190,159,12,26,121,106,42,69,146,98,241,217,170,216,195,117,112,76,243,64,123,198,231,177,135,146,162,189,122,117,79,174,189,110,80,57,123,40,142,39,137,22,193,42,80,
+188,6,223,247,48,8,181,15,96,15,95,128,61,188,52,211,247,48,203,30,134,130,71,53,64,24,107,116,150,81,218,234,216,67,113,188,233,149,176,135,106,178,84,210,185,220,4,112,169,202,71,105,131,223,83,185,
+167,241,177,20,233,222,193,24,55,40,246,112,53,198,62,147,199,30,70,151,29,147,7,47,198,86,123,21,154,43,169,22,69,167,106,49,67,4,110,95,37,53,91,42,2,164,92,36,78,21,198,56,183,13,104,26,110,173,121,
+139,179,135,206,217,105,176,135,205,115,125,15,253,160,42,240,212,113,104,148,242,193,64,2,66,89,167,6,75,61,150,162,111,133,44,10,90,212,122,168,232,9,185,162,41,167,140,177,6,155,116,40,110,241,215,
+91,148,61,124,21,246,208,0,21,115,86,55,141,102,111,210,40,217,214,67,161,135,214,232,104,35,166,46,75,89,191,47,38,110,17,87,146,168,119,40,126,81,176,170,100,194,114,139,173,59,173,26,214,123,223,195,
+96,15,223,131,61,252,41,236,225,189,153,190,135,129,210,5,111,148,197,241,228,150,148,4,231,227,120,206,95,229,192,206,95,129,75,167,64,80,104,146,228,34,240,234,189,52,124,139,177,135,174,179,38,21,51,
+243,216,67,71,37,224,72,13,200,199,241,84,190,43,13,118,46,171,182,139,118,128,42,241,84,244,40,74,13,65,106,232,51,67,189,231,75,112,46,215,59,123,232,70,96,13,236,161,25,148,73,69,176,135,33,54,83,17,
+171,160,219,17,141,126,105,126,117,180,157,203,210,44,170,101,141,214,186,180,2,113,149,120,170,111,179,253,211,52,56,100,139,46,103,209,62,193,130,120,182,239,97,157,178,135,101,176,135,171,97,15,215,
+192,30,206,129,61,188,52,211,247,208,209,53,16,57,111,197,240,108,21,22,252,33,27,141,212,120,57,166,152,203,202,10,53,88,81,185,58,107,131,148,234,188,232,110,153,237,81,28,132,169,115,219,37,43,159,
+61,84,144,38,231,160,48,70,221,135,94,32,115,204,247,126,207,78,106,169,53,108,238,197,156,198,78,234,144,92,81,96,187,13,78,45,145,253,205,192,253,86,18,76,74,60,169,112,243,238,126,214,45,158,187,30,
+55,2,147,11,176,135,6,164,232,139,22,80,86,24,237,87,191,103,243,56,93,91,114,69,151,54,66,43,42,143,200,30,6,59,194,241,235,80,238,133,187,135,238,171,206,216,195,247,97,15,95,133,61,92,11,123,232,22,
+207,93,143,27,1,115,99,211,66,93,78,185,160,1,73,32,75,163,29,73,141,139,174,120,217,86,128,254,140,224,134,72,142,243,87,245,124,200,18,195,125,163,249,99,76,21,221,221,8,238,26,109,212,86,30,161,20,
+162,214,251,30,122,6,245,33,236,225,15,97,15,127,10,123,248,19,216,195,213,121,236,161,163,225,136,57,194,142,94,16,42,209,16,46,12,247,171,115,89,58,77,142,193,132,68,4,64,35,2,182,54,194,59,162,202,
+143,195,205,157,223,193,79,24,216,252,89,165,194,193,30,106,180,146,98,101,19,186,116,200,161,56,56,248,59,114,226,215,57,62,90,199,215,50,220,185,87,78,18,177,123,185,75,147,8,180,5,180,154,203,83,74,
+190,251,126,111,216,195,119,96,15,151,193,30,46,131,61,92,6,123,56,43,143,61,212,96,3,149,70,24,144,76,54,164,81,2,216,240,5,196,252,117,196,125,228,26,156,243,102,87,206,77,221,55,88,97,95,128,235,120,
+160,242,106,170,205,196,76,76,52,216,19,16,69,48,162,120,206,221,90,101,15,71,192,30,190,6,123,184,20,246,112,9,236,225,98,216,195,201,5,250,30,70,147,184,80,178,43,236,150,50,243,37,4,173,162,7,232,206,
+209,181,214,159,209,168,64,222,29,73,51,46,231,116,16,165,26,106,158,45,253,98,46,110,174,173,54,51,148,62,26,238,136,214,90,223,195,107,97,15,215,193,30,46,134,61,92,12,123,184,16,28,239,158,12,123,168,
+58,214,140,72,87,148,50,83,189,30,194,110,215,90,127,237,19,120,157,115,55,90,6,154,136,232,182,26,229,92,54,1,49,243,50,191,118,185,138,94,227,182,35,243,251,70,116,255,191,232,243,160,82,47,12,214,197,
+149,58,25,208,84,245,41,95,52,162,227,226,31,146,146,46,39,83,91,142,59,79,226,57,140,103,223,114,151,198,197,134,241,161,23,32,212,94,198,9,226,47,174,129,61,92,11,123,184,8,246,80,99,231,194,30,222,
+157,99,15,221,250,197,126,214,175,46,47,161,104,23,205,9,80,82,82,77,181,187,121,179,143,6,56,138,46,67,186,182,137,72,52,99,246,37,57,183,141,224,138,197,197,238,162,211,165,64,166,70,187,14,71,247,15,
+151,40,13,212,96,95,128,16,181,107,245,102,247,61,28,6,123,184,6,246,112,30,236,225,92,216,195,217,176,135,147,114,236,161,108,67,176,135,70,107,221,81,180,206,71,163,92,114,124,28,189,232,161,102,250,
+24,23,28,56,79,77,84,130,57,214,112,221,95,227,37,208,194,120,33,77,189,199,23,224,139,115,228,109,143,176,169,190,135,166,161,155,213,247,176,27,236,225,26,216,195,57,176,135,179,96,15,103,193,30,62,
+146,233,123,232,113,170,220,161,75,134,243,204,141,128,143,243,206,121,232,227,198,32,123,49,137,238,111,128,50,8,9,117,68,163,71,93,220,40,111,192,211,237,117,127,183,146,49,45,52,218,165,76,47,41,196,
+30,214,74,223,195,75,97,15,95,131,61,44,133,61,92,13,123,88,6,123,248,28,236,97,207,126,157,210,75,129,226,74,55,247,182,46,49,126,13,130,52,242,227,224,152,226,22,7,191,58,119,125,25,142,154,129,78,67,
+117,239,232,108,105,128,147,68,243,207,12,136,142,186,134,251,130,252,247,43,98,15,149,21,235,222,186,61,87,90,252,147,175,175,227,137,47,113,88,191,34,183,44,57,135,191,84,62,135,201,102,190,202,104,
+44,36,215,125,153,209,91,231,61,147,171,97,15,23,192,30,206,128,61,124,10,246,240,49,216,195,174,121,236,161,121,175,198,198,197,4,70,92,231,168,143,235,106,24,107,98,225,239,117,103,151,36,231,167,163,
+24,45,255,226,86,23,147,24,191,103,148,119,201,139,54,158,26,108,194,163,59,171,195,172,168,239,161,105,38,181,172,191,34,101,92,69,44,122,149,23,84,138,161,226,0,135,242,236,179,65,106,201,186,56,139,
+127,120,13,70,148,122,169,230,35,176,135,115,96,15,159,130,61,124,28,246,240,97,216,195,209,5,216,67,147,131,184,130,194,109,94,116,205,138,20,49,58,227,153,84,232,226,26,108,32,146,9,214,32,141,139,45,
+100,32,181,186,119,192,150,142,178,47,168,42,236,161,135,6,236,159,63,198,224,18,70,122,29,185,244,82,12,61,145,231,224,52,159,206,150,35,248,96,247,240,65,74,88,35,151,179,37,251,99,63,216,195,185,176,
+135,83,97,15,31,131,61,156,12,123,56,1,246,176,117,174,239,161,174,109,178,46,185,146,109,234,232,104,198,193,93,228,198,217,110,120,26,236,124,52,178,135,219,58,159,117,231,0,45,53,56,144,60,151,54,189,
+35,154,197,21,98,15,117,103,151,38,15,10,106,212,247,112,22,236,225,84,216,195,201,176,135,15,216,10,16,246,240,138,2,236,97,118,19,144,101,14,221,253,152,18,250,2,204,139,163,155,180,7,0,206,99,231,167,
+145,57,140,211,104,141,245,49,146,59,93,244,160,160,211,84,221,86,161,239,225,15,224,45,74,113,239,101,40,128,199,50,178,74,139,191,197,179,219,6,35,204,220,221,143,15,55,159,81,94,235,221,176,103,156,
+113,90,114,11,236,225,19,176,135,26,123,31,236,225,157,176,135,215,20,96,15,163,27,94,92,32,228,220,246,9,140,86,163,77,29,227,234,10,151,47,215,235,104,172,28,243,53,12,247,171,155,4,62,100,57,123,40,
+20,82,231,236,97,55,216,195,169,176,135,247,193,30,222,13,123,56,25,246,240,33,216,195,33,5,216,67,79,38,60,150,241,112,192,115,174,232,117,152,237,132,23,41,164,235,180,201,133,193,200,71,215,118,57,
+202,130,150,242,76,114,77,1,110,153,59,87,198,30,146,140,252,150,103,49,135,127,43,236,19,193,11,243,18,177,245,1,11,205,247,70,42,30,246,193,173,88,58,150,121,235,47,1,96,237,121,176,135,119,195,30,62,
+10,123,248,36,236,225,195,176,135,183,192,30,14,133,61,108,157,233,123,168,161,30,184,201,28,26,65,45,116,71,55,203,88,127,13,108,142,176,70,155,78,6,63,236,26,27,105,168,1,74,227,141,224,70,227,8,84,
+38,28,26,235,8,59,95,253,189,169,166,127,110,246,229,110,169,214,250,30,14,132,61,156,14,123,120,55,236,225,141,176,135,227,193,241,110,128,61,236,3,123,216,62,215,247,208,163,84,81,86,13,246,67,89,251,
+141,185,27,6,187,227,209,96,159,184,27,79,126,216,185,236,14,202,124,92,23,119,228,245,146,24,89,201,22,231,173,143,119,241,100,241,30,147,14,93,157,70,54,174,193,191,175,21,246,240,52,216,195,91,97,15,
+239,130,61,212,216,49,176,135,215,195,30,142,132,61,236,156,99,15,61,55,118,73,208,88,115,92,223,184,243,218,57,237,154,236,86,80,131,227,34,4,75,45,122,128,233,162,105,163,160,165,145,219,159,15,67,221,
+29,85,165,239,97,157,176,135,77,232,123,120,7,236,225,68,216,195,235,97,15,71,193,30,94,5,142,55,0,246,240,242,12,123,232,198,34,14,220,252,176,46,21,186,187,7,245,177,161,247,251,186,162,189,14,221,227,
+154,180,120,224,222,224,216,195,150,176,135,183,0,103,93,15,123,168,177,87,194,30,14,3,199,27,9,123,120,5,236,97,251,78,92,207,218,245,138,52,121,215,128,124,246,48,182,114,126,117,222,5,123,104,186,24,
+198,86,149,61,116,75,232,221,90,198,11,150,42,209,158,186,97,15,123,195,30,142,135,61,28,9,123,168,177,215,192,30,142,128,61,236,13,123,216,26,246,176,117,21,250,30,106,148,115,207,175,26,171,225,238,
+111,117,205,170,176,135,190,176,96,15,49,246,111,156,115,189,145,235,123,88,86,39,125,15,251,195,30,94,15,123,120,13,236,225,85,176,135,125,96,15,123,194,30,118,133,61,108,3,123,120,49,236,97,211,188,
+190,135,206,235,108,223,67,63,176,81,216,83,139,173,130,61,236,5,123,40,90,59,8,246,176,23,236,97,55,216,195,46,176,135,29,193,241,218,138,225,193,30,158,7,123,120,26,236,225,73,41,123,120,92,122,6,85,
+27,236,161,49,98,139,176,135,205,97,15,135,192,30,246,133,61,236,2,123,168,177,29,96,15,219,192,30,182,193,232,86,224,120,231,195,30,158,58,96,183,228,112,216,195,111,195,30,126,13,246,240,171,176,135,
+95,170,97,223,195,45,198,30,158,3,123,216,27,246,176,23,236,97,71,216,195,54,176,135,173,96,15,91,99,108,115,216,195,139,97,15,207,135,61,60,11,246,240,120,216,195,195,96,15,191,7,123,184,127,53,217,195,
+2,125,15,183,44,123,216,10,246,176,51,236,225,229,176,135,109,97,15,91,193,30,54,131,61,188,8,246,176,41,236,97,19,216,195,179,96,15,79,130,61,60,177,255,78,201,193,185,190,135,193,30,6,127,24,236,161,
+223,55,151,142,166,205,196,128,191,114,110,213,176,216,195,147,97,15,155,195,30,182,135,61,108,15,123,216,18,246,240,18,216,195,11,97,15,155,192,30,54,134,61,60,3,246,240,108,216,195,99,170,192,30,186,
+225,39,115,251,39,243,181,156,61,20,123,111,176,236,97,107,216,195,22,176,135,205,96,15,47,130,61,60,31,246,240,92,216,195,38,176,135,167,108,130,61,116,159,189,213,179,135,205,96,15,91,192,30,54,135,
+61,188,4,246,176,121,145,61,44,178,135,69,246,176,200,30,86,210,166,100,179,245,210,213,129,174,20,106,243,236,148,30,152,21,217,195,244,130,122,113,216,34,123,88,29,47,170,201,207,214,11,138,87,147,15,
+88,219,127,183,94,12,46,178,135,69,246,176,200,30,126,58,216,67,165,80,170,131,198,141,107,154,220,113,87,227,228,185,5,71,37,173,218,166,253,86,62,61,125,15,179,236,161,186,175,55,145,66,189,247,163,
+174,201,251,191,188,56,249,197,159,14,78,198,221,212,60,109,144,33,253,98,181,193,99,87,171,8,185,210,205,127,242,189,181,232,198,74,188,144,144,50,238,74,175,173,227,5,141,227,180,242,104,78,61,119,174,
+110,20,175,86,148,206,53,140,59,219,182,98,118,218,66,119,181,20,77,198,34,196,43,101,118,237,177,145,205,208,161,23,82,65,232,134,126,99,125,223,195,44,123,88,138,200,109,57,186,175,215,222,236,147,124,
+240,219,198,112,136,28,236,223,190,190,127,154,149,139,79,21,123,184,18,246,176,20,69,223,114,68,110,111,188,215,37,249,197,159,143,72,126,11,180,245,244,188,147,210,166,112,194,150,62,159,10,246,112,
+21,194,212,149,176,135,43,86,118,73,74,80,244,189,245,97,115,186,93,126,35,249,15,8,181,87,126,254,221,84,69,32,196,177,213,246,61,204,178,135,43,145,28,175,64,133,187,224,165,142,92,191,126,89,50,117,
+81,155,228,149,95,158,158,26,251,235,100,191,228,173,63,236,159,116,234,122,110,58,135,117,105,21,64,42,252,44,196,133,164,194,187,50,21,132,123,198,101,201,148,3,253,191,32,70,91,195,207,44,71,33,240,
+30,231,221,243,168,56,244,205,221,247,181,201,43,107,54,57,135,153,179,219,35,221,63,91,132,86,170,212,38,143,212,118,215,216,10,240,246,219,219,35,55,26,199,28,189,146,50,231,112,234,185,235,251,30,102,
+217,195,87,97,15,31,135,61,236,135,228,184,121,235,11,82,142,161,115,215,179,146,151,63,60,56,53,246,151,201,87,48,152,187,49,175,60,42,13,82,142,242,86,213,247,208,145,93,6,19,49,29,246,112,36,152,64,
+87,250,30,6,123,168,177,182,6,186,102,116,147,100,245,143,14,71,217,119,90,50,119,213,9,201,91,255,189,95,114,221,173,135,165,197,55,21,126,91,77,223,67,57,166,5,160,61,19,10,176,135,202,20,149,63,68,
+251,191,16,166,6,123,216,171,79,7,94,76,203,242,230,143,118,209,114,94,91,74,245,69,249,68,143,211,192,123,244,8,11,240,212,167,62,162,48,151,54,135,83,242,239,77,110,108,63,15,231,217,153,103,163,171,
+226,10,186,52,174,187,61,207,5,104,33,23,185,244,72,130,11,71,119,237,218,24,23,30,136,11,211,178,115,181,46,188,190,97,220,79,96,15,23,23,96,15,67,252,157,149,48,5,151,164,177,170,4,66,209,231,232,198,
+188,109,208,125,15,101,15,103,192,30,14,42,208,247,80,227,172,252,43,50,85,154,164,208,76,225,138,18,136,80,227,42,79,84,183,229,232,111,21,236,225,180,12,123,168,114,71,1,89,116,159,85,183,161,208,76,
+61,165,114,66,53,88,138,71,149,9,43,66,213,208,232,159,166,234,86,237,135,50,167,96,15,141,202,13,166,239,161,115,118,70,30,123,24,56,158,174,108,223,22,209,30,193,15,49,128,232,214,227,40,43,92,81,133,
+167,156,80,141,135,162,81,197,226,217,46,121,142,182,129,204,185,170,96,38,128,203,45,210,247,80,246,208,0,21,236,161,9,67,52,106,212,93,253,181,66,51,193,14,155,75,137,241,168,165,84,53,171,82,54,12,
+14,125,181,198,42,101,10,97,170,127,95,205,166,186,47,165,80,6,39,5,51,254,63,190,8,213,60,242,136,126,79,47,240,247,254,12,133,117,239,171,45,35,77,93,205,175,215,236,176,195,14,131,9,92,222,0,81,158,
+115,111,20,180,208,72,77,2,197,89,196,92,91,8,224,252,31,230,198,94,85,145,101,15,63,132,61,188,47,195,30,58,79,67,41,171,98,71,169,160,36,139,224,86,208,44,186,181,70,7,142,23,221,117,2,184,20,233,201,
+2,151,6,186,184,107,62,164,80,142,178,65,206,205,134,247,6,216,4,210,2,187,5,114,191,106,188,247,106,98,252,139,76,133,149,180,234,85,152,118,32,79,121,119,203,13,12,70,12,246,101,116,202,179,137,206,
+101,124,144,165,254,7,83,167,182,199,61,215,247,61,12,246,112,86,30,123,168,43,251,193,117,223,0,45,3,199,147,91,146,102,137,118,128,42,223,3,199,147,103,80,175,165,43,251,4,123,28,242,197,216,61,133,
+20,74,195,20,188,185,172,249,50,194,88,107,199,62,254,188,242,9,150,170,37,172,2,47,83,52,87,43,221,152,231,203,30,29,111,116,71,60,65,166,51,65,102,46,194,206,101,4,158,119,108,109,31,125,15,179,236,
+161,73,69,150,61,212,253,84,195,6,159,20,141,226,52,90,28,79,163,165,90,196,122,162,81,156,98,52,245,150,193,31,234,206,217,30,17,234,52,13,130,46,93,62,185,251,164,211,255,215,20,180,222,216,195,185,
+25,246,48,216,64,217,4,93,214,17,214,104,231,108,126,59,64,3,151,70,251,98,84,220,169,192,83,126,104,164,86,37,239,19,173,78,140,212,26,156,213,106,186,70,7,123,24,184,188,170,159,104,242,88,39,236,161,
+27,129,71,243,216,67,3,140,75,141,6,107,144,40,158,198,57,202,186,183,163,235,227,139,240,133,24,184,212,85,26,161,69,7,84,230,57,255,253,119,178,40,109,86,137,27,137,75,232,190,60,32,200,246,61,12,99,
+85,10,25,232,112,245,143,120,57,37,120,198,43,4,174,101,185,204,43,117,235,242,57,236,81,42,48,197,124,62,208,90,130,199,26,175,132,202,178,135,110,241,220,245,184,17,200,178,135,186,164,145,55,104,52,
+57,97,141,215,232,0,48,35,90,251,18,252,115,147,16,245,148,178,15,10,78,163,247,161,6,103,159,96,146,3,232,50,72,41,141,176,107,71,157,178,135,63,131,61,252,57,236,225,75,5,216,67,3,144,36,154,163,28,
+42,118,191,70,87,60,215,98,71,55,122,33,138,238,184,70,171,171,12,50,220,17,212,168,0,46,93,218,162,119,169,174,110,48,19,31,240,110,128,80,243,57,154,117,194,30,122,44,227,73,69,25,236,225,156,12,123,
+232,252,242,94,142,184,178,66,245,186,36,138,95,77,31,77,48,52,92,23,142,94,136,70,107,95,128,63,167,94,90,99,52,206,81,213,165,125,52,206,165,45,58,92,42,72,141,78,63,254,188,6,139,242,212,9,123,232,
+129,155,103,80,30,203,120,82,241,104,142,61,116,29,84,44,234,37,36,70,82,131,79,116,176,147,49,50,165,12,253,179,198,235,1,166,149,206,111,221,220,23,97,176,138,246,157,70,103,93,219,199,3,0,151,168,232,
+112,105,186,25,247,4,248,61,85,62,234,164,13,96,181,202,30,94,7,123,248,26,236,97,9,236,225,82,216,195,23,193,241,238,203,177,135,46,11,174,133,110,0,52,218,185,104,212,149,252,54,24,249,132,14,218,4,
+195,239,251,34,20,125,43,0,55,1,49,201,208,0,51,172,232,219,98,138,25,143,200,158,47,197,24,97,38,166,209,242,14,142,176,26,205,48,184,214,216,195,235,96,15,95,134,61,124,17,246,112,49,198,46,132,61,188,
+39,211,247,80,99,221,163,186,132,232,158,66,27,38,18,254,218,36,36,190,58,250,186,125,192,92,142,98,176,135,186,191,47,66,246,65,189,180,104,79,64,151,254,61,255,13,215,106,119,91,110,39,67,253,174,48,
+53,196,165,249,236,161,105,166,30,200,232,127,72,196,94,78,130,178,156,232,124,119,121,164,142,115,93,92,167,47,187,24,6,102,65,41,35,248,225,149,176,135,47,195,30,46,130,61,92,0,123,56,15,246,240,222,
+76,223,67,63,128,136,171,16,164,148,184,31,202,39,154,171,58,234,142,156,90,104,231,160,79,240,194,126,223,20,211,101,204,221,148,115,218,64,22,57,182,222,33,30,96,174,109,52,119,131,225,212,81,95,173,
+242,214,17,86,152,170,118,83,117,188,56,128,47,192,121,189,217,236,97,119,216,195,151,97,15,231,195,30,206,133,61,156,11,123,56,37,195,30,154,253,120,146,225,232,233,114,241,68,154,232,72,106,100,36,20,
+1,122,56,95,125,65,142,110,220,254,96,96,115,94,107,120,192,150,78,5,73,83,119,85,42,230,29,109,79,64,156,191,74,142,85,232,25,169,37,75,213,94,187,92,233,242,26,236,25,119,181,251,30,54,135,61,124,7,
+246,112,53,236,225,58,216,195,53,176,135,115,50,236,161,57,173,231,79,17,92,194,80,231,166,70,186,140,4,138,23,203,142,35,236,134,95,151,55,219,138,189,114,96,120,26,45,213,34,228,33,97,234,227,168,107,
+184,35,109,0,171,211,190,135,47,195,30,190,0,123,56,27,246,112,26,236,225,227,176,135,221,242,216,67,131,150,1,69,67,52,86,35,29,69,215,81,19,138,108,139,108,127,198,181,215,121,105,36,215,173,227,254,
+0,215,109,95,128,155,11,141,214,3,116,115,71,220,121,238,40,123,158,229,60,14,37,188,155,9,221,217,71,215,246,251,126,111,179,217,195,169,176,135,243,97,15,159,133,61,124,26,246,240,49,216,195,49,5,216,
+195,24,209,152,163,249,87,84,24,216,28,241,128,60,156,147,158,122,4,58,31,29,45,117,109,95,128,47,194,63,11,194,212,228,198,191,83,21,246,176,70,125,15,7,192,30,46,132,61,124,18,246,240,113,216,195,71,
+97,15,111,202,99,15,157,87,142,178,70,71,182,20,233,161,134,134,241,142,190,123,94,231,186,31,222,57,26,112,150,167,33,142,110,124,245,56,40,90,2,198,13,77,65,187,24,176,234,148,61,156,11,123,248,36,236,
+225,99,176,135,15,131,227,221,6,123,216,173,0,123,104,20,181,98,96,6,22,187,29,13,143,123,58,178,24,94,112,135,174,203,130,148,129,212,102,65,75,243,115,71,90,131,157,191,85,101,15,61,15,35,90,111,62,
+123,120,59,236,225,211,176,135,147,49,246,65,216,195,73,176,135,215,22,96,15,61,119,114,142,121,134,156,189,75,199,249,28,153,148,201,132,240,164,6,187,238,234,170,102,100,129,205,106,120,128,150,209,
+154,215,57,28,208,86,101,236,97,108,40,106,212,247,176,7,236,225,147,176,135,15,194,30,222,7,123,248,40,236,225,35,176,135,195,50,236,161,91,50,207,151,148,252,122,18,225,145,107,184,115,108,253,140,226,
+186,115,220,150,102,54,102,224,50,10,71,23,218,24,85,3,150,91,65,217,67,215,219,192,104,43,99,15,125,225,53,102,15,155,192,30,222,11,123,248,56,236,225,179,176,135,143,193,30,222,14,123,56,60,195,30,186,
+33,247,132,209,3,55,255,83,215,220,88,138,52,216,141,128,145,60,238,230,112,14,23,2,45,53,220,185,107,74,41,85,42,104,25,129,42,8,181,42,176,135,47,225,101,101,96,121,101,192,210,87,242,239,28,199,99,
+227,154,207,241,108,187,209,33,30,149,186,125,72,40,158,38,83,42,179,242,238,69,184,131,97,15,103,193,30,222,7,123,120,43,236,225,77,224,120,227,96,15,251,231,216,67,79,18,117,233,232,121,232,136,235,
+214,70,102,119,64,166,146,17,176,76,84,92,150,76,35,227,42,12,231,177,163,26,183,60,184,129,136,246,157,142,174,75,142,238,90,175,236,225,157,176,135,247,194,30,222,136,177,227,97,15,199,192,30,94,3,123,
+216,53,175,239,161,17,52,46,251,50,167,117,254,122,94,165,193,62,238,178,34,37,117,83,17,160,165,72,173,110,238,207,7,123,232,87,215,88,13,245,228,50,191,143,90,108,28,234,132,61,188,0,246,112,18,236,
+225,45,176,135,99,97,15,175,135,61,28,5,142,55,24,246,176,51,236,97,255,92,223,195,66,236,161,115,91,55,119,9,11,252,206,219,24,60,4,48,128,185,177,136,11,13,34,26,111,110,223,67,2,92,237,245,61,108,13,
+123,120,39,112,214,24,216,67,141,189,26,246,112,4,56,222,40,216,195,238,85,96,15,77,240,189,59,39,216,67,71,47,238,229,168,46,123,232,191,17,25,23,243,187,238,216,195,190,176,135,55,195,30,94,3,123,168,
+177,215,193,30,94,13,123,216,31,246,176,29,236,97,155,60,246,208,200,234,25,84,24,233,6,222,132,63,96,231,90,100,15,203,80,0,213,13,123,56,8,246,112,28,236,225,245,176,135,215,194,30,14,128,61,236,11,
+123,216,3,246,176,61,236,97,51,216,195,139,101,15,59,181,74,139,224,6,156,96,15,29,101,31,163,174,219,185,173,134,61,236,11,123,56,17,247,30,6,123,216,23,246,176,23,236,97,55,216,195,43,192,241,46,3,195,
+187,20,246,240,2,216,195,51,97,15,79,110,114,88,114,226,167,129,61,108,9,123,120,37,236,225,32,216,195,110,176,135,26,219,17,246,176,3,236,97,123,140,110,127,251,62,73,83,216,195,51,96,15,143,108,185,
+91,242,93,216,195,175,231,216,195,47,215,128,61,36,224,253,109,139,177,135,231,194,30,246,131,61,236,7,123,120,5,236,225,101,176,135,237,96,15,219,193,30,182,134,61,108,49,241,11,201,69,176,135,231,192,
+30,158,212,117,143,228,136,22,187,38,135,193,30,30,80,3,246,144,41,241,250,22,239,123,216,6,246,176,27,236,97,23,216,195,14,176,135,237,96,15,91,192,30,94,10,123,120,9,236,225,133,176,135,231,192,30,158,
+218,7,195,97,15,15,105,252,249,52,202,122,82,81,89,223,195,92,12,144,61,252,117,131,234,123,120,10,236,97,75,216,195,142,176,135,29,97,15,219,193,30,182,128,61,188,24,246,176,41,236,97,19,216,195,198,
+176,135,231,192,30,30,155,99,15,163,231,97,212,141,162,239,161,154,75,51,54,217,195,108,223,195,6,205,30,182,133,61,108,13,123,216,10,246,176,57,236,225,69,176,135,23,192,30,94,120,239,142,201,169,121,
+236,161,217,148,59,45,5,45,62,230,230,184,237,111,241,130,53,24,252,162,87,189,145,84,148,242,66,86,230,176,247,54,228,198,39,241,28,193,243,77,30,59,90,218,228,113,147,61,31,170,37,46,77,235,171,235,
+49,29,155,180,29,78,114,222,131,60,119,38,5,232,181,168,112,86,91,121,183,24,109,125,150,231,109,239,213,176,176,197,7,253,75,115,216,195,86,176,135,173,96,15,155,193,30,182,44,192,30,122,75,146,23,7,
+81,235,125,135,45,222,82,214,240,23,40,154,149,217,19,156,163,155,85,118,142,70,109,103,85,223,235,162,188,95,231,123,60,251,243,236,193,179,35,79,133,29,45,55,217,97,186,50,73,110,186,235,88,175,131,
+250,18,207,137,236,106,70,146,53,205,83,102,96,229,221,98,52,10,217,85,94,151,106,21,143,15,191,202,123,38,121,1,239,145,247,126,224,5,125,158,27,147,115,127,224,233,162,151,125,121,255,149,87,66,113,
+167,221,18,47,14,66,171,181,214,235,101,220,245,216,0,125,199,29,119,180,71,169,134,58,170,54,66,183,178,111,69,80,62,106,251,202,62,115,141,12,206,141,244,54,185,183,234,182,203,183,124,130,154,10,101,
+6,86,222,25,169,50,133,98,150,44,169,82,188,230,165,154,184,234,42,164,10,165,222,70,232,33,57,134,173,240,103,188,217,204,203,190,188,255,138,209,92,225,45,73,24,89,100,15,121,169,197,190,135,85,117,
+229,26,187,116,133,253,125,139,236,97,10,94,238,194,179,59,79,145,61,172,174,75,214,244,231,171,189,14,215,244,63,220,210,127,191,94,12,46,178,135,69,246,176,200,30,126,250,216,195,113,227,46,160,58,113,
+86,210,3,165,65,199,142,39,255,107,232,149,199,253,189,217,165,141,63,33,181,252,35,187,166,247,188,87,147,131,252,18,111,95,180,40,192,121,117,41,169,231,227,108,23,91,146,131,127,173,42,27,133,90,185,
+244,64,180,7,21,206,193,148,54,71,200,68,32,56,91,204,215,197,148,62,23,80,34,41,83,114,172,10,87,97,234,240,225,77,168,48,252,187,239,97,176,135,63,146,61,124,191,115,242,58,26,146,215,145,85,124,240,
+171,83,146,95,254,55,55,40,118,56,45,149,44,124,170,216,195,82,116,95,111,188,209,63,121,237,141,190,201,139,8,102,150,174,108,150,252,252,247,135,37,255,11,199,212,177,83,235,84,242,111,97,125,171,239,
+123,40,123,184,82,69,31,34,183,215,223,236,151,188,242,70,239,100,49,234,160,87,222,61,35,249,227,223,247,79,254,243,99,46,21,188,250,188,148,67,84,9,180,85,247,61,84,152,186,10,246,112,37,236,225,10,
+20,125,175,188,217,59,89,251,122,247,100,209,138,75,147,95,255,191,239,38,255,3,161,246,171,63,81,201,184,254,244,84,143,101,17,78,226,212,81,118,196,61,219,206,157,128,120,150,253,7,246,208,107,40,248,
+149,82,111,126,139,57,253,60,229,153,129,156,130,184,69,173,116,95,92,105,226,145,67,104,91,219,228,241,163,143,62,122,85,28,143,32,178,138,138,255,39,61,122,52,193,136,254,84,254,6,83,231,29,130,81,67,
+80,219,13,73,149,243,209,247,80,201,113,153,125,15,97,15,103,192,30,78,65,190,56,13,69,253,211,75,187,39,179,86,158,157,26,251,223,201,151,147,223,253,125,223,100,192,144,83,211,186,178,70,111,117,236,
+225,82,186,246,188,6,123,248,20,236,97,255,12,123,104,89,213,209,19,204,90,178,250,224,212,216,255,74,246,77,126,159,236,157,92,63,225,248,84,176,234,168,6,104,169,132,65,190,65,125,180,95,149,81,88,124,
+231,82,177,79,40,184,173,161,188,187,28,61,216,219,156,168,204,98,132,59,228,54,40,21,182,245,220,228,8,27,141,133,163,237,85,106,251,78,71,86,208,242,222,123,219,51,170,131,40,94,143,65,55,121,123,57,
+161,230,200,46,183,31,19,236,225,85,21,176,135,98,118,206,211,1,131,46,73,222,250,217,193,201,143,127,247,141,212,216,95,255,109,175,228,222,169,223,79,251,31,122,90,41,81,26,198,90,112,247,128,79,249,
+176,218,48,139,238,82,44,168,4,62,225,132,69,163,75,105,228,186,142,202,228,84,12,62,147,199,51,183,130,135,121,21,26,140,224,123,95,151,30,73,112,27,179,218,171,84,55,158,48,161,101,106,108,89,217,122,
+28,239,39,63,185,133,103,98,34,199,180,16,180,103,98,5,236,161,35,23,236,161,245,97,5,48,42,249,4,164,187,117,235,146,76,122,228,244,100,204,173,199,165,122,14,141,110,240,236,225,146,74,216,67,231,166,
+50,136,16,173,249,251,96,15,149,10,6,123,24,134,234,5,17,180,228,149,162,143,90,72,43,28,97,21,242,126,165,34,249,7,142,115,151,241,242,214,114,8,184,218,211,212,220,1,227,142,249,201,71,193,17,70,77,
+243,101,70,248,1,147,10,25,127,91,238,218,133,214,0,181,102,205,208,148,23,14,208,114,37,236,225,115,25,246,208,15,30,61,212,212,104,185,166,170,140,85,187,161,14,43,244,87,106,180,52,66,14,73,131,149,
+35,55,120,246,112,141,77,30,243,250,30,134,177,6,23,37,14,242,15,1,126,68,27,177,16,146,90,253,87,11,162,14,68,217,176,98,22,255,126,131,101,15,103,102,216,195,88,63,3,161,245,131,43,53,12,50,77,180,71,
+131,29,229,104,83,162,138,94,157,135,134,43,67,86,199,101,210,161,38,36,110,48,214,101,141,206,91,188,239,161,1,42,203,30,154,44,232,190,202,124,85,225,248,40,52,11,28,79,208,67,131,213,85,58,194,10,206,
+20,178,40,80,147,48,149,80,139,30,136,26,236,99,78,238,60,181,12,179,69,251,30,202,30,62,144,97,15,67,158,52,115,230,204,13,154,197,105,108,180,4,20,240,80,38,236,19,116,154,128,151,122,173,104,24,23,
+221,179,162,11,136,250,46,13,85,14,101,113,205,95,111,17,246,112,118,1,246,80,53,188,35,152,197,241,68,241,226,209,248,16,132,107,112,244,63,84,201,19,163,171,180,88,17,106,144,170,198,1,149,125,238,160,
+124,148,67,213,59,123,104,6,101,82,145,101,15,29,97,101,131,26,36,181,226,83,8,199,203,242,135,26,172,212,63,248,67,231,187,42,122,141,13,180,199,128,166,62,75,67,21,199,168,133,174,119,246,112,94,94,
+223,67,131,148,226,50,231,107,224,120,209,43,45,219,25,207,95,251,34,4,181,12,90,26,172,16,205,209,149,143,112,100,125,66,130,236,58,109,162,98,114,98,211,40,31,37,254,54,133,171,87,246,112,74,1,246,80,
+229,186,235,171,70,27,148,20,122,199,104,219,39,205,121,28,100,154,136,158,234,89,133,165,130,28,209,154,36,122,28,70,35,155,128,45,3,184,212,248,44,123,168,209,6,52,11,234,117,198,30,186,235,113,35,160,
+106,46,16,30,163,169,58,73,19,9,165,251,142,158,210,95,151,31,231,180,36,154,198,198,220,214,213,253,57,21,241,6,43,57,134,24,89,71,55,219,202,51,174,194,8,54,81,233,67,189,177,135,191,128,61,124,5,246,
+176,103,159,78,105,174,235,7,51,63,214,245,196,114,132,54,20,137,106,184,79,176,136,66,89,38,30,62,177,38,251,103,42,226,133,176,162,159,97,52,193,136,86,158,254,251,209,9,36,184,98,95,114,33,246,80,189,
+87,173,245,61,148,61,244,164,98,53,236,225,188,28,123,168,102,82,99,221,189,248,161,92,62,84,198,10,99,184,182,6,133,166,171,59,154,114,12,186,185,238,237,104,235,250,206,95,151,33,3,94,62,108,25,92,114,
+208,165,65,142,235,1,21,177,135,26,108,96,115,249,34,15,255,151,197,119,235,209,20,222,165,196,175,229,177,127,233,158,229,185,52,238,213,27,215,156,199,220,90,78,214,244,161,55,155,201,30,122,6,229,177,
+140,39,21,110,222,221,207,186,197,211,88,89,7,13,86,28,234,122,42,97,166,44,88,2,197,12,202,151,96,54,165,242,93,183,87,226,175,139,235,234,162,60,142,92,68,228,72,92,124,121,254,58,186,114,5,251,228,
+247,53,188,78,217,195,215,97,15,87,192,30,174,128,61,44,1,199,123,32,211,247,208,45,158,198,154,22,250,225,157,143,102,76,89,132,206,37,199,63,247,251,82,102,190,4,21,240,206,111,145,30,151,32,51,50,127,
+109,150,165,106,222,181,56,96,203,96,162,252,106,172,240,231,20,167,42,68,173,19,246,240,13,216,195,101,176,135,75,49,118,49,236,225,125,25,246,208,157,142,110,237,178,98,254,171,240,59,40,53,55,1,209,
+25,47,64,73,73,112,93,56,218,118,106,180,163,239,139,240,101,249,114,36,214,188,208,196,127,47,218,20,249,111,197,223,245,229,40,76,85,144,90,81,223,195,205,102,15,61,36,247,220,216,163,84,79,23,23,194,
+30,222,95,128,61,244,195,249,129,140,182,126,117,52,28,33,147,8,71,69,154,69,35,99,30,58,47,205,202,92,179,93,147,165,86,12,120,166,153,78,9,211,83,17,129,96,25,245,24,95,130,193,76,13,181,122,107,191,
+6,63,28,236,161,226,113,191,231,28,222,172,190,135,86,4,60,36,95,4,123,184,0,246,112,1,236,225,227,5,216,67,93,81,35,3,108,142,185,23,249,181,110,27,203,138,70,251,18,156,231,102,102,1,91,138,211,7,126,
+231,188,15,216,82,227,163,185,186,215,86,200,64,132,236,88,21,124,173,178,135,45,96,15,127,8,123,248,18,236,225,171,176,135,235,96,15,231,193,30,246,202,245,61,12,246,80,195,162,71,112,220,195,147,189,
+162,38,112,60,255,204,209,214,197,221,33,57,178,177,123,114,67,225,250,45,141,38,203,164,171,7,108,25,173,64,13,150,82,46,42,230,185,66,42,133,181,148,30,43,48,119,196,253,106,64,51,17,225,32,97,243,250,
+30,190,14,123,184,20,246,112,46,236,225,76,216,195,167,96,15,123,228,177,135,114,196,26,18,9,127,24,232,82,19,220,97,52,120,116,14,186,246,154,138,58,162,113,93,77,236,147,3,193,11,194,212,0,23,16,182,
+129,79,99,12,88,26,86,81,223,195,26,177,135,79,194,30,46,130,61,156,1,123,56,13,246,240,113,216,195,113,121,236,161,71,174,186,106,228,192,217,22,128,145,38,186,164,56,167,13,90,70,116,141,112,141,118,
+84,93,170,130,46,141,174,150,190,12,147,24,31,215,117,233,82,231,116,101,236,161,141,48,106,196,30,14,130,61,92,2,123,248,44,236,225,211,176,135,143,195,30,222,10,123,216,38,211,247,208,36,36,170,4,46,
+85,113,23,71,96,120,26,237,114,226,113,143,129,205,104,28,6,203,41,57,127,99,164,131,46,213,221,189,59,64,172,199,53,92,143,112,69,208,157,117,221,66,236,97,180,228,245,243,212,168,239,225,66,216,195,
+103,97,15,31,135,61,124,12,28,239,78,216,195,238,25,246,208,243,99,83,77,15,202,253,26,237,255,52,52,248,97,71,215,101,198,37,198,8,172,193,186,173,201,136,6,251,20,2,45,157,211,162,122,186,115,85,217,
+67,13,38,90,191,187,217,125,15,239,134,61,156,1,123,168,177,143,192,30,222,7,123,56,58,195,30,70,85,192,160,162,209,217,27,86,52,56,218,119,26,172,92,167,221,240,27,133,93,138,52,90,183,142,54,220,186,
+180,105,103,32,121,26,236,60,246,104,86,131,43,99,15,221,59,123,6,134,182,179,68,173,166,242,69,210,201,166,57,109,166,53,229,157,55,56,166,245,180,158,132,226,65,82,197,101,22,163,145,236,254,103,47,
+216,195,103,97,15,31,129,61,124,16,246,240,113,216,195,41,176,135,195,115,236,161,37,17,43,5,110,204,125,187,26,25,231,207,6,50,35,184,75,151,6,155,88,184,212,4,104,169,209,110,36,52,48,12,55,112,249,
+123,31,71,215,233,82,85,246,208,207,64,62,93,179,190,135,178,135,15,194,30,62,13,123,56,3,246,240,9,216,195,187,97,15,71,230,245,61,140,131,113,243,236,200,139,35,117,140,171,43,204,202,52,216,17,118,
+131,225,252,204,130,150,26,233,186,107,18,33,215,175,215,24,168,28,217,170,176,135,108,31,255,201,129,252,90,37,199,53,98,15,135,194,30,206,133,61,124,16,246,240,14,216,195,91,193,241,110,132,61,28,152,
+233,123,168,107,155,214,121,246,100,29,200,181,216,125,174,89,151,199,175,209,220,81,131,13,66,38,24,177,169,48,72,233,190,238,172,220,239,110,179,205,54,27,180,239,180,215,97,101,236,161,129,12,35,127,
+87,107,125,15,39,193,30,62,8,123,168,177,55,193,30,78,128,61,188,14,246,176,123,5,236,161,153,145,41,158,107,180,121,181,238,238,135,246,247,142,176,79,52,87,119,46,199,165,98,174,181,193,30,198,38,193,
+191,183,69,216,195,251,97,15,111,135,61,156,0,123,56,22,246,240,122,112,188,97,176,135,87,108,130,61,116,109,244,60,202,93,142,137,191,203,135,163,28,193,75,195,93,155,195,125,35,26,107,172,231,87,30,
+209,170,249,16,238,202,118,180,140,131,0,255,125,147,16,92,249,55,236,137,87,80,89,172,61,246,176,13,236,225,61,192,89,19,96,15,53,246,90,216,195,107,192,241,174,135,61,236,9,123,216,129,190,135,93,115,
+125,15,45,105,198,25,148,46,41,142,231,220,212,240,160,88,124,1,181,193,30,214,105,223,195,1,176,135,183,195,30,94,15,123,168,177,99,96,15,175,131,61,28,4,123,216,1,246,176,93,142,61,180,106,224,50,229,
+41,132,6,59,178,26,107,48,114,244,162,185,163,95,53,186,150,250,30,150,214,122,223,195,163,142,63,240,111,195,96,15,111,132,61,28,3,123,56,26,246,112,48,236,225,0,216,195,62,176,135,29,97,15,155,195,30,
+54,43,192,30,122,204,106,180,141,167,38,236,97,174,93,232,223,37,212,132,182,88,26,215,240,242,166,176,180,74,187,8,128,200,68,72,186,108,112,253,242,38,21,0,222,193,206,220,184,148,37,103,186,2,18,239,
+115,86,102,112,216,81,223,252,219,0,216,195,91,113,239,145,176,135,3,97,15,251,194,30,246,130,61,236,14,142,215,9,12,175,37,236,97,83,216,195,179,187,236,151,156,82,71,236,33,198,190,203,33,125,218,29,
+143,125,242,76,140,235,203,35,4,34,237,34,0,242,217,42,213,135,179,63,196,205,70,123,65,172,244,84,45,227,229,213,106,42,148,25,28,112,192,215,63,110,13,123,120,53,236,225,48,216,195,94,176,135,26,123,
+5,236,97,71,216,195,142,24,125,57,236,97,51,216,195,179,97,15,143,134,61,60,240,244,221,147,253,143,162,247,33,125,15,171,195,30,102,3,148,203,222,22,101,15,207,131,61,28,12,123,56,8,246,176,7,236,97,
+39,216,195,203,96,15,47,131,61,108,7,123,216,26,246,176,25,236,225,249,176,135,167,194,30,30,77,195,199,35,91,238,144,124,243,24,140,38,104,197,213,50,126,141,32,230,38,223,136,172,161,206,123,16,188,
+244,222,74,215,121,3,212,22,103,15,143,56,246,192,143,219,194,30,246,130,61,236,1,123,216,25,246,240,50,216,195,54,176,135,45,97,15,91,192,30,94,12,123,216,4,246,240,76,216,195,51,7,236,148,28,154,99,
+15,163,239,161,134,249,84,210,247,80,246,112,141,141,89,157,179,57,55,150,103,58,47,55,111,189,205,193,121,187,145,212,161,218,144,135,162,175,220,29,236,29,84,203,200,27,169,169,32,223,46,225,67,174,
+226,195,254,82,246,176,53,236,97,23,216,195,43,96,15,47,135,61,108,3,123,216,28,246,240,18,216,195,11,97,15,155,192,30,94,52,254,51,201,137,109,247,73,139,99,100,70,233,198,62,234,70,193,30,234,186,193,
+30,218,247,144,81,126,149,249,186,188,65,179,135,237,97,15,219,195,30,182,135,61,108,3,123,216,28,246,240,98,216,195,230,176,135,103,245,251,98,121,145,204,196,193,4,195,101,44,203,30,146,112,108,221,
+236,97,27,216,195,54,176,135,45,96,15,91,21,251,30,22,217,195,34,123,72,224,44,178,135,213,229,160,42,149,15,87,251,31,44,178,135,69,246,176,214,189,170,58,94,184,69,255,243,234,124,208,218,250,217,122,
+49,184,200,30,22,217,195,34,123,248,233,101,15,123,162,52,176,248,206,53,114,114,135,31,127,170,217,195,55,209,144,188,139,172,226,253,247,47,76,222,122,151,58,52,245,232,91,238,56,42,25,51,241,160,228,
+130,11,79,245,218,200,173,191,239,97,176,135,111,192,30,46,67,48,179,12,13,201,146,165,205,147,165,43,154,38,43,94,58,39,249,229,127,125,55,249,205,255,126,35,213,130,121,8,192,177,206,63,188,106,18,227,
+215,130,234,172,64,35,178,6,129,75,41,103,108,15,121,192,232,153,91,69,200,78,141,232,82,234,183,123,34,28,109,109,195,56,57,38,209,30,59,109,9,128,12,24,208,227,147,81,163,154,35,72,83,177,215,151,234,
+254,0,84,58,55,241,235,129,148,80,250,240,244,226,249,55,123,248,38,236,225,27,176,135,203,81,7,45,69,48,243,226,178,75,147,133,75,47,74,214,188,121,98,242,39,160,173,159,254,238,112,64,173,102,233,129,
+128,21,193,92,205,234,47,156,124,252,20,215,95,65,73,118,37,226,153,181,158,166,122,192,200,241,172,29,119,42,132,179,178,134,87,105,29,206,25,123,185,56,158,221,241,132,182,228,152,108,43,38,237,50,111,
+94,119,228,9,3,168,249,14,78,187,246,216,200,230,253,247,199,226,174,215,240,235,62,124,255,223,236,97,25,138,190,55,97,15,95,131,61,44,65,10,165,177,139,74,46,78,94,92,213,56,249,213,255,124,35,249,127,
+64,91,101,175,159,64,113,189,73,42,19,222,234,216,195,85,176,135,171,80,225,46,129,61,156,13,123,248,20,242,69,187,249,204,128,61,124,4,221,215,227,139,154,38,207,149,158,157,252,224,215,96,121,255,220,
+27,52,239,11,201,242,87,14,74,113,187,48,120,171,232,123,88,130,114,254,45,216,195,105,176,135,131,144,28,183,200,245,61,204,178,135,186,172,228,232,189,15,31,151,252,225,111,251,164,198,254,49,217,43,
+153,50,253,64,196,41,103,167,46,221,224,217,195,82,216,195,57,176,135,215,128,9,116,43,208,247,48,216,67,201,51,213,3,150,81,63,252,253,87,203,141,253,67,242,249,228,206,135,190,157,178,14,158,90,90,119,
+110,144,236,225,203,176,135,139,65,123,110,134,61,60,239,188,198,105,176,113,132,52,76,25,191,66,212,124,246,112,125,43,192,110,201,160,193,237,147,171,175,189,36,121,96,202,41,201,207,254,252,249,228,
+161,167,191,149,234,58,252,251,13,178,239,225,79,233,123,184,28,246,176,121,203,243,83,67,29,25,213,236,217,43,212,213,74,134,14,58,148,122,222,58,206,82,83,14,97,169,231,184,188,227,165,201,224,43,79,
+74,245,86,1,93,54,40,246,112,53,56,222,243,176,135,131,243,250,30,70,179,40,85,61,10,80,85,234,40,64,147,137,80,173,163,188,65,169,131,210,135,128,45,245,6,163,114,200,160,252,181,248,172,218,108,95,164,
+247,87,71,211,56,21,1,158,101,203,61,88,112,167,56,240,129,69,1,202,180,107,188,182,142,101,234,68,30,47,55,219,96,185,218,104,89,66,77,179,61,79,7,132,159,233,237,13,54,83,118,157,117,233,145,4,207,130,
+150,107,49,118,86,30,123,168,42,47,68,223,142,176,134,43,103,136,6,83,209,18,48,122,32,170,180,211,229,3,162,246,239,7,123,104,164,110,48,125,15,157,179,115,96,15,91,180,58,63,93,66,130,61,84,182,164,
+90,71,77,150,146,67,229,74,129,227,41,255,23,229,81,113,167,24,77,201,146,66,210,144,13,43,21,246,81,134,172,27,123,77,115,131,97,15,13,80,49,103,253,112,33,85,82,187,225,40,70,119,60,191,74,167,197,239,
+253,179,232,231,160,100,73,156,71,101,158,72,143,178,196,104,129,162,76,209,127,183,65,176,135,63,135,61,156,92,160,239,161,26,43,133,223,162,58,209,54,44,154,197,201,46,249,61,69,225,206,101,93,90,233,
+97,0,151,26,155,5,46,85,251,40,89,148,41,182,246,164,44,201,203,186,183,8,123,56,191,0,123,168,202,78,55,13,86,41,58,228,101,187,227,249,107,13,14,142,88,217,146,186,104,5,227,42,121,12,110,209,206,83,
+161,185,194,54,61,199,100,37,122,28,214,59,123,104,6,101,82,145,101,15,13,52,142,150,145,88,101,108,48,134,18,44,129,227,233,214,254,90,151,214,224,192,241,20,169,133,228,95,192,67,77,117,22,184,84,198,
+152,147,20,166,108,146,34,25,163,122,189,245,61,92,4,123,216,188,85,147,52,33,136,40,172,43,43,247,117,169,81,28,170,209,46,63,26,30,68,154,46,45,183,20,28,177,243,215,128,37,254,19,160,136,186,76,93,
+57,148,245,65,169,9,91,42,249,183,158,108,29,217,116,84,87,175,243,190,135,110,4,158,204,177,135,38,12,241,129,28,97,221,51,136,52,217,66,71,80,163,37,210,52,84,119,142,238,120,114,137,10,196,93,131,29,
+93,249,67,93,217,168,238,147,93,195,77,96,162,251,157,170,31,133,104,10,213,52,218,8,110,65,189,206,216,67,119,61,110,4,204,130,252,32,161,141,214,237,156,139,174,183,209,50,200,17,215,104,35,178,70,107,
+172,134,235,214,97,176,170,90,231,190,203,144,47,205,39,107,172,169,168,194,112,51,50,101,140,38,24,193,30,154,120,152,111,171,24,112,228,5,62,124,12,112,222,133,235,245,176,222,152,138,38,172,140,228,
+163,73,174,16,183,75,121,226,1,76,113,42,128,197,92,70,103,53,255,209,91,109,218,156,243,175,15,63,236,201,188,28,197,72,141,33,178,222,144,188,158,97,15,227,195,68,202,168,107,106,180,81,87,144,50,132,
+163,186,185,226,111,163,119,116,187,52,74,11,115,56,21,148,22,235,198,10,202,157,34,209,216,38,114,239,184,255,67,111,50,65,9,69,79,180,49,81,158,88,103,236,225,162,76,223,195,16,130,203,252,251,248,225,
+133,174,162,215,153,193,72,22,73,87,87,202,175,225,206,105,71,88,87,119,254,202,35,137,7,68,102,230,232,6,108,25,252,112,244,124,241,171,70,215,27,123,232,73,133,155,247,96,15,117,179,232,136,39,123,104,
+224,209,112,97,12,127,29,24,158,35,175,128,84,227,205,157,117,103,151,38,97,75,163,177,27,9,13,137,219,33,178,95,195,123,130,46,245,207,52,184,162,190,135,142,186,199,65,166,169,222,114,236,197,191,204,
+255,229,184,243,45,60,135,242,236,93,238,210,224,53,195,152,127,243,113,75,111,60,249,133,125,15,131,61,44,133,61,44,5,199,123,36,143,61,244,3,101,241,187,64,232,100,27,252,181,193,40,208,58,95,132,1,
+74,67,93,175,117,99,93,216,32,165,65,142,180,191,142,174,150,254,58,58,77,199,154,108,244,86,214,84,136,61,212,181,99,14,27,193,189,210,217,91,142,189,136,27,67,39,241,28,198,179,111,185,193,124,200,97,
+72,242,23,224,138,203,72,233,48,184,49,7,109,109,112,61,9,211,246,164,128,173,147,201,121,236,161,187,152,96,11,165,86,2,193,11,88,50,174,183,176,219,150,6,58,162,142,146,198,153,105,9,97,249,34,252,55,
+2,233,19,245,241,239,199,213,22,254,58,8,83,147,144,138,216,67,5,172,6,175,26,177,135,158,27,123,148,234,233,162,7,110,158,65,185,41,247,164,194,205,130,192,165,201,66,172,159,142,68,160,176,126,141,206,
+120,129,226,57,146,142,156,115,93,215,54,130,155,75,203,37,169,161,118,74,8,114,5,96,105,62,237,227,255,97,154,233,139,10,53,110,173,179,135,86,4,60,36,247,220,216,163,212,165,176,135,207,230,177,135,
+94,30,228,200,197,250,105,240,9,38,56,90,135,69,244,213,29,125,33,142,166,81,60,150,43,57,7,231,182,209,61,152,195,32,77,93,178,124,1,34,4,26,235,191,85,103,125,15,45,127,252,28,246,240,13,216,195,119,
+96,15,223,132,61,124,49,195,30,186,147,113,115,30,228,104,100,93,186,108,224,120,129,185,107,172,31,88,55,117,251,39,154,227,60,118,148,205,202,220,46,6,148,21,141,29,67,53,111,142,173,193,182,239,12,
+246,48,26,197,213,58,123,248,67,216,195,85,176,135,139,97,15,231,193,30,62,7,123,216,43,143,61,116,148,93,162,178,204,97,224,120,241,61,231,176,110,233,232,186,108,185,70,59,135,227,98,4,71,59,238,231,
+17,237,209,197,29,109,19,19,151,59,3,35,215,177,167,173,60,131,114,169,19,246,208,90,207,114,216,195,185,176,135,115,96,15,167,193,30,222,156,199,30,122,44,227,73,164,215,74,229,119,135,214,112,221,61,
+250,29,234,162,110,246,93,155,221,104,104,180,27,9,71,217,17,55,37,13,172,214,117,218,165,204,192,230,223,211,208,96,15,85,218,154,117,25,153,67,133,107,244,174,49,123,56,12,246,112,21,236,225,108,216,
+195,153,176,135,211,96,15,239,206,176,135,113,193,151,71,50,30,183,70,114,160,43,199,92,214,141,77,29,197,120,36,193,77,72,4,176,76,68,52,218,12,44,220,58,144,90,119,94,209,209,210,195,1,71,217,41,36,
+0,226,28,174,83,246,112,57,236,225,108,216,195,105,176,135,79,131,227,221,15,123,216,43,199,30,58,178,193,30,122,75,161,35,236,168,26,188,98,47,235,178,34,198,227,154,236,7,15,238,208,145,12,183,214,165,
+157,199,190,0,249,37,243,112,31,61,193,57,109,224,170,55,246,240,65,216,195,121,176,135,26,251,36,236,225,35,176,135,19,96,15,187,247,232,82,190,47,141,236,75,35,13,94,209,250,47,70,215,185,235,122,235,
+252,13,131,243,27,60,234,210,26,28,55,170,105,184,243,217,159,247,164,178,154,236,225,178,205,102,15,251,194,30,62,15,123,248,36,236,225,20,216,195,105,176,135,79,195,30,94,149,233,123,232,238,201,3,55,
+71,217,228,34,174,166,48,80,25,97,125,140,182,174,191,110,48,28,57,13,150,51,212,141,29,105,159,184,229,197,239,27,181,93,163,93,243,171,195,30,214,184,239,225,249,176,135,83,97,15,159,131,61,156,11,123,
+56,29,246,240,65,216,195,235,96,15,219,180,191,56,205,91,61,74,13,246,80,163,93,155,227,170,10,147,8,221,217,181,213,188,218,53,216,53,87,151,246,16,32,72,210,24,93,127,239,252,118,116,253,183,170,195,
+30,114,78,93,59,236,225,72,216,195,37,176,135,83,96,15,239,131,61,156,4,142,119,39,236,225,112,216,195,14,157,154,165,135,107,89,246,208,108,204,165,200,145,53,85,212,104,93,218,179,43,13,54,250,70,159,
+67,141,139,86,158,46,53,0,36,105,33,60,219,190,179,42,236,161,135,2,246,134,169,21,246,240,244,179,142,253,100,50,236,225,84,216,195,212,88,216,195,219,96,15,199,193,30,246,129,61,236,216,169,93,26,69,
+141,214,209,247,80,40,195,239,153,223,250,129,61,142,9,58,92,131,117,105,15,11,34,64,233,17,219,109,183,93,66,79,150,114,246,208,43,44,130,42,173,119,246,176,41,125,15,31,131,61,188,15,246,240,54,216,
+195,155,97,15,39,216,10,16,246,176,23,236,225,128,2,125,15,61,127,50,231,21,201,19,224,48,90,7,115,232,92,214,112,221,219,219,92,52,40,214,217,248,234,118,111,139,178,135,237,97,15,31,6,206,186,29,246,
+80,99,199,193,30,142,1,199,27,15,123,216,63,195,30,122,170,24,236,161,70,107,176,236,161,201,129,71,52,50,136,126,117,231,227,40,6,150,103,112,10,52,207,196,194,179,44,221,91,242,69,134,56,96,75,247,196,
+217,190,135,117,202,30,14,133,61,188,15,246,112,2,236,161,198,222,4,123,56,30,246,112,4,236,97,23,216,195,203,96,15,187,117,239,146,222,88,232,92,214,96,63,112,156,84,100,251,29,6,131,168,209,13,150,61,
+60,26,246,240,42,216,195,187,96,15,111,134,61,156,8,123,56,18,246,112,56,236,225,32,216,195,174,176,135,109,97,15,91,192,30,118,200,245,61,212,93,163,239,97,109,177,135,158,84,18,164,234,135,61,252,62,
+236,225,80,216,67,209,218,235,97,15,135,195,30,14,129,61,28,8,123,216,15,28,175,135,45,0,97,15,91,192,30,54,129,61,60,253,252,195,146,147,79,89,127,247,187,59,28,31,95,128,115,52,78,27,13,110,186,190,
+30,160,171,251,228,243,194,122,137,110,159,227,157,52,182,126,217,195,182,176,135,99,96,15,71,193,30,14,132,61,212,216,222,176,135,221,97,15,187,99,116,55,216,195,214,215,126,62,185,96,224,238,201,9,173,
+118,75,190,119,198,238,201,55,97,15,247,135,61,252,74,53,251,30,198,61,29,91,156,61,60,31,246,112,36,236,225,85,176,135,253,97,15,123,192,30,118,133,61,236,10,123,216,25,246,240,114,216,195,54,163,247,
+74,46,25,190,103,114,118,183,61,146,19,96,15,143,133,61,252,246,214,220,247,240,72,216,195,203,96,15,7,194,30,14,128,61,236,5,123,216,13,246,240,114,216,195,14,176,135,237,97,15,91,194,30,94,114,229,23,
+146,115,97,15,207,161,239,225,247,207,222,35,237,123,88,77,246,240,87,13,170,239,225,105,176,135,29,96,15,123,194,30,246,133,61,236,14,123,216,9,246,176,61,236,97,107,216,195,230,176,135,23,195,30,182,
+160,239,225,41,185,190,135,155,98,15,205,209,237,123,40,123,72,242,242,74,131,103,15,59,194,30,118,129,61,236,10,123,216,25,246,176,3,236,97,27,216,195,182,247,236,144,156,151,215,247,48,159,61,116,51,
+178,85,179,135,45,233,123,216,14,246,176,3,236,97,91,216,195,182,69,246,176,200,30,22,217,195,34,123,72,47,213,234,242,76,213,254,11,149,253,7,42,223,120,108,253,103,79,81,213,234,94,47,33,21,42,159,239,
+117,169,86,241,44,108,29,158,121,252,189,223,63,152,199,251,55,190,197,227,253,87,251,228,212,116,118,157,173,180,15,75,101,159,45,109,65,90,149,31,218,220,159,201,24,95,236,123,184,185,47,177,166,127,
+175,78,71,184,166,31,174,46,254,126,189,24,92,100,15,139,236,97,145,61,44,178,135,159,138,190,135,89,246,240,93,216,195,217,212,163,175,164,68,123,252,241,199,162,178,59,237,211,203,30,46,133,61,92,14,
+123,184,138,226,251,75,212,163,223,250,241,249,201,211,179,206,72,38,61,112,48,180,203,161,84,51,142,253,143,79,13,123,184,12,193,76,9,56,222,98,216,195,133,40,13,22,44,109,146,188,250,30,87,180,175,61,
+41,249,227,71,95,74,74,95,62,32,173,246,83,194,249,120,171,102,15,95,135,61,92,142,20,74,99,95,132,61,92,132,134,100,62,178,138,165,107,46,73,214,190,117,110,242,211,223,124,35,249,4,104,107,226,173,39,
+166,133,53,171,147,214,173,26,124,223,67,37,199,171,81,225,46,133,61,124,30,246,240,105,228,139,118,243,121,14,246,240,49,116,95,79,193,30,206,40,57,47,153,131,96,102,38,26,146,210,215,90,36,191,250,195,
+1,169,177,191,255,243,158,201,224,97,167,164,181,103,65,18,207,184,44,191,96,244,95,56,183,94,227,29,125,94,91,199,249,246,60,110,59,236,155,187,239,107,131,75,255,170,117,39,158,141,89,17,130,158,45,
+66,43,85,106,147,71,180,26,107,108,5,120,251,237,237,209,90,141,163,2,120,101,138,246,172,89,99,31,181,161,60,131,209,112,12,72,150,161,156,127,27,246,112,6,236,225,224,74,216,195,86,109,155,38,125,80,
+7,61,56,235,244,228,205,15,143,76,254,242,207,207,39,127,73,62,151,252,248,215,28,230,183,58,101,3,44,175,193,245,61,44,195,216,185,176,135,163,170,193,30,134,78,100,214,243,199,37,255,253,151,47,166,
+198,254,57,217,13,215,222,55,57,227,204,245,6,59,186,13,170,239,161,28,211,18,208,158,91,243,216,67,37,138,161,121,46,204,30,118,79,5,110,3,7,94,154,188,249,131,111,36,127,252,120,207,212,216,63,37,187,
+38,143,60,245,205,228,212,211,78,76,13,86,43,237,99,85,82,23,247,123,206,107,206,169,63,66,180,182,10,249,212,74,175,173,227,194,252,59,114,251,236,157,249,186,77,149,92,26,215,221,158,231,2,251,11,163,
+98,95,42,9,46,28,221,181,107,99,92,120,32,46,188,190,201,99,180,2,148,61,92,145,199,30,170,10,200,170,219,53,58,110,21,15,57,176,170,122,47,213,215,224,232,123,216,166,77,171,228,166,219,78,72,254,243,
+163,93,192,108,191,147,26,167,60,170,193,244,61,148,61,156,87,128,61,212,40,37,76,217,43,212,85,234,40,18,87,17,175,84,73,61,135,106,29,239,154,214,93,67,228,182,190,141,231,249,201,229,157,79,77,165,
+20,122,73,131,97,15,231,228,177,135,42,104,67,53,171,54,90,142,65,195,213,122,100,91,2,106,184,66,22,149,59,138,75,85,228,170,251,82,54,33,108,169,20,234,220,115,207,73,191,166,212,41,245,102,93,216,199,
+72,237,193,125,220,103,157,131,61,62,162,108,147,186,54,191,95,75,19,140,145,184,244,254,60,159,217,228,29,0,188,245,47,32,27,122,12,186,44,109,147,77,84,252,213,196,137,29,16,142,141,65,121,51,42,141,
+198,47,189,52,44,113,206,206,221,4,123,168,142,50,8,53,13,19,242,144,108,17,1,240,251,98,0,142,120,72,148,148,62,232,222,26,167,244,201,158,166,193,30,74,176,108,241,190,135,6,168,124,246,80,97,154,122,
+13,165,132,193,31,70,235,48,65,173,108,15,68,127,198,151,162,130,39,20,119,122,132,55,254,171,155,86,48,174,43,55,8,246,240,23,176,135,15,231,177,135,186,177,31,54,154,197,105,176,163,154,223,29,79,183,
+246,207,212,88,58,194,1,108,5,112,169,30,83,93,151,250,76,21,124,142,236,22,101,15,77,42,22,228,177,135,106,43,101,27,212,92,233,162,6,36,65,14,31,113,188,32,76,99,148,253,190,90,105,95,142,56,143,106,
+30,71,87,99,213,115,137,246,104,176,210,69,149,184,6,46,233,52,43,255,245,206,30,154,65,153,84,24,53,7,14,28,88,190,244,168,163,140,70,113,129,227,57,138,142,166,110,29,93,46,253,181,223,51,82,251,114,
+116,103,21,182,10,79,165,97,28,213,96,37,84,208,27,244,92,206,148,73,120,165,171,255,111,189,178,135,139,97,15,91,100,216,195,104,81,226,135,11,56,75,129,168,115,83,253,164,35,25,163,172,209,186,184,174,
+238,203,240,5,25,172,130,63,212,75,100,27,28,213,104,231,169,177,78,23,71,89,205,87,244,61,172,55,246,240,233,76,223,195,96,15,77,48,92,86,2,204,10,149,157,70,43,11,86,4,30,13,226,2,184,52,104,233,206,
+142,174,115,95,213,187,75,151,146,197,224,153,162,185,141,25,154,133,115,13,86,6,229,175,165,75,93,142,234,180,239,161,187,30,55,2,230,181,166,121,26,172,114,214,57,39,163,160,218,93,133,157,143,138,246,
+232,138,167,209,174,187,17,185,29,97,215,95,217,7,245,151,142,172,115,54,184,37,99,130,107,183,130,115,179,49,33,105,229,139,170,124,124,20,182,69,155,146,58,101,15,223,132,61,236,149,235,123,232,91,247,
+3,25,100,162,231,153,75,146,115,57,218,147,4,131,104,54,229,188,214,189,93,135,53,216,232,28,109,133,124,97,193,52,5,169,102,134,22,124,163,221,247,156,195,234,65,212,133,168,232,81,238,20,212,105,16,
+166,33,135,66,157,255,119,148,127,175,19,224,214,241,85,216,178,87,174,182,181,123,249,65,60,26,200,182,140,200,92,158,82,254,131,247,123,247,62,135,121,40,145,246,239,190,135,139,243,216,67,71,88,30,
+193,53,83,213,186,198,139,229,249,85,55,85,87,41,168,97,234,168,28,216,145,214,88,71,90,61,180,164,154,154,106,133,165,17,11,162,125,145,198,58,186,34,127,62,254,222,124,186,94,217,67,55,239,89,246,208,
+15,161,52,216,17,146,105,80,60,42,88,21,164,153,243,210,200,171,7,56,234,129,239,184,44,233,242,210,108,161,162,15,206,176,34,186,52,190,191,169,190,135,181,206,30,62,154,199,30,186,3,138,38,113,129,207,
+41,14,143,101,197,209,211,40,127,175,118,218,185,42,183,100,48,243,207,12,118,226,2,142,106,244,102,10,254,41,2,150,127,22,244,169,223,115,132,235,141,61,124,36,143,61,180,131,86,48,251,186,165,107,102,
+80,106,241,53,54,19,113,237,133,31,218,151,163,209,142,190,47,194,151,148,207,24,198,5,40,209,181,54,174,181,169,55,246,208,3,55,207,160,178,236,97,52,136,203,246,22,13,124,39,176,60,63,104,252,218,63,
+211,48,231,180,110,109,226,97,100,55,233,48,6,56,21,162,195,165,203,156,143,217,86,36,32,254,125,9,53,71,184,78,217,67,143,82,87,192,30,206,200,99,15,221,209,196,72,20,226,127,227,242,33,71,201,40,236,
+135,23,246,80,254,31,237,181,3,204,50,249,48,208,5,108,169,225,78,7,31,255,94,220,252,80,25,123,104,222,109,38,70,26,250,158,39,32,168,110,151,19,161,109,214,170,226,224,203,229,81,26,183,58,157,249,181,
+128,204,103,45,123,207,119,130,61,124,11,246,240,61,216,195,119,97,15,75,96,15,123,231,250,30,42,239,247,31,246,113,157,116,174,5,122,23,128,165,107,169,65,73,119,215,245,157,195,142,168,178,127,13,118,
+139,232,142,201,253,176,1,77,252,206,224,230,60,207,130,150,26,109,6,102,144,84,64,174,190,186,78,250,30,190,15,123,184,22,246,176,4,246,208,115,99,143,82,61,93,116,131,238,37,4,30,227,152,226,185,135,
+117,233,8,230,48,220,56,50,48,3,148,137,133,204,131,217,152,235,178,169,165,155,140,200,169,29,233,232,115,24,237,60,253,249,0,178,221,27,219,224,66,119,118,61,174,19,246,208,90,143,229,15,43,2,30,146,
+123,110,124,107,142,61,212,72,31,143,101,60,115,10,238,48,48,60,221,57,58,106,185,100,185,62,155,85,57,127,13,88,38,34,26,171,225,174,207,238,180,76,73,253,115,183,138,174,223,49,218,102,83,2,32,117,222,
+247,208,194,150,181,158,185,176,135,115,96,15,103,194,30,222,11,123,216,54,211,247,80,102,201,185,28,61,74,3,175,205,246,75,51,18,187,22,71,115,56,13,54,96,105,108,184,181,191,215,181,221,128,184,70,155,
+165,57,175,13,104,206,219,160,93,116,233,77,177,135,126,158,26,245,61,92,5,123,56,23,246,240,57,216,195,233,224,120,15,194,30,246,201,244,61,212,189,125,98,77,141,251,56,2,195,51,25,113,116,205,186,178,
+220,97,108,33,117,107,231,177,199,64,166,155,186,182,160,165,70,187,177,112,148,109,165,29,236,161,132,184,103,89,70,233,80,206,251,85,106,198,20,179,198,125,15,31,134,61,92,8,123,56,13,99,159,129,61,
+156,2,123,120,99,1,246,80,215,54,56,69,119,90,3,77,92,21,229,145,77,96,120,186,173,81,218,173,99,126,131,71,13,118,148,77,59,157,207,110,66,52,216,99,158,232,163,166,34,222,226,154,243,56,139,10,72,201,
+100,250,30,110,62,123,216,31,246,112,1,236,225,51,176,135,79,192,30,206,132,61,156,14,123,120,77,1,246,208,32,22,153,150,41,166,105,167,203,140,57,179,28,176,163,230,134,63,110,113,9,163,53,220,221,147,
+174,238,94,218,63,215,181,157,2,158,98,214,43,123,120,1,236,225,147,176,135,207,195,30,46,132,61,124,14,246,240,17,216,195,27,10,176,135,190,97,3,153,198,234,202,206,93,179,41,221,217,229,72,131,5,40,
+29,73,131,84,52,119,212,189,3,199,243,172,218,109,165,193,203,99,219,45,194,30,94,13,123,184,28,246,240,73,216,195,135,96,15,239,3,199,155,4,123,56,2,246,240,178,2,236,161,7,233,46,83,186,158,123,103,
+183,140,110,5,163,215,161,35,152,5,45,117,97,127,38,140,245,124,107,51,217,195,218,233,123,120,6,236,225,99,176,135,79,195,30,166,198,194,30,222,9,123,120,35,236,97,255,10,216,67,119,46,242,134,30,201,
+152,156,24,176,124,60,229,112,4,157,171,26,237,200,250,179,50,254,54,82,246,78,129,152,175,91,148,61,188,24,246,240,9,216,195,135,96,15,239,130,61,188,13,246,240,102,91,1,194,30,246,41,192,30,10,82,121,
+202,104,52,117,163,174,139,199,5,69,46,57,49,159,13,102,94,102,16,23,26,68,52,22,189,219,28,246,16,207,168,189,190,135,151,193,30,78,1,206,186,11,246,80,99,111,132,61,28,47,142,7,123,56,16,246,240,178,
+76,223,67,215,202,104,26,101,4,21,186,114,233,48,186,6,123,232,247,108,1,152,189,208,64,67,253,123,85,101,15,141,218,36,38,127,226,223,93,99,243,41,126,189,146,194,248,96,242,230,104,22,183,55,191,46,
+47,146,87,40,61,228,28,248,107,4,161,113,94,94,237,125,206,140,214,154,67,15,61,228,147,225,176,135,147,97,15,111,130,61,212,216,91,97,15,111,132,61,188,6,246,176,27,236,97,199,60,246,208,81,18,180,12,
+227,42,98,15,253,190,47,196,23,229,58,171,87,56,37,220,255,250,119,253,115,159,0,45,125,137,30,233,240,114,254,198,175,223,176,173,24,233,102,89,173,247,61,148,61,28,5,123,120,47,236,225,109,176,135,183,
+192,30,142,130,61,28,9,123,56,12,246,176,39,236,97,251,28,123,120,89,142,61,244,195,215,38,123,168,177,185,235,226,196,241,222,169,243,190,135,178,135,195,97,15,31,192,189,199,194,30,94,5,123,56,28,246,
+112,8,236,225,64,113,60,91,0,194,30,182,130,61,60,63,199,30,158,84,203,236,97,14,180,172,95,246,176,61,236,225,4,216,195,235,97,15,135,192,30,106,108,63,216,195,222,176,135,189,48,186,39,236,97,91,250,
+30,94,4,123,120,50,125,15,15,163,239,225,183,97,15,15,128,61,252,106,53,216,195,10,250,30,190,99,147,71,138,233,63,192,229,231,49,79,237,142,119,38,207,17,185,50,169,138,252,141,174,81,175,84,62,204,95,
+218,214,59,216,137,158,3,85,203,112,10,241,54,235,108,169,50,3,14,212,254,112,1,236,225,40,216,195,107,97,15,135,192,30,246,129,61,236,9,123,216,19,246,176,27,236,97,23,216,195,14,176,135,205,97,15,207,
+129,61,60,17,246,240,4,216,195,239,108,6,123,104,32,107,16,125,15,101,15,59,193,30,14,133,61,28,12,123,216,23,246,176,23,236,97,23,216,195,78,176,135,151,195,30,182,133,61,188,148,190,135,23,192,30,158,
+15,123,120,100,53,251,30,18,160,254,202,126,184,97,245,61,148,61,188,28,246,176,15,236,225,64,216,195,62,176,135,93,97,15,47,135,61,108,7,123,216,26,246,176,5,236,97,107,216,195,211,51,236,161,203,80,
+161,190,135,89,246,112,171,232,123,216,25,246,176,59,236,97,79,216,195,238,176,135,157,97,15,47,131,61,236,8,123,120,65,245,217,195,21,36,21,165,174,179,185,165,199,46,180,174,181,206,217,111,242,216,
+209,82,250,101,219,77,161,3,149,206,225,141,100,63,235,49,157,93,61,20,219,126,251,237,123,120,121,181,154,10,84,56,171,73,33,87,243,235,23,73,44,150,240,188,237,189,26,184,226,71,222,51,41,123,216,1,
+246,240,50,216,195,246,176,135,237,138,236,97,145,61,44,178,135,76,163,98,223,195,234,178,77,213,14,90,149,253,7,25,252,174,200,30,242,50,246,228,113,187,182,111,90,246,248,247,243,37,126,45,88,41,156,
+185,7,143,47,75,113,232,246,149,45,51,149,13,64,149,196,165,213,253,71,182,166,159,175,117,151,110,232,198,215,139,193,69,246,176,200,30,22,217,195,34,123,248,169,100,15,231,80,143,30,241,127,133,61,92,
+1,123,184,150,226,251,235,212,163,223,135,61,156,9,123,56,152,66,222,133,212,182,62,85,125,15,21,204,44,3,199,91,10,123,184,4,165,193,82,216,195,119,96,15,151,175,62,37,41,161,106,57,147,66,222,149,215,
+30,153,116,232,248,253,191,125,42,216,67,141,45,129,61,92,138,134,228,69,100,21,43,97,15,87,173,187,52,153,67,61,122,54,37,218,231,75,142,74,86,191,243,237,148,82,27,114,229,119,45,122,255,151,69,1,196,
+173,165,84,39,223,162,88,240,188,7,140,156,130,236,111,42,90,89,226,83,105,226,65,133,126,87,59,90,218,228,241,163,143,62,122,85,28,143,58,209,42,170,131,159,244,232,209,132,58,110,255,180,211,86,105,
+233,16,244,148,67,40,150,13,193,53,7,33,92,25,1,251,48,54,89,13,123,184,22,21,238,114,216,195,249,176,135,211,144,47,206,69,81,63,7,246,240,113,116,95,211,96,15,231,192,30,46,66,48,51,31,13,201,75,175,
+181,74,94,88,222,56,153,69,241,125,58,245,232,146,117,7,37,127,250,219,238,201,127,253,101,215,180,162,168,152,5,163,63,110,112,236,225,114,148,243,239,193,30,206,134,61,28,138,228,184,229,38,250,30,182,
+134,61,236,135,58,232,190,103,207,78,102,163,24,154,130,172,98,218,130,99,147,151,222,249,86,242,187,255,221,51,249,56,249,108,242,212,115,223,74,206,165,219,158,242,7,233,52,140,254,132,58,212,26,142,
+140,151,123,116,76,57,103,22,35,220,33,183,65,169,176,173,231,38,71,24,17,247,193,136,187,111,177,87,169,237,59,29,89,65,203,123,239,109,207,168,14,162,90,63,134,81,188,189,156,80,115,100,87,202,68,192,
+30,94,7,38,208,189,138,125,15,131,61,84,10,213,163,119,135,100,200,168,147,147,5,43,191,157,252,229,31,187,165,198,254,246,79,187,128,29,124,47,45,182,91,36,215,96,197,225,104,167,63,225,46,91,141,46,
+165,89,206,58,202,171,83,115,135,241,158,185,21,60,204,171,208,96,100,8,251,34,54,25,1,163,176,192,198,172,246,42,213,141,39,76,104,153,26,91,86,182,30,199,251,201,79,110,225,153,136,24,101,80,178,12,
+180,231,246,2,125,15,149,253,42,107,82,140,42,129,166,70,211,239,137,233,168,0,10,20,47,154,63,46,122,241,160,228,191,254,180,71,106,236,71,201,103,232,86,251,153,244,134,227,184,229,120,139,179,135,31,
+194,30,174,130,61,108,145,233,123,168,222,67,69,158,234,30,197,222,89,99,67,57,235,75,208,240,44,123,216,161,67,243,100,197,170,111,38,127,250,251,46,169,177,127,74,118,76,158,152,254,29,70,183,89,90,
+66,21,178,140,86,128,138,93,28,105,43,32,8,199,237,64,178,150,159,89,237,105,42,35,236,30,123,199,42,237,135,209,92,124,153,17,126,128,209,93,140,200,100,145,45,119,237,66,107,128,90,179,102,232,70,173,
+0,23,193,30,14,201,235,123,168,94,75,113,90,200,152,162,217,140,74,31,5,226,74,15,67,148,166,208,69,49,140,47,201,81,92,239,226,23,39,37,171,191,148,252,230,79,159,73,238,186,255,184,114,109,214,22,237,
+123,248,18,160,229,124,216,195,115,207,61,43,21,142,171,191,84,144,22,236,161,194,20,133,103,42,103,5,56,212,110,9,119,200,49,169,140,183,15,147,127,174,236,65,145,139,82,165,96,15,133,56,206,63,159,206,
+3,115,191,154,118,239,242,247,214,141,183,24,123,232,156,93,0,123,216,50,175,239,161,35,42,2,160,178,78,67,163,155,150,172,131,134,218,74,204,95,251,125,71,90,201,82,116,186,84,6,225,173,225,74,148,125,
+129,193,254,159,215,100,189,190,211,160,229,247,4,45,117,111,171,255,42,135,162,49,51,5,245,95,146,149,45,182,40,64,59,4,43,138,39,228,71,237,141,130,22,10,155,102,184,218,34,92,174,4,157,85,89,143,30,
+237,255,101,231,232,215,95,191,26,109,228,29,8,66,111,66,56,54,60,13,80,49,103,163,239,161,163,171,32,52,84,118,146,44,26,38,171,36,160,37,153,166,193,242,75,126,63,92,58,8,83,25,38,255,190,218,77,69,
+171,46,65,193,30,58,202,254,63,126,223,145,214,232,184,23,32,70,30,99,255,142,161,101,86,64,248,245,26,132,50,74,31,236,62,189,115,204,229,141,12,70,250,55,9,87,91,132,225,11,9,52,255,49,116,232,133,105,
+155,108,59,71,155,84,188,247,222,232,228,87,176,135,143,229,216,67,65,231,104,234,166,8,77,165,172,46,170,156,208,17,214,109,179,56,94,24,236,75,8,224,82,185,146,243,88,165,173,122,46,133,108,106,51,85,
+210,26,197,115,215,90,164,80,117,189,247,61,148,61,92,156,199,30,134,56,220,121,170,36,73,57,146,163,236,252,44,132,227,105,116,180,10,212,165,213,109,233,206,161,151,142,174,60,138,196,85,255,24,200,
+182,24,123,104,6,101,82,17,125,15,3,123,119,148,165,202,28,41,141,86,66,232,200,41,13,118,148,131,37,142,118,128,126,47,180,210,6,43,133,107,74,152,84,204,43,14,87,171,169,198,90,44,79,94,66,141,200,22,
+97,15,151,230,177,135,1,95,24,172,148,24,170,193,146,81,82,17,171,194,78,149,172,35,109,128,138,166,143,26,111,231,75,93,58,218,121,170,197,116,100,53,214,145,13,50,70,88,196,165,76,66,92,221,180,100,
+154,17,187,94,216,67,55,2,211,51,236,97,72,134,99,206,101,113,60,231,163,2,81,21,119,65,165,69,0,139,14,151,70,103,95,142,174,236,191,161,204,88,125,166,112,135,146,255,108,131,42,147,20,139,230,146,105,
+94,204,29,236,97,157,246,61,116,215,227,70,32,216,67,37,255,1,110,56,50,142,144,56,158,31,94,213,93,104,43,53,90,215,54,217,112,253,213,96,93,90,109,180,47,70,17,184,144,180,198,170,162,119,68,53,54,203,
+32,154,173,169,234,83,243,165,209,209,247,208,151,80,103,125,15,223,41,192,30,58,207,12,44,226,120,70,85,35,181,35,165,241,209,226,64,5,173,129,73,247,142,102,143,10,195,237,202,147,133,45,53,54,56,165,
+44,89,106,90,234,28,86,184,166,193,126,13,246,80,55,175,179,190,135,75,51,236,161,132,137,111,61,122,154,57,239,252,117,96,121,142,88,24,110,48,82,221,174,209,46,85,174,201,26,239,247,124,65,178,76,6,
+188,232,228,19,216,157,236,97,116,182,12,5,188,178,69,113,188,224,150,28,109,231,117,52,114,117,191,204,38,228,95,4,184,247,88,207,87,161,64,88,193,58,44,198,227,37,162,123,150,175,195,172,123,189,9,32,
+243,24,141,229,236,98,62,28,49,226,28,150,23,59,226,117,33,242,118,230,185,60,221,188,231,179,135,126,216,232,21,172,43,58,255,34,224,24,105,131,73,212,229,149,5,107,180,60,177,1,77,143,208,80,3,94,96,
+64,193,36,103,141,117,135,229,250,171,50,87,99,213,103,58,178,74,15,29,109,141,142,23,80,171,125,15,167,22,96,15,53,46,186,225,69,143,165,232,93,168,139,250,2,162,171,86,96,1,74,136,29,89,231,104,112,
+133,209,236,49,11,91,106,180,198,6,93,170,71,213,43,123,56,37,143,61,148,235,213,160,216,238,133,1,89,244,46,24,38,127,38,118,80,186,187,70,203,68,184,206,198,26,30,255,142,243,55,128,233,104,237,25,152,
+109,189,178,135,158,65,5,123,40,33,174,152,155,14,176,229,236,111,182,51,94,246,215,26,106,212,213,3,12,110,70,103,35,182,192,71,246,26,11,151,34,189,34,126,54,214,120,255,126,180,39,171,87,246,112,78,
+134,61,52,199,245,138,9,231,150,191,206,98,120,49,170,142,146,243,51,184,67,161,15,115,101,119,82,38,34,174,195,70,112,97,14,241,187,96,145,157,38,206,237,184,15,32,203,24,111,138,61,52,19,51,104,121,
+160,80,35,246,240,135,176,135,63,132,61,44,203,176,135,26,155,101,15,243,49,60,95,128,35,165,203,155,99,187,198,186,70,155,70,154,136,184,14,187,54,155,126,250,61,95,68,92,126,224,207,70,107,80,93,62,
+2,155,187,167,202,216,67,19,17,178,176,127,98,252,235,108,54,94,34,160,25,165,69,226,189,210,249,75,229,81,154,183,248,85,24,193,133,100,71,47,51,98,235,56,55,250,68,246,240,37,216,195,21,156,36,122,110,
+236,81,170,167,139,238,77,61,157,112,247,226,215,184,46,42,174,160,240,247,142,138,73,137,203,148,143,35,104,70,101,202,233,78,202,180,210,104,173,209,186,184,135,5,26,237,75,113,57,211,245,29,113,95,
+150,70,235,37,138,205,55,197,30,202,38,154,132,112,5,198,95,73,72,86,177,157,124,149,23,84,138,161,23,242,120,127,245,62,27,108,15,113,191,89,236,73,215,16,13,75,217,107,126,108,173,199,242,135,21,1,15,
+201,61,55,190,43,175,239,161,27,118,131,77,164,153,70,100,221,56,122,29,26,152,92,146,162,155,86,164,154,38,30,97,176,219,73,95,132,121,184,107,182,153,151,251,226,104,227,25,145,190,42,236,97,147,38,
+77,220,43,127,140,193,37,28,24,172,227,124,107,41,134,158,200,227,101,221,123,109,96,48,35,116,15,31,172,132,181,117,57,127,241,143,22,182,172,245,44,134,61,92,4,123,56,15,246,112,50,236,97,187,12,123,
+40,250,230,65,92,4,27,141,13,12,47,250,165,233,170,206,83,93,215,163,28,221,216,157,146,155,10,13,119,78,71,219,63,105,52,127,54,118,78,254,187,182,21,11,246,48,80,90,231,170,104,64,208,105,209,203,165,
+198,236,225,171,176,135,47,194,30,206,135,61,124,158,242,135,135,228,253,242,216,67,111,81,113,190,250,225,124,156,127,166,155,62,110,247,28,93,183,127,70,101,221,55,246,202,113,0,16,220,161,27,9,131,
+88,128,150,186,183,81,121,155,109,182,169,191,190,135,143,195,30,46,131,61,180,214,99,249,227,25,216,195,219,10,176,135,186,182,203,74,36,23,142,174,115,209,15,29,84,154,110,171,193,110,250,157,187,249,
+13,30,205,190,124,41,113,24,96,46,238,133,37,187,236,178,75,185,193,149,177,135,30,227,242,119,74,54,187,239,161,37,75,171,120,22,182,172,245,204,131,61,156,3,123,120,93,1,246,208,202,65,116,177,52,232,
+184,129,112,116,205,153,221,42,250,120,48,224,25,86,24,157,109,240,232,241,80,244,59,20,234,210,224,32,212,228,153,76,45,5,70,92,126,156,207,166,152,186,181,217,151,155,10,127,150,192,246,91,54,22,139,
+207,62,251,236,21,188,168,233,185,131,188,245,1,75,221,87,254,65,53,75,77,43,150,129,101,224,235,171,9,92,107,173,207,90,178,124,1,246,112,41,236,225,124,216,195,39,97,15,39,192,30,182,205,235,123,232,
+150,205,141,185,55,156,241,31,166,153,148,115,81,23,245,113,244,226,36,68,183,142,6,143,6,173,120,252,153,88,166,60,178,221,34,236,225,117,176,135,107,97,15,167,195,30,78,133,61,124,4,28,239,33,216,195,
+81,5,216,195,184,167,206,51,40,221,207,67,1,247,197,26,172,59,27,156,2,152,118,238,70,163,71,71,221,128,230,17,145,211,192,114,74,180,239,172,70,223,195,218,99,15,159,129,61,156,5,123,152,26,11,123,120,
+63,236,225,237,176,135,67,242,216,67,163,167,134,6,123,104,132,118,151,164,33,113,236,19,204,161,17,217,29,143,112,86,160,240,174,225,193,30,198,174,72,55,174,247,190,135,205,96,15,103,194,30,62,14,123,
+120,63,236,225,61,176,135,119,217,10,16,246,112,32,236,225,192,92,223,67,221,48,78,24,61,141,112,110,89,58,49,90,59,210,193,28,26,145,221,210,113,59,97,218,57,58,118,65,213,97,15,253,59,246,28,246,37,
+147,81,253,134,61,241,10,42,139,181,199,30,118,132,61,156,6,156,245,32,236,161,198,222,1,123,120,43,56,222,157,176,135,195,51,236,161,41,167,1,196,32,227,94,85,146,44,216,35,55,240,209,73,203,53,213,220,
+56,140,244,171,237,178,27,20,123,120,53,236,225,19,176,135,119,193,30,106,236,36,216,195,59,96,15,199,192,30,246,129,61,236,146,99,15,141,216,30,180,121,224,86,17,123,24,134,138,209,154,64,200,26,214,
+128,61,44,171,19,246,240,24,216,195,177,176,135,143,192,30,222,11,123,120,55,236,225,88,216,195,235,97,15,175,129,61,236,15,123,216,25,246,176,77,215,99,146,203,59,181,78,175,118,171,237,190,135,245,206,
+30,30,14,123,120,53,236,225,84,220,251,102,216,195,209,176,135,163,96,15,175,130,61,188,18,28,111,16,24,94,87,216,195,14,176,135,23,195,30,158,73,223,195,147,78,62,46,13,100,181,213,247,112,139,176,135,
+151,195,30,222,1,123,120,35,236,225,85,176,135,26,59,20,246,112,16,236,225,64,140,30,0,123,216,153,190,135,45,96,15,79,135,61,60,2,246,240,187,176,135,223,130,61,220,175,26,236,161,121,114,52,69,207,244,
+61,220,50,236,97,83,216,195,113,176,135,227,97,15,175,130,61,28,12,123,216,31,246,112,0,236,97,95,216,195,158,176,135,93,174,223,139,62,105,123,38,23,116,221,35,57,173,197,174,201,73,45,118,72,14,220,
+12,246,208,53,190,65,176,135,71,193,30,118,133,61,188,26,246,240,106,216,195,161,176,135,3,97,15,123,193,30,246,128,61,236,6,123,216,9,246,176,45,236,225,37,176,135,23,193,30,30,253,105,96,15,207,128,
+61,236,12,123,56,24,246,112,36,236,225,80,216,195,190,176,135,221,96,15,59,195,30,94,6,123,216,14,246,240,50,216,195,179,170,217,247,48,143,61,44,101,99,63,133,220,184,111,78,181,115,52,95,109,96,245,
+69,30,113,188,141,46,210,174,176,62,188,73,110,15,150,62,87,81,63,211,155,186,21,144,80,228,90,227,21,199,86,222,161,181,203,56,20,255,245,113,199,29,67,62,125,97,210,29,246,176,31,236,225,96,216,195,
+129,176,135,189,97,15,187,195,30,246,128,61,188,164,0,123,104,209,219,98,184,141,210,11,244,61,220,186,216,195,214,176,135,29,97,15,59,195,30,118,132,61,236,80,100,15,139,236,97,145,61,36,126,20,217,195,
+202,228,194,85,82,226,85,247,31,217,224,210,249,98,223,195,180,233,99,177,239,97,77,188,168,38,127,183,82,69,124,77,254,241,134,248,119,235,197,224,34,123,88,100,15,139,236,97,145,61,44,178,135,7,31,124,
+52,71,186,229,58,232,170,174,8,213,138,210,57,104,235,108,209,30,105,23,155,79,201,68,160,128,47,179,107,143,98,114,245,213,51,102,116,163,88,54,130,218,114,47,148,181,72,37,202,122,80,6,237,158,94,176,
+175,238,235,141,55,250,243,244,165,218,208,150,167,21,101,24,192,142,12,123,248,99,216,195,89,176,135,67,41,228,53,253,191,192,30,190,7,123,88,6,123,88,106,213,146,66,222,72,216,67,175,154,252,212,177,
+135,75,144,85,172,129,61,124,9,246,112,62,245,232,121,148,104,231,151,28,157,44,121,233,123,92,4,124,80,98,185,167,193,247,61,84,114,252,18,42,220,82,216,195,5,176,135,211,145,47,206,67,81,255,60,236,
+225,147,232,190,166,195,30,206,133,61,124,1,193,204,66,52,36,175,192,30,46,129,61,124,158,226,251,44,234,209,51,22,28,147,60,51,255,240,100,46,133,188,57,212,182,174,190,225,192,228,162,139,191,245,183,
+6,199,30,174,64,57,255,67,216,195,57,176,135,195,170,192,30,246,71,29,244,0,236,225,92,20,67,79,32,171,152,142,210,64,99,159,157,127,100,242,36,37,218,39,23,28,148,44,122,249,235,201,239,63,222,53,89,
+84,182,143,69,241,191,82,170,89,187,197,217,195,85,48,17,139,96,15,175,175,128,61,20,197,177,104,30,216,157,162,152,44,123,216,19,246,176,63,26,146,219,30,61,38,121,104,250,145,201,19,115,191,151,60,181,
+240,160,228,181,247,247,78,254,242,175,29,232,137,184,93,210,166,253,241,41,217,66,205,234,175,91,148,61,92,14,218,115,103,1,246,80,153,162,66,81,31,123,52,41,87,180,101,130,236,161,242,69,241,28,53,95,
+241,18,4,42,91,182,106,150,12,187,254,148,100,234,156,111,66,152,238,146,252,249,31,59,166,198,62,246,244,126,192,90,199,167,69,58,81,158,45,210,247,240,103,176,135,171,11,176,135,65,187,132,80,84,101,
+172,130,84,141,13,0,83,227,179,236,161,71,180,30,213,106,252,60,220,248,87,191,253,28,125,76,215,143,236,47,254,176,67,210,171,239,65,169,56,220,42,99,92,160,93,175,236,161,56,222,226,74,216,67,239,152,
+86,210,160,134,82,41,176,70,43,120,81,44,174,86,75,33,139,127,38,200,161,139,171,244,107,214,236,130,228,87,191,219,181,220,216,63,39,219,36,211,230,124,33,53,214,199,34,184,35,44,200,37,215,68,173,249,
+3,184,196,18,207,201,189,182,46,39,70,251,28,95,55,96,137,55,74,60,248,96,219,243,116,128,43,90,204,7,90,108,82,49,96,64,143,79,230,205,235,158,146,224,54,102,141,142,150,26,187,176,2,246,80,221,150,21,
+127,13,149,81,138,54,98,170,115,84,243,4,157,38,196,165,72,77,189,135,146,98,95,142,226,50,15,229,207,63,191,73,210,111,192,209,180,246,220,38,249,240,119,159,73,186,245,252,86,170,46,208,96,141,172,215,
+190,135,178,135,139,50,236,161,194,207,32,73,149,12,42,94,137,22,98,193,44,229,183,4,244,247,26,172,4,81,131,85,228,41,124,145,163,80,121,47,76,162,26,232,174,251,191,158,188,252,206,30,137,178,194,232,
+144,87,239,236,161,1,42,216,67,231,168,98,20,231,172,66,82,141,85,145,163,6,75,99,52,202,71,192,35,248,67,193,203,48,88,145,154,63,171,164,73,142,73,109,101,52,101,21,159,117,36,219,180,61,41,85,20,40,
+137,10,119,174,55,246,240,215,176,135,83,50,125,15,67,92,170,18,94,238,65,90,69,145,153,163,38,138,231,163,92,56,64,173,44,112,25,122,203,44,112,41,180,165,100,194,81,86,225,167,193,244,17,79,197,233,
+46,107,42,120,85,22,56,127,45,176,171,160,245,171,30,97,109,203,171,38,153,22,43,89,178,20,166,29,152,37,76,55,152,195,204,161,47,163,118,157,205,220,45,67,117,179,212,32,50,117,106,123,54,0,253,49,98,
+112,122,123,131,236,225,139,21,176,135,209,204,34,112,60,245,88,26,173,92,88,65,120,160,181,97,176,65,203,249,235,8,59,186,74,151,156,247,209,161,199,249,44,154,107,228,118,238,126,255,251,223,79,35,186,
+145,93,137,97,24,235,247,125,20,210,24,189,189,87,147,37,239,101,138,123,106,165,27,243,120,59,219,78,238,168,54,48,24,97,103,103,254,243,185,124,200,101,72,248,223,57,233,164,19,152,83,189,8,50,253,48,
+116,32,65,101,64,98,6,101,82,17,236,97,116,238,144,80,81,118,168,242,78,248,74,89,146,12,162,35,157,157,203,6,171,104,7,104,48,115,244,29,93,127,94,241,90,24,171,204,73,173,166,243,217,8,190,197,216,195,
+18,216,195,150,153,190,135,206,91,37,134,89,28,79,249,175,162,51,121,96,165,132,170,237,84,206,58,143,117,107,231,174,236,161,163,174,192,212,64,165,126,203,191,167,190,82,49,185,198,42,84,13,129,185,
+152,129,114,166,96,15,117,109,85,63,62,142,174,220,146,94,96,132,103,131,241,123,220,122,169,237,135,208,75,79,203,49,75,222,183,183,221,6,35,140,59,205,224,141,175,228,237,150,160,181,250,120,214,172,
+118,233,126,118,229,202,62,140,48,15,27,129,153,121,236,161,35,108,84,86,76,170,16,92,104,67,233,96,52,136,83,14,172,65,186,182,96,135,17,59,0,106,93,58,216,97,213,242,254,29,93,56,224,45,153,168,104,
+250,232,116,81,84,90,175,236,161,187,30,55,2,6,7,211,66,163,179,10,120,165,194,209,185,67,215,182,175,146,31,92,101,187,163,230,232,169,132,15,136,58,250,16,71,179,71,181,212,26,235,168,138,248,104,164,
+145,90,0,204,165,206,160,232,186,110,196,86,178,164,238,43,178,172,58,101,15,223,45,192,30,170,126,207,146,104,142,138,110,24,109,75,204,168,140,186,42,100,205,168,2,197,115,148,157,223,206,91,95,140,
+47,73,184,195,127,207,151,168,208,220,168,31,93,185,228,150,92,235,227,82,124,231,180,70,215,41,123,88,146,199,30,202,31,6,128,225,104,72,164,249,65,21,138,107,184,115,80,195,141,182,50,12,70,97,101,195,
+18,166,142,174,25,151,198,26,236,132,57,194,72,71,213,216,16,45,185,163,225,163,196,138,109,19,212,72,215,11,123,232,230,61,203,30,186,251,201,186,93,68,108,71,72,244,198,53,89,227,253,25,93,222,209,118,
+78,71,100,214,88,95,74,116,212,139,150,127,217,54,158,1,91,186,6,171,205,148,53,84,179,37,193,146,101,15,125,25,181,222,247,240,241,12,123,232,6,192,29,79,160,59,89,12,47,80,60,3,77,252,58,72,111,95,128,
+115,214,192,22,13,230,116,91,201,51,255,45,141,142,174,150,97,172,187,44,85,186,209,231,129,155,28,202,13,14,209,170,66,214,200,177,221,111,19,181,63,100,112,150,51,239,151,19,157,39,229,184,165,125,203,
+163,52,174,55,140,181,112,1,114,253,101,236,79,127,113,221,117,141,153,99,109,8,56,18,166,237,25,153,214,201,212,28,123,232,146,16,251,89,191,250,1,253,208,133,158,104,41,22,220,161,1,200,37,204,101,75,
+227,157,6,26,27,232,94,62,74,171,177,238,161,221,101,121,105,137,13,166,20,165,58,119,53,80,131,21,166,42,34,55,227,50,43,51,19,99,244,63,36,247,94,78,130,162,193,119,243,28,158,38,32,113,158,139,203,
+245,37,128,176,58,44,40,37,173,251,112,228,200,179,192,105,189,205,172,45,70,107,120,139,244,12,74,215,50,221,11,246,208,104,29,141,151,99,255,27,134,59,98,209,252,49,250,167,185,108,69,251,48,19,20,231,
+184,65,79,183,15,143,136,139,20,226,208,192,145,142,81,175,87,246,240,249,2,236,33,215,58,165,193,37,46,26,202,54,120,116,30,187,188,68,87,60,231,176,209,218,100,195,44,203,168,109,102,101,64,51,66,71,
+151,204,104,28,153,197,251,194,224,138,216,67,131,89,173,179,135,171,10,244,61,140,64,163,161,177,94,250,53,192,105,83,67,161,105,83,69,231,174,70,70,147,199,108,127,37,95,134,209,58,122,28,6,225,230,
+250,27,17,91,176,179,94,217,67,143,82,61,93,244,68,194,51,40,31,207,164,116,215,112,93,191,234,158,142,170,41,167,35,167,177,142,164,155,138,108,55,60,163,181,107,177,145,219,181,58,208,90,151,40,151,
+181,24,241,96,143,157,163,82,46,170,234,11,245,61,172,85,246,208,67,114,207,141,39,229,177,135,158,61,233,186,65,133,7,96,25,100,154,121,113,108,40,76,49,221,72,196,141,15,174,197,142,178,249,182,243,
+217,159,115,205,142,141,136,9,76,244,46,213,147,234,141,61,124,17,246,240,69,216,195,69,176,135,143,20,96,15,141,164,177,222,234,194,6,162,72,56,162,253,159,163,235,161,128,91,70,71,214,109,161,6,155,
+99,123,96,224,220,142,230,142,206,105,83,83,189,67,79,209,99,220,34,26,157,37,93,42,234,123,232,210,84,99,246,240,53,216,195,18,216,195,69,176,135,150,63,60,36,247,220,216,163,84,79,23,117,111,79,33,116,
+235,104,14,231,70,194,188,216,229,71,132,199,244,209,173,98,140,176,155,254,216,248,103,185,67,119,87,110,34,28,105,61,195,151,231,153,181,255,87,240,17,230,206,155,234,123,168,193,236,160,222,101,53,
+41,101,23,181,140,102,83,99,89,142,142,229,249,22,207,110,27,236,150,216,130,237,71,128,152,15,62,103,195,214,210,51,206,56,141,121,117,124,82,6,123,168,177,150,63,172,8,220,89,128,61,116,237,211,80,231,
+173,46,233,40,249,193,53,192,20,210,253,174,188,146,238,236,38,34,26,60,154,106,250,253,32,210,52,218,75,79,124,89,70,93,62,100,57,123,104,183,173,58,103,15,45,89,90,197,179,176,101,173,103,17,236,225,
+60,216,195,235,51,236,161,103,75,202,125,117,59,119,82,142,188,1,200,64,100,254,108,80,18,210,114,190,186,217,15,163,131,59,52,112,57,250,122,129,6,27,224,140,218,206,89,185,166,24,93,83,199,202,216,67,
+146,145,154,177,135,214,103,45,89,46,133,61,92,1,123,248,2,236,225,51,176,135,55,21,96,15,221,190,185,131,49,130,154,49,197,33,128,6,107,148,115,88,23,206,54,120,140,230,142,49,202,190,32,231,178,169,
+167,155,250,8,84,174,191,26,235,8,155,93,153,94,70,59,50,179,47,127,150,115,234,127,178,95,94,203,17,111,25,222,81,198,230,255,74,60,228,184,156,120,220,51,234,109,55,58,151,102,206,236,67,22,245,52,81,
+182,140,124,185,196,139,112,71,195,30,190,2,123,56,11,246,208,194,214,84,112,188,71,97,15,175,203,176,135,206,99,83,63,13,246,67,153,109,233,206,26,237,73,164,235,175,6,187,44,105,116,52,119,244,247,142,
+186,47,196,115,105,127,222,128,229,191,21,72,158,203,141,198,58,119,77,33,221,45,197,99,230,165,171,27,200,48,178,246,216,67,235,179,150,44,167,104,44,236,225,100,216,195,187,96,15,135,101,216,67,71,216,
+209,13,238,80,163,117,235,112,105,15,1,60,172,211,72,3,156,201,133,110,238,232,26,197,253,89,61,163,65,244,61,180,24,109,125,246,41,216,195,201,176,135,247,195,30,222,3,142,55,17,246,112,112,134,61,52,
+120,153,32,24,112,76,240,29,17,35,167,65,72,195,13,94,230,225,186,170,189,14,253,89,255,204,28,61,220,215,175,186,235,230,244,61,172,85,246,176,51,236,225,44,224,172,135,97,15,53,246,110,216,195,59,196,
+241,96,15,71,228,245,61,204,103,15,117,65,247,177,230,188,206,65,231,93,176,135,166,139,97,108,117,217,67,61,138,23,251,191,100,95,117,211,247,240,90,216,195,103,96,15,239,133,61,212,216,251,96,15,239,
+134,61,28,15,123,216,15,246,176,107,5,236,161,70,154,52,68,255,66,231,158,198,105,168,134,251,34,26,36,123,120,44,236,225,120,216,195,199,97,15,31,132,61,188,23,246,112,2,236,225,88,216,195,235,96,15,
+7,193,30,118,133,61,108,11,123,216,177,115,197,236,161,129,200,195,184,224,135,29,169,168,27,121,124,99,190,156,13,78,254,58,232,211,122,103,15,143,128,61,188,22,246,240,105,220,251,14,216,195,177,176,
+135,163,97,15,175,133,61,188,90,28,15,12,175,7,236,225,229,195,246,73,46,201,177,135,39,127,26,216,195,142,176,135,147,96,15,111,133,61,188,22,246,80,99,71,192,30,14,133,61,212,232,33,176,135,87,208,247,
+176,213,128,221,146,51,97,15,143,130,61,60,112,51,216,195,6,213,247,80,246,112,34,236,225,77,176,135,215,194,30,14,131,61,28,12,123,56,24,246,112,0,236,97,95,216,195,110,176,135,29,96,15,47,130,61,60,
+147,190,135,167,209,247,240,160,205,96,15,115,125,15,109,204,250,186,237,59,57,121,121,51,215,228,113,52,73,197,121,60,18,106,54,140,219,131,167,224,245,233,85,82,226,89,162,240,14,118,158,190,222,212,
+237,229,213,210,104,94,113,108,229,253,104,216,195,238,176,135,215,193,30,94,7,123,56,18,246,112,8,236,97,95,216,195,222,176,135,189,96,15,175,128,61,188,12,246,176,57,236,225,165,176,135,199,110,6,123,
+200,255,247,107,187,208,146,132,148,113,94,181,134,255,219,74,191,29,45,53,214,13,130,56,158,221,241,54,186,102,185,218,40,158,111,140,157,199,87,248,218,193,155,186,173,219,120,159,179,50,3,150,155,85,
+94,132,43,123,120,5,236,225,48,216,195,107,97,15,71,192,30,14,132,61,236,5,123,216,13,246,176,51,236,225,229,176,135,93,96,15,207,201,235,123,232,154,237,246,206,199,163,88,179,53,243,114,140,251,39,71,
+176,191,203,177,135,43,108,185,75,112,107,152,236,97,79,216,195,65,176,135,87,194,30,14,133,61,236,15,123,216,27,246,176,15,236,97,243,60,246,208,180,81,153,131,27,144,2,236,225,18,94,236,214,197,30,182,
+129,61,236,4,123,120,5,236,97,23,216,195,203,11,176,135,222,146,196,200,254,145,125,236,59,100,104,75,189,113,133,12,172,140,81,45,37,35,91,197,186,61,35,215,76,217,235,162,116,225,239,241,236,159,155,
+179,59,242,181,66,170,180,218,46,157,199,38,109,203,63,110,139,47,175,37,63,145,45,220,72,239,115,246,138,99,43,239,22,163,57,187,94,101,201,18,87,45,225,195,175,98,238,191,238,213,139,36,23,31,120,72,
+238,185,49,229,205,15,188,217,204,203,190,188,255,202,43,161,8,76,75,220,188,123,151,142,215,203,184,235,193,208,231,185,109,201,185,170,161,118,179,60,138,199,202,190,133,110,219,141,85,218,223,161,70,
+6,167,149,116,222,166,193,129,199,109,151,111,249,4,239,115,86,102,96,229,157,145,42,115,158,115,200,247,10,21,251,215,184,97,109,157,247,76,34,85,40,181,34,224,33,57,134,173,240,103,188,217,204,203,190,
+188,255,138,209,92,225,73,5,70,22,217,67,94,106,145,61,172,170,18,190,198,46,93,209,127,196,40,216,204,85,252,174,216,247,144,151,80,236,123,88,93,151,172,233,207,87,41,181,172,233,127,210,144,254,126,
+189,24,92,100,15,139,236,97,145,61,44,178,135,69,246,176,200,30,38,85,90,113,170,244,67,174,163,148,56,247,180,59,30,250,140,201,246,80,179,173,24,154,141,197,54,159,146,137,24,53,170,57,165,146,174,105,
+35,155,117,235,6,80,244,190,41,149,28,43,76,93,185,82,9,114,15,158,174,233,5,251,111,190,217,143,90,82,239,84,29,84,168,239,161,236,225,106,216,195,53,86,45,41,228,93,13,123,120,230,167,153,61,92,7,123,
+248,2,245,232,69,148,104,23,195,30,174,128,61,156,77,109,171,249,214,194,30,174,67,133,91,6,123,184,8,246,112,38,242,197,5,40,234,231,194,30,62,133,238,107,38,236,225,60,216,195,197,57,246,240,53,216,
+195,229,176,135,11,40,190,207,165,30,61,27,28,111,6,236,225,66,10,121,11,168,109,117,227,104,248,208,67,15,249,164,65,178,135,239,195,30,206,133,61,28,94,5,246,112,0,234,160,201,176,135,11,96,15,159,70,
+86,49,11,165,129,198,206,132,61,124,86,246,144,170,229,140,146,239,36,165,63,60,40,25,127,239,193,137,21,144,6,209,247,48,237,199,4,123,56,186,146,190,135,86,25,85,244,21,98,15,7,162,33,185,19,246,240,
+49,216,195,103,230,30,154,60,133,177,143,83,162,157,93,122,108,50,125,197,65,201,115,47,125,33,185,227,137,253,184,12,248,43,255,216,162,236,225,10,208,158,187,54,193,30,170,166,83,51,25,236,161,101,83,
+165,253,21,177,135,195,97,15,111,69,105,240,56,197,247,153,203,142,76,166,149,124,63,121,226,133,47,39,207,175,222,139,230,143,219,37,37,107,247,160,195,229,215,255,194,177,241,106,207,201,61,46,242,38,
+55,182,161,135,231,206,220,54,58,212,43,24,165,209,96,108,207,115,1,98,238,69,98,239,70,99,10,213,127,232,218,181,49,17,120,32,53,222,245,77,30,131,80,147,61,92,91,128,61,12,193,104,200,129,149,39,170,
+216,203,130,150,106,53,43,98,15,91,183,110,149,94,233,124,235,195,71,225,206,135,38,47,190,178,87,242,254,111,62,147,124,242,175,70,116,189,108,148,244,232,115,104,170,10,160,250,240,95,245,214,247,80,
+28,111,73,30,123,24,173,0,53,216,95,43,97,176,242,175,228,80,176,67,41,161,70,171,112,87,226,224,159,41,57,204,178,135,66,89,170,118,125,25,207,78,63,61,121,253,135,187,164,70,106,236,159,254,218,40,185,
+97,156,125,151,142,74,21,181,22,206,41,197,214,15,123,248,66,134,61,84,67,29,237,71,212,72,42,78,81,215,17,109,196,130,91,18,3,80,154,36,208,37,229,34,237,162,88,205,159,141,174,120,10,209,155,52,57,55,
+153,252,200,65,201,31,105,246,248,87,242,10,141,253,243,223,26,37,175,188,249,217,164,241,57,135,164,245,100,21,4,234,74,168,78,124,68,25,102,149,174,205,241,240,90,143,142,115,167,169,159,217,224,136,
+57,127,115,142,230,226,11,104,48,30,131,73,88,140,148,104,129,183,55,76,156,216,129,15,61,6,105,209,40,146,129,225,104,170,134,165,189,74,23,195,30,182,202,245,61,212,216,192,241,116,91,181,89,106,55,
+20,172,100,27,197,69,131,169,128,181,68,122,228,31,162,233,163,127,199,191,107,35,26,85,4,234,70,198,142,255,86,185,27,255,215,159,182,73,46,109,254,157,20,1,208,96,93,186,94,250,30,26,160,178,125,15,
+179,56,158,110,28,55,134,107,176,18,67,13,242,209,96,65,173,172,193,89,224,50,144,60,21,61,106,191,52,88,10,237,134,113,7,36,127,252,243,182,201,212,39,15,64,177,115,72,58,178,42,125,212,136,213,121,223,
+195,223,192,30,62,158,97,15,3,181,113,100,53,86,221,165,2,22,133,102,234,176,20,160,169,188,11,162,37,232,52,191,58,194,126,63,11,92,42,82,243,230,113,217,66,221,213,231,164,147,142,75,222,249,209,246,
+224,244,231,165,220,133,212,169,82,166,122,97,15,75,200,148,46,187,172,93,186,134,134,180,87,17,232,115,207,61,151,74,133,157,159,170,99,157,163,126,120,231,166,98,52,13,115,132,229,150,52,214,175,6,49,
+61,192,39,26,92,232,29,106,188,92,167,149,65,56,130,235,111,37,255,126,170,235,244,251,26,27,55,149,215,57,123,104,82,145,101,15,13,80,82,105,74,127,149,28,70,175,52,141,118,164,21,166,41,70,11,180,54,
+12,214,120,35,183,202,90,133,106,138,211,148,30,42,36,87,148,234,191,163,118,83,129,121,176,135,82,225,202,160,156,183,186,181,198,6,142,103,180,246,133,160,15,121,219,218,150,229,158,237,182,219,206,
+98,249,55,60,39,223,8,182,228,3,222,201,142,104,17,34,177,197,44,25,255,53,124,120,147,244,122,153,178,50,97,203,126,4,172,190,201,242,60,246,208,165,71,118,73,208,42,84,180,26,173,246,42,58,120,56,31,
+29,101,221,58,218,122,106,172,191,118,94,43,54,53,88,73,176,105,172,2,53,17,31,21,181,190,72,141,54,89,81,73,107,253,216,178,106,189,177,135,179,10,176,135,202,124,131,107,80,39,173,225,242,131,33,48,
+13,249,112,180,29,10,120,218,101,202,209,117,158,71,119,75,167,131,75,147,222,226,191,225,250,236,163,58,62,191,239,161,115,92,1,92,128,150,122,129,20,57,243,250,35,171,150,22,242,40,240,45,203,101,94,
+41,82,91,158,105,121,148,138,176,115,62,163,176,22,237,243,26,92,131,246,67,189,208,72,14,32,139,234,71,118,213,51,113,215,227,70,32,219,247,208,57,28,189,133,3,201,211,120,221,208,15,172,42,86,35,28,
+61,71,217,209,116,25,138,245,87,87,119,25,114,100,245,136,192,104,125,105,254,123,1,92,170,140,55,34,231,179,135,42,7,234,172,239,225,123,176,135,189,251,116,74,69,225,209,6,48,0,44,49,0,231,178,40,64,
+0,30,193,32,106,132,115,82,165,172,6,234,206,70,103,93,92,157,180,23,33,232,194,1,91,234,49,209,221,82,53,188,255,174,43,129,189,199,179,236,161,129,171,78,217,195,229,25,246,80,166,200,141,64,244,55,
+51,233,136,198,82,190,132,172,225,65,158,58,210,170,106,101,135,157,187,142,184,198,234,250,78,5,189,34,154,179,138,231,249,239,4,224,21,168,80,180,1,12,246,80,1,91,157,245,61,116,243,238,26,104,192,16,
+206,50,187,210,232,44,202,19,72,158,174,238,154,236,135,142,181,89,240,195,128,228,92,54,98,107,108,176,194,174,221,254,108,244,29,143,46,93,89,224,82,165,173,130,23,229,139,217,190,135,26,93,39,236,225,
+147,57,246,208,36,63,182,120,26,45,57,150,143,225,133,225,126,223,15,159,101,154,236,223,226,58,171,145,241,98,220,80,4,146,23,45,255,130,42,245,165,10,132,57,186,186,180,58,205,48,56,159,61,116,221,174,
+53,246,240,137,76,223,195,216,226,69,27,192,44,134,23,220,175,223,115,116,163,1,164,191,119,78,70,99,229,216,85,69,55,75,183,143,230,208,89,4,79,99,165,102,188,230,66,33,170,42,92,13,86,140,90,231,236,
+161,103,80,209,247,208,125,172,143,110,24,198,198,72,134,193,249,72,173,244,183,198,198,205,44,142,180,115,86,195,131,25,14,216,50,75,150,58,125,164,75,237,248,17,146,99,123,180,152,104,40,58,21,7,208,
+173,157,215,142,176,87,98,40,152,81,67,66,150,182,156,229,232,150,242,165,41,118,75,44,45,237,153,95,11,88,30,86,226,178,63,238,217,243,52,212,234,205,210,59,235,60,74,93,177,162,5,135,109,45,82,114,83,
+172,70,34,77,52,206,224,20,220,112,4,176,232,155,230,146,98,196,245,113,79,172,177,170,226,3,197,51,106,71,192,114,217,201,111,193,171,209,65,151,58,234,174,14,245,218,247,112,53,236,97,159,126,157,82,
+225,152,199,50,54,161,113,52,179,100,154,191,14,67,13,82,70,95,151,37,247,198,230,214,6,44,65,75,215,99,141,55,41,209,104,127,54,208,59,71,60,218,241,234,226,142,186,6,59,114,245,202,30,122,148,234,233,
+98,150,61,212,173,53,208,145,118,148,162,103,154,238,107,186,233,174,71,44,199,156,218,244,49,32,45,247,200,26,111,210,225,26,237,75,49,133,52,105,9,150,49,54,38,206,113,163,181,57,115,101,125,15,205,
+186,106,165,239,97,176,135,247,229,177,135,50,74,145,104,184,222,154,33,105,172,203,77,52,151,114,19,17,27,8,119,77,46,73,206,99,247,190,110,33,253,115,119,90,166,147,254,27,102,110,70,240,104,4,107,140,
+48,120,5,252,161,225,42,107,205,171,157,191,2,211,209,218,164,86,250,30,6,123,248,2,236,225,148,2,236,161,110,23,57,116,52,90,214,88,215,92,207,172,220,60,184,19,242,236,202,17,214,96,183,131,142,176,
+220,161,163,239,252,214,181,221,44,232,222,206,251,184,72,65,23,119,23,84,175,236,225,98,216,67,203,31,30,146,123,110,156,101,15,61,112,51,141,212,29,253,192,26,27,93,165,117,89,71,209,12,203,77,126,184,
+116,128,150,186,185,164,139,157,243,252,59,238,178,28,105,179,46,255,61,51,46,95,104,101,236,161,57,182,81,186,86,216,195,85,176,135,26,107,249,195,138,192,164,2,236,161,91,54,215,74,179,48,247,177,49,
+111,53,88,12,47,139,224,229,55,120,244,103,162,103,90,128,150,206,103,93,217,101,203,141,126,52,140,171,136,61,116,93,142,70,234,53,234,123,40,123,104,21,207,194,150,181,158,37,176,135,139,96,15,199,228,
+245,61,12,254,208,45,155,155,0,163,175,70,4,70,43,144,165,11,27,157,125,28,237,64,105,245,128,184,124,72,131,245,16,243,99,59,90,6,123,232,250,91,21,246,176,198,125,15,101,15,45,89,150,194,30,174,130,
+61,92,10,123,56,3,246,208,138,64,244,61,140,62,135,193,30,58,31,221,238,105,176,174,236,252,117,207,171,193,158,111,249,4,138,167,75,251,231,46,89,6,47,35,182,211,131,68,33,53,54,120,38,83,201,170,178,
+135,74,142,107,196,30,142,133,61,124,19,246,112,46,236,161,133,173,180,214,67,249,227,6,216,195,203,59,53,75,147,17,51,176,248,64,158,57,57,23,221,212,199,21,83,26,172,91,107,104,92,7,23,61,15,13,92,49,
+194,70,107,65,105,215,219,136,202,110,24,42,99,15,189,246,17,35,127,207,38,98,137,250,106,37,199,188,180,38,57,169,241,126,124,77,207,167,55,42,181,112,86,181,3,19,191,171,154,10,214,213,85,156,14,174,
+181,24,109,125,214,146,165,85,60,11,91,143,193,30,222,7,123,56,34,175,239,161,208,163,115,206,0,226,218,108,48,114,244,76,50,52,80,182,216,204,204,125,176,135,118,142,176,115,220,209,213,149,205,172,194,
+208,184,168,100,139,244,61,180,24,109,125,118,26,236,225,99,176,135,147,97,15,31,0,199,187,5,246,112,88,37,236,161,153,153,35,103,0,50,241,215,16,65,45,95,132,75,146,167,34,158,162,84,151,61,172,243,190,
+135,87,192,30,206,3,206,154,2,123,168,177,247,193,30,222,3,142,119,63,236,225,213,176,135,151,119,106,65,126,125,69,154,2,122,170,105,224,137,190,135,38,249,46,29,186,103,176,135,38,12,6,163,44,123,232,
+239,55,163,239,97,221,177,135,163,97,15,159,131,61,124,16,246,80,99,39,195,30,222,15,123,120,51,236,225,64,216,195,238,57,246,208,61,179,235,179,145,85,228,78,35,53,38,154,36,251,107,71,52,114,227,90,
+96,15,75,165,93,64,141,188,134,70,84,64,76,64,165,254,174,170,247,43,213,75,251,67,188,233,163,89,219,30,98,46,174,165,150,91,170,204,192,202,251,77,176,135,207,192,30,62,2,123,248,32,236,225,205,176,
+135,19,97,15,199,192,30,14,131,61,236,14,123,216,238,138,245,125,15,141,224,217,190,135,186,178,91,185,56,139,218,106,216,195,209,176,135,51,112,239,73,176,135,19,97,15,199,193,30,222,0,123,120,157,56,
+30,24,94,111,216,195,46,244,61,108,14,123,120,246,167,165,239,97,103,4,38,15,192,30,222,5,123,120,3,236,161,198,94,3,123,56,2,246,80,163,175,132,61,236,1,123,216,14,246,240,108,216,195,99,96,15,15,134,
+61,252,54,125,15,191,190,181,246,61,188,24,246,240,86,216,195,219,97,15,111,128,61,28,9,123,56,28,246,112,56,236,225,16,216,195,129,176,135,189,96,15,59,193,30,94,10,123,120,54,125,15,207,160,239,225,
+33,85,100,15,221,5,25,248,44,169,52,40,246,176,39,236,225,24,216,195,177,176,135,163,96,15,175,132,61,28,8,123,216,31,246,176,31,236,97,15,216,195,78,176,135,173,97,15,91,193,30,30,127,246,30,229,93,106,
+35,122,199,109,104,174,195,6,49,143,113,92,211,173,39,49,215,255,218,224,216,195,51,97,15,187,193,30,142,132,61,188,1,246,112,20,236,225,48,216,195,254,176,135,189,96,15,187,193,30,118,129,61,236,1,123,
+120,94,53,216,67,51,40,140,125,13,227,27,54,123,216,27,246,112,24,236,225,53,176,135,87,193,30,14,133,61,28,0,123,56,8,246,176,229,230,177,135,101,68,247,149,185,165,167,13,43,137,148,218,17,60,34,180,
+82,165,54,121,220,118,147,189,27,171,203,35,240,15,138,233,184,182,29,206,197,32,61,188,188,90,77,5,116,217,106,206,184,86,123,17,174,119,195,90,178,116,100,44,108,145,132,252,165,45,236,97,23,216,195,
+110,176,135,221,96,15,59,86,192,30,146,154,22,217,195,34,123,184,62,131,210,133,63,171,199,85,199,75,171,44,31,174,132,68,115,238,8,97,185,13,147,250,108,108,229,221,139,112,173,207,146,66,150,145,94,
+150,225,222,43,216,249,164,87,47,122,27,161,135,228,156,50,46,39,32,173,32,197,44,229,231,151,242,60,155,187,18,170,41,255,206,9,60,222,165,99,154,120,8,79,145,61,172,206,232,22,220,15,87,247,31,200,255,
+249,92,80,43,178,135,188,136,221,115,110,191,55,95,247,229,81,130,16,143,224,245,62,60,222,1,189,7,143,160,166,64,246,246,149,45,51,213,29,160,26,207,225,234,254,135,91,250,231,139,6,215,197,8,20,217,
+195,34,123,88,100,15,139,236,97,145,61,44,178,135,159,18,246,112,1,133,188,107,97,15,207,250,191,192,30,190,64,137,182,4,246,240,37,216,195,133,212,182,90,110,13,236,225,26,218,157,188,140,10,119,53,236,
+225,139,176,135,179,145,47,190,128,162,126,1,236,225,179,232,190,102,195,30,46,132,61,92,130,96,102,17,247,87,7,123,184,136,226,251,66,234,209,11,192,241,230,194,30,46,163,144,87,66,109,171,103,67,101,
+15,75,233,218,243,19,216,195,133,176,135,35,144,28,183,106,125,65,174,45,216,122,173,166,183,143,91,98,181,50,209,166,109,211,100,16,234,160,71,97,15,95,128,61,124,22,89,197,92,148,6,26,59,15,246,112,
+54,37,218,25,84,45,231,193,30,174,131,61,188,185,161,177,135,75,96,15,111,0,19,232,209,163,93,122,19,177,149,65,37,17,26,167,54,196,91,199,179,45,255,178,125,15,123,209,247,112,8,26,146,123,97,15,159,
+132,61,156,5,123,56,19,99,167,81,162,93,8,123,56,23,246,112,1,181,173,59,40,247,120,251,226,22,103,15,239,46,192,30,170,229,10,125,181,242,35,117,207,54,197,8,246,144,171,167,54,234,123,216,138,190,135,
+35,97,15,239,66,105,48,141,226,251,60,216,195,57,176,135,143,81,181,156,66,33,111,54,181,173,27,110,255,22,117,170,175,127,76,9,54,5,180,234,157,61,108,217,242,252,180,76,170,86,74,85,64,62,123,152,109,
+114,161,216,76,249,162,198,170,232,211,197,85,14,232,17,209,247,80,246,176,29,236,225,157,176,135,51,23,31,145,26,251,8,37,218,135,168,90,62,60,123,223,100,218,242,207,39,150,112,191,243,157,45,192,30,
+14,29,218,35,117,89,105,209,192,241,52,216,95,43,82,19,231,81,200,162,2,79,233,161,149,127,37,193,234,53,53,88,121,146,47,73,217,145,74,191,44,123,56,108,120,207,228,218,155,191,145,220,69,241,93,99,239,
+159,246,149,228,241,57,123,39,207,45,221,35,249,209,207,118,76,238,125,224,43,245,215,247,48,203,30,170,191,12,66,205,17,84,149,167,180,33,4,45,249,24,143,194,23,101,134,42,229,125,9,106,63,148,60,105,
+116,180,1,244,215,190,144,142,157,218,37,19,239,254,18,134,126,49,121,235,71,59,39,63,253,229,142,201,199,31,55,74,126,247,251,109,147,171,70,125,199,34,250,95,40,217,172,169,55,246,208,121,26,18,96,93,
+87,195,53,88,201,97,0,151,217,142,90,18,45,209,37,79,142,73,14,66,44,64,13,151,222,224,11,19,197,19,183,107,219,246,124,34,246,33,120,197,62,201,223,128,45,255,130,161,26,251,243,95,108,207,84,56,140,
+159,59,51,173,63,81,116,255,53,7,249,139,45,10,120,71,95,238,212,211,211,212,242,163,220,141,78,60,80,212,52,195,237,22,241,225,74,144,19,150,217,38,219,219,27,94,127,253,106,244,145,119,0,102,220,132,
+20,105,56,218,140,126,68,220,245,115,214,145,213,88,229,191,10,76,163,203,142,66,21,71,88,247,85,170,164,190,82,163,197,120,132,60,178,252,97,24,28,88,143,114,39,37,135,209,247,112,230,204,189,83,99,255,
+10,74,27,35,123,251,237,95,135,90,59,33,173,44,42,88,67,109,240,15,12,45,179,2,226,133,132,222,209,151,59,58,46,239,53,190,145,193,188,221,73,188,233,69,24,190,16,189,242,127,216,19,220,171,42,86,174,
+28,132,64,109,8,210,163,209,184,223,109,168,95,251,164,198,58,111,253,96,142,168,250,42,233,20,53,147,34,57,182,244,83,142,164,44,41,24,68,221,58,31,199,139,166,113,33,28,87,222,20,234,30,131,89,220,59,
+255,224,131,95,72,141,253,232,163,70,104,59,191,150,242,74,10,76,213,132,88,101,172,179,190,135,203,10,176,135,10,65,213,72,170,194,83,149,19,56,158,226,52,165,133,142,152,26,173,112,235,172,59,235,222,
+6,51,131,154,106,91,167,128,110,173,198,90,87,117,244,124,142,60,242,8,188,164,17,112,200,87,153,227,223,75,141,85,58,33,224,81,103,125,15,205,160,76,42,178,236,161,163,171,24,52,186,120,104,180,116,153,
+163,173,162,86,25,162,115,57,88,98,49,30,231,109,52,139,243,37,132,193,122,130,198,58,29,164,94,214,27,122,100,249,189,243,163,71,239,133,64,253,172,244,69,104,176,198,214,41,123,88,6,123,216,42,215,247,
+48,88,7,85,240,26,171,80,60,24,37,229,196,202,254,109,95,224,7,215,181,29,57,213,180,97,112,204,91,35,180,208,86,244,109,17,184,244,239,248,178,20,171,25,165,77,71,197,238,14,60,240,59,169,42,207,204,
+77,87,86,0,87,103,125,15,221,8,60,159,199,30,186,214,134,116,223,128,165,176,91,1,154,202,120,163,180,192,164,48,135,35,22,107,177,8,173,70,235,202,126,117,116,85,229,233,250,217,246,37,190,44,255,190,
+83,197,23,26,236,161,232,157,252,176,66,86,71,184,206,216,67,119,61,110,4,130,61,116,233,8,137,111,0,30,126,117,196,195,104,197,222,126,104,215,90,13,114,148,13,78,206,97,13,150,41,14,99,163,111,105,116,
+183,212,67,148,42,70,119,75,71,53,216,67,93,90,114,188,78,251,30,254,40,195,30,10,94,72,157,4,92,21,40,158,95,131,65,52,123,210,205,213,62,135,209,138,77,53,82,131,133,46,117,99,37,136,1,91,26,225,141,
+1,26,106,92,8,224,82,44,64,238,33,192,44,5,111,117,222,247,176,44,199,30,154,235,6,98,19,173,189,242,187,226,5,137,22,236,146,134,235,154,70,109,93,216,209,53,106,107,108,180,17,139,150,160,209,240,209,
+23,166,167,184,2,200,71,249,40,124,177,155,64,189,244,61,116,243,30,125,15,179,236,161,18,253,66,40,94,128,146,254,153,202,90,71,203,145,14,118,73,23,215,125,29,77,231,104,192,29,1,107,154,118,234,45,
+145,155,251,239,233,210,249,236,161,178,166,58,97,15,159,201,244,61,116,139,39,119,104,210,225,60,14,131,163,73,156,95,179,187,35,63,116,228,217,186,172,198,58,146,142,158,134,233,9,254,29,221,54,18,25,
+217,37,159,184,233,197,127,79,131,213,104,214,11,123,248,84,134,61,116,63,235,19,237,55,3,165,13,186,204,15,239,168,250,232,154,26,228,207,58,146,26,171,209,241,146,2,180,204,54,123,212,107,98,186,4,186,
+235,86,82,113,170,130,212,122,233,123,232,25,84,150,61,244,106,25,141,209,200,112,67,243,232,252,254,165,206,95,151,40,85,242,26,107,162,97,186,169,209,190,16,163,125,140,164,198,5,85,154,229,15,141,208,
+193,30,218,125,39,230,112,157,178,135,11,242,216,67,247,190,174,189,217,17,20,189,113,46,234,174,70,231,252,101,201,45,160,235,176,155,9,19,11,255,220,23,18,237,254,52,62,70,84,117,124,176,135,170,242,
+100,32,162,199,146,73,136,116,169,154,107,137,211,58,233,123,248,82,1,246,208,17,114,30,26,77,205,178,52,84,88,203,76,75,134,201,81,21,250,144,127,112,13,118,116,125,92,123,205,190,220,100,248,179,65,
+134,235,230,209,191,52,140,53,94,72,205,236,180,211,78,41,30,192,57,86,154,106,42,61,54,98,59,226,126,85,151,105,240,130,31,254,167,215,176,123,51,185,130,25,118,76,189,120,14,227,249,82,249,110,137,64,
+241,85,70,103,33,46,247,50,35,183,142,189,40,151,30,52,101,123,215,138,173,96,51,242,225,11,210,163,84,79,23,179,236,161,110,237,40,105,168,110,43,111,168,193,110,32,2,140,142,142,90,209,43,205,101,41,
+246,189,190,12,127,214,191,31,148,184,243,63,206,192,116,107,71,220,249,237,188,173,87,246,208,115,227,135,10,176,135,126,88,151,22,13,117,84,163,65,156,249,176,183,59,184,83,10,110,201,44,203,196,67,
+151,118,30,155,74,202,67,184,6,235,33,177,159,54,8,106,184,115,91,131,93,17,182,8,123,248,4,236,97,251,203,46,74,143,97,132,55,188,158,198,104,173,219,105,172,249,175,105,164,52,139,198,70,251,63,185,
+195,56,0,112,132,53,88,94,41,250,29,250,146,156,243,209,220,81,208,210,0,24,151,29,184,254,87,133,61,244,24,24,20,224,143,118,19,240,130,125,117,95,184,242,241,57,253,216,30,27,28,0,48,103,186,49,159,
+22,227,98,171,137,138,239,29,127,252,177,140,194,250,190,135,193,30,122,72,238,185,113,150,61,212,197,141,222,70,82,231,164,251,88,221,88,200,82,68,39,238,239,200,114,135,238,123,53,216,121,28,253,136,
+205,196,156,22,49,210,6,50,71,218,151,89,21,246,208,249,91,171,236,161,229,15,43,2,247,103,216,67,79,60,52,214,17,48,176,152,57,153,62,58,186,177,89,48,133,212,64,183,128,133,184,67,119,82,113,29,77,128,
+150,70,238,200,180,220,239,86,133,61,116,247,228,134,162,86,216,67,11,91,214,122,74,97,15,151,194,30,142,207,177,135,190,81,207,161,53,214,115,101,231,173,187,30,153,67,83,200,32,210,226,138,41,3,151,
+191,246,48,192,185,237,153,151,47,71,236,214,32,167,193,6,193,136,254,26,161,177,85,97,15,253,12,181,194,30,90,178,92,13,123,248,50,236,225,74,216,195,185,176,135,86,4,60,36,119,99,174,209,209,2,208,219,
+31,12,68,206,93,131,146,115,87,227,162,73,171,199,56,254,222,23,17,13,30,3,167,117,58,24,188,232,218,145,48,247,82,238,169,58,236,161,141,108,236,123,88,99,246,112,60,236,225,143,96,15,23,195,30,90,216,
+74,107,61,148,63,38,100,216,67,48,244,244,222,43,143,100,60,80,23,154,140,249,235,154,27,110,29,125,15,141,218,113,156,227,124,119,30,59,194,110,236,165,74,119,217,101,151,242,168,108,103,189,202,216,
+195,232,123,72,6,86,115,246,208,98,180,245,89,75,150,86,241,44,108,61,5,123,248,48,236,225,168,10,216,67,231,157,9,73,156,116,248,107,231,187,153,152,217,86,160,180,6,182,232,87,106,170,233,89,116,44,
+63,177,73,216,34,236,161,197,104,235,179,207,195,30,62,13,123,248,56,236,161,181,30,203,31,87,193,30,14,26,220,53,45,142,101,251,30,122,200,38,149,230,232,187,143,53,13,148,217,119,9,50,160,197,253,89,
+38,43,30,10,102,217,195,72,48,60,217,144,28,53,117,204,54,141,139,75,136,76,57,189,187,3,87,254,13,71,61,43,106,181,239,97,119,10,87,75,128,179,158,129,61,204,22,182,30,129,61,188,46,195,30,122,232,150,
+237,123,40,137,166,225,126,213,112,191,134,1,166,132,181,192,30,218,86,172,110,250,30,142,135,61,180,62,107,201,210,194,214,84,216,195,71,96,15,239,130,61,28,14,123,216,171,130,190,135,230,185,49,202,
+193,28,198,87,137,83,95,66,117,250,30,250,194,204,165,57,211,250,27,123,228,55,108,43,198,72,151,213,9,123,104,49,218,250,236,147,176,135,83,96,15,239,130,61,188,29,246,240,102,216,195,171,96,15,251,192,
+30,94,6,123,216,9,246,80,119,246,236,201,179,229,56,56,55,39,174,13,246,144,13,194,223,217,41,189,99,195,56,150,198,181,120,202,20,50,42,105,23,155,79,169,204,23,19,216,97,147,23,121,102,255,16,184,98,
+103,230,198,165,44,57,211,201,151,223,98,157,93,238,21,199,86,222,39,192,30,138,214,78,134,61,188,29,246,240,22,216,195,27,97,15,199,131,227,93,7,134,55,16,246,176,59,236,97,27,216,195,115,96,15,79,62,
+37,173,253,164,163,226,19,87,172,250,213,199,163,87,151,33,183,127,206,117,159,66,115,214,128,150,235,141,170,177,239,242,34,211,238,120,185,134,113,125,49,80,180,199,78,91,106,177,63,187,145,128,189,
+50,245,44,238,182,23,129,166,39,163,244,60,155,131,247,144,39,44,87,102,96,229,189,43,2,147,41,176,135,15,194,30,222,8,123,168,177,99,96,15,175,131,61,212,232,81,176,135,253,175,253,124,210,105,224,238,
+201,249,176,135,199,195,30,126,239,72,122,31,86,147,61,108,80,125,15,155,193,30,222,3,123,120,63,236,225,141,176,135,215,195,30,142,130,61,28,5,123,120,21,236,225,149,176,135,3,97,15,187,195,30,182,130,
+61,60,175,249,174,201,57,205,119,72,14,171,34,123,232,188,247,144,206,249,109,52,102,206,54,140,190,135,253,96,15,111,134,61,188,5,246,112,28,236,225,117,176,135,87,194,30,14,131,61,28,2,123,216,15,246,
+176,59,236,97,135,222,123,38,237,251,237,148,156,92,77,246,16,215,205,178,135,165,13,162,239,225,89,176,135,189,96,15,175,135,61,188,25,246,112,28,236,225,53,176,135,195,96,15,7,194,30,246,133,61,236,
+57,242,11,73,255,177,159,73,154,182,217,59,173,9,185,195,177,122,80,73,223,195,173,131,61,236,15,123,120,13,236,225,56,216,195,49,176,135,163,96,15,71,192,30,94,3,123,216,161,0,123,232,142,203,61,182,
+91,79,11,225,36,28,191,197,157,215,152,46,230,250,30,110,61,236,97,123,216,195,110,176,135,189,97,15,123,193,30,118,222,4,123,200,124,45,246,61,44,246,61,44,178,135,181,172,151,174,44,65,201,33,120,210,
+100,202,132,204,114,188,226,88,64,242,112,30,239,196,241,108,248,90,30,111,32,156,196,227,125,27,254,218,239,249,103,222,189,113,98,238,192,205,212,80,192,242,80,30,91,236,10,113,126,145,71,110,121,7,
+158,74,123,148,86,8,135,86,102,72,117,255,60,103,120,145,61,228,69,20,217,195,234,122,79,109,252,124,145,61,172,141,183,152,255,111,20,217,195,34,123,88,100,15,139,236,97,145,61,44,178,135,181,156,75,
+111,169,190,135,255,103,217,195,23,168,109,181,218,90,216,195,87,80,225,174,133,61,92,10,123,56,7,249,226,98,20,245,139,96,15,167,163,251,122,30,246,240,5,216,195,165,155,96,15,231,195,30,174,164,144,
+87,74,109,171,87,67,103,15,95,128,61,28,89,5,246,112,48,234,160,41,176,135,47,162,24,154,150,97,15,231,195,30,206,165,68,59,155,170,229,34,216,195,215,97,15,111,131,61,60,174,33,245,61,172,14,123,152,
+223,247,80,246,112,40,26,146,251,97,15,159,129,61,156,11,123,168,177,51,41,209,190,8,123,184,16,246,112,49,181,173,187,41,247,28,217,144,217,67,245,86,234,39,179,236,161,172,83,22,199,83,50,17,167,150,
+178,135,87,195,30,222,131,210,96,38,197,247,133,176,135,243,236,123,72,137,246,9,10,121,243,169,109,141,109,72,236,161,198,41,26,13,13,101,72,140,67,85,171,226,206,239,137,227,89,94,141,78,151,133,216,
+195,73,176,135,179,97,15,53,118,10,236,225,163,84,45,167,192,30,206,130,61,236,70,9,151,202,228,31,234,189,239,97,176,135,86,249,179,56,158,70,169,108,87,8,30,72,158,106,30,249,37,5,106,86,253,53,216,
+118,35,34,182,186,120,33,246,112,52,236,225,61,20,223,53,118,50,236,225,3,79,125,57,121,120,230,23,147,39,169,109,89,238,161,152,86,255,125,15,37,212,212,58,135,94,50,232,82,101,76,10,88,212,119,68,135,
+60,21,241,98,60,98,0,10,219,4,178,244,6,85,121,186,117,33,246,240,234,113,251,37,247,62,254,229,228,254,167,190,148,220,67,137,246,110,170,150,143,80,200,187,159,218,214,49,199,30,248,113,189,246,61,12,
+246,208,209,85,40,170,156,88,233,160,122,43,229,13,42,122,212,117,40,78,83,77,171,161,62,26,238,87,95,132,132,154,35,175,144,205,191,171,138,64,117,144,53,102,189,160,75,215,86,201,213,227,246,199,216,
+125,146,187,168,71,223,78,137,246,158,41,251,36,79,204,227,114,224,201,95,67,85,176,223,175,234,149,61,84,42,40,190,163,130,86,29,135,50,36,117,91,106,182,212,100,41,87,210,157,149,30,10,86,106,104,52,
+140,19,250,136,62,106,209,52,78,81,121,176,135,151,94,122,73,202,56,14,25,124,94,114,231,125,95,76,22,44,222,61,121,229,229,93,146,119,222,216,57,249,253,207,27,37,111,188,178,83,210,249,242,239,254,139,
+154,113,253,176,135,209,83,73,189,165,66,83,59,115,72,166,41,67,84,188,162,132,41,70,89,131,3,184,12,66,205,209,13,112,203,81,246,229,200,57,41,61,244,138,214,19,78,56,54,89,249,226,222,201,251,111,238,
+149,252,247,175,182,77,254,231,215,141,146,255,253,77,163,228,127,126,213,40,121,109,245,142,73,243,75,191,157,190,28,110,55,254,15,196,108,75,208,142,173,164,142,61,157,195,67,149,0,229,132,233,6,103,
+90,72,136,190,140,122,110,54,193,164,140,15,188,212,59,162,167,78,109,143,200,172,63,65,103,48,31,122,16,95,7,32,45,220,184,239,161,163,161,170,86,113,168,74,58,5,102,142,178,115,82,106,197,121,28,221,
+60,28,65,1,45,141,204,34,121,126,79,215,214,88,231,187,174,173,82,79,119,86,37,112,228,145,135,37,191,121,191,81,242,255,114,198,254,129,145,93,240,220,46,201,37,77,191,158,94,235,106,253,88,105,5,115,
+185,132,41,246,50,163,173,86,186,113,238,156,124,167,141,238,196,67,32,214,25,165,220,92,230,218,50,2,206,59,162,170,175,188,98,195,115,219,0,14,68,44,58,0,233,225,198,236,161,163,43,177,226,220,245,107,
+224,120,202,145,130,76,83,142,232,135,215,24,13,118,132,117,99,13,246,107,176,195,209,33,64,5,159,211,64,239,80,186,164,92,66,99,46,105,250,149,228,39,111,1,74,255,180,81,50,111,198,103,147,99,143,57,
+64,109,101,106,176,229,87,117,159,181,218,247,48,159,61,52,178,134,193,162,0,234,157,21,161,105,184,64,135,238,45,63,168,107,135,216,84,151,142,206,120,89,55,54,160,169,216,11,186,84,72,83,133,158,154,
+142,232,68,123,200,33,7,38,207,76,105,148,60,114,223,190,201,105,167,238,87,110,108,32,121,202,32,41,175,254,158,96,183,212,75,16,188,106,50,87,1,241,190,189,237,54,112,105,70,97,6,31,102,37,238,92,130,
+27,125,60,107,86,59,220,185,103,218,218,126,245,234,62,140,112,47,220,179,125,42,36,149,48,137,78,88,65,180,4,126,163,236,87,227,85,221,233,230,174,181,170,108,85,220,41,56,141,72,173,11,107,120,180,227,
+141,238,150,106,168,85,240,69,59,19,141,8,213,143,55,144,183,110,249,5,184,195,245,238,235,232,134,177,181,222,247,208,93,143,27,1,217,195,232,124,101,98,161,136,59,120,165,108,103,60,229,191,186,121,
+160,120,142,178,82,195,0,61,34,80,25,164,252,158,129,205,185,238,168,58,239,141,242,1,92,58,77,254,205,30,30,144,26,171,66,47,92,57,212,64,206,99,239,194,229,69,172,162,189,217,107,94,34,154,171,109,121,
+9,232,46,229,35,140,94,249,84,62,204,92,178,161,213,240,6,111,181,105,115,206,191,62,252,176,39,31,100,20,35,50,134,121,119,67,242,99,216,195,62,185,190,135,26,26,236,97,164,141,129,227,5,135,232,50,101,
+48,211,189,205,182,132,39,157,203,206,83,215,223,128,45,117,97,21,181,142,170,134,26,232,92,218,252,121,31,3,160,47,205,53,94,69,143,114,166,16,185,168,253,18,233,145,48,13,57,20,217,218,223,81,254,189,
+142,23,174,243,198,212,92,177,206,162,220,238,229,6,227,114,109,145,252,206,229,41,133,47,120,191,119,239,115,72,5,59,18,164,186,226,210,93,113,105,190,102,250,30,6,91,20,217,84,22,197,203,142,182,31,
+50,80,60,63,180,189,88,140,192,209,168,213,12,44,218,15,169,166,21,182,212,64,31,25,10,71,214,228,197,71,60,72,197,94,189,177,135,110,222,131,61,116,215,227,19,100,90,214,200,0,52,226,37,132,155,59,218,
+26,237,104,154,71,59,178,33,255,119,253,86,254,31,132,140,243,223,224,103,16,212,67,252,42,7,161,132,169,16,123,24,224,150,18,230,92,35,215,15,200,208,74,189,11,55,87,150,181,244,186,119,249,8,243,70,
+135,49,186,243,81,166,47,3,227,249,197,117,215,157,75,128,105,203,219,119,148,125,218,39,207,230,177,135,178,8,1,99,24,168,226,137,174,120,166,151,241,189,184,249,193,29,148,217,152,151,26,104,164,174,
+30,35,232,124,15,210,45,2,95,180,19,139,86,130,142,112,62,123,168,150,75,215,118,30,215,106,223,195,103,10,176,135,126,72,63,84,240,9,26,233,200,200,32,5,251,235,87,127,239,50,165,171,106,172,9,74,64,
+154,65,143,70,111,180,104,254,24,211,37,182,153,190,72,69,170,21,177,135,206,99,71,216,173,38,243,249,67,180,92,233,45,199,185,226,251,225,105,2,18,133,47,230,74,95,214,61,184,169,5,165,180,30,249,112,
+228,200,179,248,96,45,136,154,109,89,252,219,240,180,72,207,160,242,217,67,231,149,198,58,210,142,148,134,4,161,22,205,146,93,139,157,155,46,51,26,171,59,155,95,251,2,52,206,160,23,209,62,90,119,198,247,
+140,21,241,184,50,168,183,118,132,11,177,135,17,200,106,173,239,225,162,2,236,161,70,234,162,174,183,206,191,160,211,196,235,4,54,162,81,156,203,141,107,112,108,28,204,171,253,243,232,62,235,232,69,187,
+63,193,172,0,45,163,179,165,29,52,149,249,87,212,247,176,78,216,195,151,97,15,251,230,245,61,212,224,104,249,23,145,53,12,53,34,27,148,76,36,52,214,60,57,110,116,112,99,224,78,202,121,236,191,225,28,143,
+86,158,249,93,45,165,210,80,246,150,179,135,178,134,26,95,231,236,161,71,169,158,46,102,217,67,223,188,35,171,209,97,104,108,24,2,231,113,233,113,237,21,225,49,203,138,91,29,28,117,61,64,215,55,10,71,
+131,199,88,227,165,208,13,140,110,11,37,93,118,221,117,215,212,157,133,45,13,78,166,156,186,184,143,235,179,89,88,173,246,61,148,61,124,56,143,61,244,88,70,169,160,134,7,134,39,64,105,30,108,86,229,200,
+58,111,205,164,130,59,212,104,151,36,71,94,108,207,212,211,185,111,28,208,104,131,151,163,28,247,12,232,214,186,108,48,17,46,77,245,214,247,240,169,12,123,232,129,155,121,174,141,84,189,230,77,116,199,
+192,100,34,97,154,24,123,96,115,100,141,53,133,116,116,29,105,13,118,51,97,186,153,109,229,105,148,143,51,177,104,231,105,208,178,227,222,22,97,15,61,36,247,220,216,81,245,209,88,93,220,195,55,71,214,
+237,156,6,155,92,56,186,209,9,207,249,171,177,142,110,220,183,227,193,158,243,88,207,112,74,24,181,93,230,28,105,215,97,13,214,88,225,47,231,173,35,172,242,214,165,199,40,29,202,121,191,214,73,223,195,
+96,15,31,204,235,123,104,82,239,238,201,209,53,31,214,144,56,180,211,149,29,81,13,14,238,48,118,69,190,20,13,142,102,233,89,164,86,131,99,29,118,55,180,69,217,195,229,176,135,19,242,250,30,122,188,98,
+144,113,125,53,2,107,112,48,195,226,119,158,101,249,24,188,252,190,167,31,206,113,231,186,158,225,246,209,185,236,26,110,162,98,26,234,124,54,56,133,43,215,91,223,195,44,123,184,10,246,112,33,236,161,
+21,129,66,236,161,24,123,182,11,94,32,120,113,117,84,32,120,174,195,242,137,6,46,13,214,173,53,216,136,173,75,251,72,164,109,81,246,112,9,236,97,20,182,44,127,220,4,123,216,49,215,247,48,216,67,215,71,
+51,29,105,81,143,104,116,105,95,128,65,74,227,243,207,171,60,20,112,75,232,129,159,35,40,100,233,242,227,28,13,36,111,139,176,135,214,103,45,89,70,97,107,26,236,225,20,216,195,235,10,176,135,174,133,126,
+96,215,86,163,183,155,116,147,4,141,246,5,4,100,105,148,214,165,93,154,12,88,26,235,122,27,134,138,208,70,71,75,217,39,55,14,249,104,143,185,181,41,165,76,4,123,223,87,153,90,165,172,207,171,114,250,106,
+145,30,5,174,10,83,183,175,176,177,5,231,65,251,179,197,122,156,12,104,37,181,159,21,4,141,159,90,140,182,62,187,0,246,112,26,236,225,211,176,135,214,122,44,127,140,170,128,61,140,99,25,121,36,119,52,
+30,214,27,168,116,227,184,70,202,128,229,142,201,200,155,207,30,58,226,155,98,15,163,231,112,157,177,135,61,40,92,45,7,206,154,9,123,184,65,97,11,246,112,12,236,97,199,92,223,195,96,15,131,64,211,96,217,
+195,224,14,163,23,162,203,73,62,123,168,209,230,203,38,22,209,26,212,164,195,101,41,70,55,64,75,255,157,28,218,83,119,125,15,111,132,61,180,62,107,201,210,194,214,83,176,135,83,97,15,45,127,140,132,61,
+236,157,199,30,234,218,174,145,142,134,198,197,197,35,1,88,250,213,239,7,155,100,12,112,180,53,86,87,141,35,29,255,94,180,246,244,123,190,4,247,191,25,246,176,110,250,30,90,121,183,24,109,125,246,89,216,
+195,39,96,15,45,108,165,181,30,216,195,107,97,15,251,195,30,94,14,123,216,177,64,223,195,24,245,90,100,15,223,206,177,135,107,234,140,61,180,242,126,35,236,225,34,220,251,81,216,67,171,120,22,182,110,
+129,61,188,81,28,15,12,111,40,236,97,47,216,195,118,193,30,158,124,220,214,207,30,118,67,96,98,125,214,146,229,45,176,135,26,59,30,246,112,12,236,225,13,24,61,26,246,112,16,236,225,21,244,61,188,16,246,
+240,4,216,195,67,97,15,15,130,61,220,255,27,255,158,147,1,82,187,235,113,174,138,215,102,97,203,6,199,30,90,159,157,12,123,120,27,236,225,88,216,195,235,97,15,71,195,30,142,130,61,188,10,246,112,8,236,
+97,47,216,195,182,176,135,77,96,15,207,131,61,252,126,21,217,195,6,217,247,208,98,244,0,216,195,219,96,15,239,128,61,188,17,246,112,12,236,225,213,176,135,35,96,15,175,132,61,28,12,123,216,27,246,176,
+35,236,97,71,216,195,83,114,236,161,1,173,58,125,15,89,139,215,16,208,26,14,123,216,7,246,112,12,236,225,29,176,135,55,194,30,142,134,61,28,1,123,56,4,246,112,0,236,97,31,216,195,33,176,135,23,181,94,
+207,30,122,77,84,176,135,46,95,158,62,186,124,25,173,173,112,120,85,5,121,192,239,216,220,191,218,224,251,30,14,132,61,188,30,246,240,38,216,195,137,176,135,55,192,30,94,3,123,56,26,246,176,99,134,61,
+244,42,12,151,162,56,243,222,4,123,88,186,213,244,61,148,61,236,1,123,216,23,246,176,31,236,97,151,60,246,144,92,252,175,100,85,31,219,247,176,200,30,210,0,189,200,30,22,217,195,90,214,75,87,134,247,228,
+16,188,34,123,152,19,148,88,140,182,62,235,222,212,42,158,23,242,89,235,137,199,223,251,253,131,115,170,155,111,241,245,107,60,182,6,252,28,143,157,51,211,253,108,77,159,26,255,3,155,108,125,187,190,147,
+173,224,229,46,105,49,122,189,124,168,216,247,176,166,163,86,157,191,95,167,35,92,157,15,82,95,63,91,47,6,23,217,195,34,123,88,100,15,139,236,97,145,61,44,178,135,85,203,194,170,188,44,21,217,195,39,159,
+92,129,234,230,15,157,59,55,165,24,214,29,45,244,0,202,40,131,211,174,61,138,201,223,127,127,44,101,209,107,82,21,238,170,85,150,88,186,241,103,93,40,167,94,142,4,162,55,197,242,238,169,20,106,217,178,
+75,41,187,92,188,254,254,234,37,231,81,66,189,132,170,226,165,136,97,78,229,249,119,223,195,173,142,61,124,9,246,176,4,246,112,46,242,197,37,40,234,95,128,61,156,129,238,107,46,236,225,98,216,195,146,
+42,176,135,171,169,109,245,217,26,216,195,171,170,192,30,14,65,29,244,56,236,225,210,2,236,225,60,216,195,185,224,120,47,194,30,190,13,123,120,39,236,225,241,159,38,246,112,24,26,146,7,97,15,159,205,177,
+135,26,59,7,246,176,4,246,112,49,236,225,50,106,91,247,82,238,57,170,33,178,135,209,15,162,80,223,195,96,15,59,119,238,92,176,239,225,53,176,135,247,163,52,152,67,241,253,69,216,195,69,176,135,79,83,162,
+125,134,66,222,11,212,182,38,52,36,246,80,129,167,162,208,192,4,52,56,196,164,33,36,247,207,212,119,133,193,209,247,48,186,95,70,223,195,251,96,15,231,194,30,106,236,147,176,135,83,169,90,62,9,123,56,
+23,246,208,235,99,27,4,123,168,70,58,140,85,89,167,4,73,33,139,34,53,5,226,74,151,84,247,40,101,82,17,32,101,170,200,77,221,151,170,129,252,190,135,99,97,15,239,167,248,174,177,143,194,30,78,134,61,156,
+10,123,56,141,218,86,243,45,205,30,106,172,218,73,53,148,142,170,10,89,213,57,98,60,33,67,84,164,38,186,35,6,32,251,224,72,103,117,95,133,216,195,107,97,15,31,128,61,156,12,123,248,0,37,218,123,169,90,
+78,165,144,55,153,218,214,177,91,146,61,84,27,45,153,166,20,41,58,3,196,173,226,242,72,74,151,108,110,33,213,34,10,224,163,186,71,21,173,87,54,171,209,244,165,121,185,118,150,61,188,2,246,112,20,236,225,
+3,20,223,239,165,30,125,55,37,218,187,31,254,82,242,212,220,189,147,33,87,29,106,137,230,151,245,202,30,250,33,21,178,40,48,19,210,18,208,16,214,80,146,168,193,74,17,53,88,119,86,164,166,110,90,132,39,
+24,38,129,45,71,91,24,211,63,87,186,164,193,150,97,84,252,41,50,85,86,113,205,216,47,39,147,30,217,55,185,111,10,26,147,71,191,150,76,122,244,139,201,93,20,242,206,230,94,205,122,237,123,168,152,76,129,
+138,250,105,245,86,10,195,163,201,133,50,38,197,44,206,99,71,83,145,154,82,226,232,112,41,161,166,177,26,175,193,186,188,47,70,69,158,58,142,184,138,189,107,215,43,104,187,112,82,114,243,164,3,146,59,
+31,250,114,114,19,245,232,137,148,104,39,61,182,123,210,143,66,30,5,185,95,243,146,94,172,83,246,208,168,235,156,85,29,31,84,154,115,86,177,184,163,29,141,31,163,211,101,180,3,116,116,195,224,24,93,13,
+118,110,135,193,10,216,164,200,229,148,14,63,252,251,169,196,241,186,107,218,37,55,221,10,82,251,192,158,201,51,207,238,150,76,125,98,183,100,206,236,157,147,197,243,119,79,58,180,61,72,121,211,146,58,
+97,15,13,52,177,244,8,103,4,251,224,175,3,9,200,146,105,193,31,26,165,179,132,105,24,235,92,118,212,141,222,209,41,64,109,151,127,79,40,203,210,234,173,99,118,79,214,130,210,254,248,229,237,146,223,253,
+168,81,242,203,183,183,73,126,207,215,223,190,215,40,121,189,108,251,100,112,255,227,173,55,191,203,18,183,26,175,40,219,110,187,237,70,115,52,236,133,132,187,109,164,211,98,4,238,68,237,186,8,189,228,
+98,154,206,252,215,240,225,77,72,242,123,145,240,11,91,246,35,177,239,203,175,215,247,61,116,217,200,146,224,142,114,240,253,126,13,216,67,29,180,74,89,71,89,169,176,58,45,151,161,104,233,169,177,62,142,
+182,18,99,141,141,214,8,26,171,154,207,191,163,186,111,125,61,249,187,201,204,199,224,133,151,55,74,126,241,70,163,212,216,119,86,109,159,220,112,141,245,230,67,210,158,19,184,245,31,17,178,45,171,85,
+246,208,53,51,214,217,160,78,130,72,211,224,160,210,12,98,26,173,142,82,17,154,210,98,13,142,40,29,236,161,35,235,75,208,88,231,184,203,151,243,93,57,178,94,18,4,154,197,243,115,206,252,92,242,204,67,
+141,146,151,94,104,148,172,123,113,155,164,79,183,125,147,195,14,253,78,185,106,143,114,235,95,248,249,229,172,237,175,208,176,117,89,174,194,225,213,147,59,149,239,135,61,74,69,146,63,159,96,178,22,215,
+92,195,229,5,180,31,234,197,27,30,64,116,237,151,110,241,100,15,221,8,100,251,30,70,219,47,141,206,71,241,84,195,218,145,195,101,202,15,237,40,203,64,168,182,53,10,107,108,52,106,213,88,151,43,71,213,
+104,174,36,81,87,86,146,108,196,87,111,169,66,192,231,152,35,247,76,174,25,178,109,50,184,247,23,146,35,15,255,106,42,122,11,25,148,174,95,107,236,225,7,25,246,48,208,154,96,140,2,206,170,200,104,231,
+181,129,76,220,206,64,20,17,218,121,171,43,59,103,149,19,59,162,6,55,21,182,246,111,209,43,92,218,84,223,43,94,83,111,121,192,254,251,38,231,156,181,79,10,80,43,80,243,101,56,191,213,120,42,86,171,53,
+246,112,117,30,123,104,162,160,33,49,119,3,167,205,130,86,129,227,249,103,170,221,5,65,204,184,156,179,26,235,168,58,226,234,172,93,186,92,179,53,50,218,250,186,150,251,119,252,42,26,20,236,97,180,225,
+85,229,163,193,2,31,106,51,93,194,152,110,255,226,5,188,199,75,90,133,168,85,74,220,219,81,45,228,237,89,238,210,184,91,111,230,204,60,230,216,114,66,250,135,35,70,156,67,222,123,25,107,167,167,20,157,
+211,147,10,55,239,89,246,80,109,180,70,184,254,70,215,59,131,85,176,135,49,151,179,193,204,159,119,244,98,190,6,6,32,242,227,72,74,148,71,103,75,215,113,221,217,53,221,37,79,30,49,216,67,93,219,81,13,
+89,83,157,176,135,211,11,176,135,38,25,46,65,97,116,116,163,212,48,231,174,65,203,199,63,143,209,118,173,54,169,112,36,29,57,163,184,40,144,73,139,115,61,238,18,136,174,150,254,253,104,62,39,170,163,0,
+213,17,86,146,172,104,173,206,216,195,103,11,176,135,190,249,104,204,170,230,57,139,225,57,50,241,61,221,209,145,147,105,210,141,53,58,136,84,3,155,47,45,64,75,35,124,180,19,12,117,188,63,227,58,175,166,
+171,222,216,67,207,160,178,236,161,25,80,140,78,32,120,225,134,209,63,45,219,44,206,245,212,145,117,73,114,77,214,232,236,158,57,182,145,17,3,162,21,104,188,24,191,175,36,177,34,246,80,183,118,14,215,
+26,123,184,184,0,123,104,234,232,142,40,139,225,69,119,105,149,238,82,43,174,189,174,169,26,107,158,172,193,177,190,106,68,182,209,163,203,92,156,142,248,235,120,124,25,254,92,232,171,77,53,235,188,239,
+225,43,25,246,208,156,54,189,46,134,29,140,31,196,145,52,232,232,178,70,90,215,91,215,82,71,213,77,191,9,133,187,163,104,140,238,70,66,176,67,151,215,93,131,81,50,242,71,163,199,128,178,253,42,165,230,
+255,165,59,139,6,212,11,123,232,81,170,167,139,130,89,30,225,248,120,75,146,68,182,163,236,186,105,162,16,204,161,163,234,118,208,220,217,121,43,164,101,116,54,125,148,104,209,3,156,219,6,183,224,14,29,
+221,32,74,163,209,163,46,42,108,25,226,114,215,222,122,99,15,31,205,177,135,26,233,19,236,161,203,71,108,1,77,32,92,107,53,216,204,201,209,213,141,77,54,178,73,134,243,56,218,101,27,144,226,88,200,17,
+214,88,65,75,31,165,255,108,2,202,153,8,149,242,133,216,67,151,42,151,77,244,153,31,147,130,150,240,249,214,1,142,44,101,253,245,102,114,5,51,123,109,80,106,193,173,238,97,169,40,225,104,102,57,73,248,
+31,71,140,56,129,205,195,153,140,216,185,60,141,113,211,51,147,103,96,15,59,228,250,30,6,123,232,136,56,170,206,213,192,240,178,151,13,105,100,60,209,28,221,151,162,55,68,191,67,225,44,215,112,143,131,
+2,180,12,186,212,209,13,218,69,151,14,244,221,23,17,56,158,235,177,75,85,173,247,61,148,61,244,220,56,219,247,208,200,109,202,24,247,237,56,103,77,21,229,148,28,221,64,104,179,220,161,6,59,207,205,168,
+140,232,26,236,178,20,174,29,164,184,163,237,255,21,125,15,93,119,55,197,30,250,179,120,192,187,124,166,82,118,87,203,182,221,118,219,177,140,172,119,206,43,133,218,109,131,17,230,178,131,253,88,38,230,
+51,202,107,185,120,168,244,140,51,78,35,225,63,158,192,115,114,90,235,9,246,112,114,30,123,168,27,9,68,154,53,57,178,113,50,25,173,255,178,220,161,220,82,52,120,116,132,53,216,228,195,164,35,110,118,8,
+208,82,99,141,206,91,156,61,92,1,123,120,99,134,61,116,15,42,123,232,135,139,78,120,209,250,47,26,180,250,213,101,201,32,230,220,54,122,59,13,12,92,70,119,147,18,35,118,220,26,17,91,78,163,113,85,216,
+67,97,176,58,233,123,24,236,161,21,129,66,236,161,163,18,231,86,26,232,40,251,213,23,224,163,193,110,22,226,26,26,3,151,243,216,160,231,190,57,58,212,26,192,60,199,170,42,123,232,186,92,235,125,15,101,
+15,163,176,101,249,227,150,10,216,67,215,103,163,175,87,188,185,132,57,183,157,207,186,179,155,123,185,98,49,60,163,186,35,236,26,110,148,54,72,105,176,163,235,238,167,65,176,135,81,216,154,9,123,248,
+4,236,225,13,121,236,161,163,18,251,82,151,15,35,167,65,38,168,210,104,223,25,205,29,77,84,60,80,224,100,34,93,122,220,226,109,14,123,200,70,162,246,217,67,235,179,139,97,15,159,131,61,156,6,123,104,173,
+199,242,199,117,176,135,131,243,250,30,58,66,62,113,49,144,59,35,179,43,71,59,246,189,30,212,123,96,47,77,26,23,26,68,52,22,231,169,42,123,232,154,108,223,67,153,8,188,170,140,101,108,6,17,217,206,32,
+118,3,81,216,186,107,40,253,10,74,30,8,231,59,114,8,214,146,202,223,10,182,102,107,232,54,185,130,15,254,135,158,20,174,86,2,103,205,134,61,220,160,176,5,123,56,46,143,61,52,19,114,191,234,209,75,244,
+56,116,173,76,79,44,120,220,245,200,41,153,27,59,79,179,160,165,231,86,13,134,61,188,25,246,208,250,172,37,75,11,91,207,194,30,62,9,123,104,249,227,106,216,195,190,57,246,208,251,244,68,229,29,37,207,
+156,76,18,42,98,15,3,204,50,137,168,42,123,232,11,43,192,30,214,126,223,67,43,239,22,163,173,207,206,132,61,124,6,246,48,45,108,81,235,185,11,246,112,52,236,225,32,216,195,78,159,38,246,208,202,251,45,
+176,135,182,245,124,28,246,208,42,158,133,173,219,97,15,111,21,199,3,195,27,14,123,216,7,246,176,61,236,225,185,246,61,252,52,176,135,221,17,152,88,159,181,100,121,59,236,161,198,90,235,25,15,123,168,
+209,99,97,15,135,194,30,118,135,61,188,8,246,240,36,216,195,239,195,30,30,12,123,120,192,55,171,206,30,58,247,3,142,214,229,69,104,237,104,105,147,71,138,233,63,96,186,204,35,48,93,195,115,38,207,17,60,
+251,167,105,36,2,245,106,55,122,228,47,109,75,194,190,31,209,115,32,243,113,30,153,208,219,20,172,75,153,119,171,172,188,91,140,182,62,251,24,236,225,157,176,135,22,182,198,194,30,142,133,61,28,13,123,
+120,45,236,225,149,176,135,125,96,15,59,192,30,54,133,61,188,0,246,240,240,173,153,61,180,24,61,8,246,208,146,229,36,216,195,91,97,15,199,195,30,94,11,123,120,13,236,225,85,176,135,67,97,15,251,193,30,
+118,129,61,188,2,246,240,180,42,178,135,174,233,98,241,174,179,28,224,253,218,46,180,54,102,181,87,105,174,125,167,35,123,94,110,131,32,87,97,191,210,29,107,220,96,138,127,100,123,118,30,95,225,107,7,
+254,163,169,214,109,216,108,172,37,135,46,97,164,87,89,140,182,62,107,201,114,60,236,225,36,216,195,219,96,15,199,194,30,94,3,123,120,37,236,225,16,216,195,129,87,241,107,216,195,102,85,96,15,205,141,
+115,236,225,239,183,10,246,112,48,236,225,24,216,195,219,97,15,111,133,61,28,15,123,56,26,246,112,60,236,97,151,10,250,30,198,149,55,110,70,108,128,158,215,247,112,235,97,15,59,228,216,195,254,176,135,
+3,96,15,187,86,206,30,150,176,206,46,182,1,58,35,157,94,85,97,6,133,151,13,206,101,81,238,113,237,66,107,128,218,67,55,230,169,180,151,90,149,197,165,27,244,240,37,144,241,143,11,101,125,137,231,196,157,
+119,222,121,36,89,211,60,34,232,26,43,239,22,163,57,94,89,229,117,169,100,90,37,94,170,233,61,147,150,63,200,175,63,96,94,126,232,157,117,68,217,15,48,228,61,190,255,58,145,119,149,199,50,100,88,75,220,
+188,51,210,107,209,120,172,224,207,76,21,139,236,97,46,56,125,182,208,210,179,73,150,170,166,248,140,255,33,143,228,152,16,150,237,250,188,207,185,177,149,119,47,194,181,62,235,117,169,222,32,106,97,203,
+123,38,153,159,233,109,132,236,162,150,51,218,203,153,167,43,88,250,74,61,112,227,121,54,119,44,211,148,127,231,4,158,227,120,220,4,88,12,115,35,32,232,149,182,3,220,156,207,190,89,46,93,232,63,202,25,
+94,100,15,121,17,86,222,139,236,97,238,69,248,50,124,12,126,130,149,222,1,109,196,53,45,212,91,182,231,217,118,115,92,183,198,137,71,109,254,167,91,242,223,170,181,57,188,37,141,168,206,255,93,47,6,23,
+217,195,34,123,88,100,15,139,236,97,145,61,44,178,135,69,246,176,224,146,91,165,117,56,7,90,94,142,2,231,137,63,255,249,207,107,169,230,47,164,0,86,100,15,87,173,26,130,64,116,72,218,181,231,141,55,70,
+160,152,29,155,182,59,81,133,43,123,184,12,246,112,30,242,197,165,176,135,139,97,15,103,162,251,154,15,123,248,34,236,225,50,4,51,47,112,127,245,107,175,181,66,210,212,56,45,190,47,92,120,60,50,197,99,
+208,116,173,239,123,184,85,177,135,173,91,95,144,150,94,84,11,40,134,177,101,152,82,9,123,172,181,109,219,52,25,138,58,232,73,216,195,18,216,195,233,121,125,15,163,68,91,2,123,248,30,236,225,221,159,38,
+246,176,55,125,15,213,144,60,148,199,30,62,15,123,88,10,123,88,2,123,88,70,109,235,129,134,202,30,42,107,82,122,20,215,160,135,28,73,38,49,216,67,5,103,106,190,252,217,108,223,195,81,176,135,15,160,52,
+120,158,226,123,9,236,225,139,176,135,211,41,209,206,160,144,183,148,218,214,77,13,145,61,204,222,236,175,177,10,207,226,162,108,127,93,136,61,84,14,165,225,178,135,237,219,95,156,60,0,123,184,0,246,80,
+99,159,129,61,124,202,170,37,236,225,66,216,67,175,143,109,48,236,161,210,5,181,26,138,93,66,67,169,112,37,203,32,42,133,80,21,160,130,71,197,93,176,135,94,223,172,225,130,152,195,135,247,76,198,195,30,
+62,68,241,93,99,31,135,61,124,12,246,240,73,216,195,231,182,52,123,168,88,52,216,67,165,72,10,86,20,158,106,188,58,14,245,151,33,122,81,195,165,20,81,133,158,58,76,181,91,113,231,188,1,77,41,132,47,64,
+205,72,199,78,237,146,235,97,15,39,195,30,62,10,123,56,153,18,237,131,84,45,159,162,144,247,216,150,102,15,53,76,193,183,82,164,44,168,165,212,65,49,139,35,154,109,250,152,69,241,156,199,26,107,52,207,
+239,123,40,123,120,61,236,225,100,138,239,15,80,143,190,151,18,237,189,176,135,211,96,15,135,111,41,246,80,101,172,110,171,112,92,101,187,114,36,117,28,42,245,84,222,101,155,62,70,75,79,73,180,104,39,
+166,14,68,41,163,222,161,158,186,16,123,120,29,236,225,125,176,135,15,194,30,222,15,123,120,31,236,225,189,20,242,26,215,7,123,104,45,40,186,233,168,160,115,46,42,46,83,37,175,225,209,179,37,160,75,93,
+58,196,107,106,184,116,233,124,36,79,60,207,239,169,224,19,29,80,5,100,93,216,72,46,123,56,20,246,240,118,216,195,73,176,135,183,82,143,190,153,18,237,253,84,45,251,215,53,123,24,198,58,63,99,142,42,16,
+245,67,70,135,60,95,128,238,173,188,80,213,142,163,172,193,202,152,162,89,156,116,139,252,146,132,90,180,246,204,242,135,70,242,245,236,225,225,41,123,216,175,95,175,100,216,85,251,37,55,82,116,191,145,
+226,251,4,234,209,119,82,162,157,120,251,215,121,49,199,212,29,123,152,197,222,99,148,179,4,139,238,45,160,225,72,59,159,21,132,59,143,195,224,224,15,3,154,14,131,29,221,144,26,27,216,68,124,28,97,85,
+65,206,107,163,185,26,146,145,200,42,52,118,220,205,123,37,227,111,251,60,174,189,59,153,91,29,247,61,84,245,154,237,151,22,56,94,116,192,114,164,37,197,117,109,21,119,34,60,70,99,101,136,106,168,35,96,
+57,194,89,74,77,67,163,187,165,98,114,255,141,244,14,219,3,191,155,6,181,238,93,155,36,195,71,124,14,185,212,158,201,152,155,246,74,38,240,245,174,135,118,75,134,82,162,173,147,190,135,70,211,112,101,
+93,56,136,180,252,6,113,206,107,231,180,163,172,91,171,154,87,117,235,250,171,219,234,206,193,12,187,52,57,111,163,39,132,47,37,128,75,61,67,145,155,220,82,255,206,59,38,247,140,217,45,153,253,240,14,
+201,235,139,26,37,47,47,220,33,41,157,189,83,242,202,162,237,147,210,57,59,39,151,92,112,240,199,86,45,107,157,61,116,116,53,218,104,26,46,157,111,120,144,166,6,49,201,23,221,90,192,195,57,156,5,46,53,
+90,131,141,220,190,12,129,76,53,153,174,217,190,32,245,212,42,222,85,205,30,121,216,94,201,13,131,26,37,143,223,214,40,89,61,179,81,242,193,178,70,201,175,86,67,155,174,108,148,60,253,192,110,73,155,230,
+39,124,98,33,157,185,255,122,141,250,30,230,179,135,102,80,89,34,205,209,148,55,210,157,125,130,80,139,81,119,164,157,203,202,15,53,204,209,117,254,186,36,5,108,169,161,174,211,46,95,202,139,13,114,146,
+49,6,44,129,172,245,221,4,246,75,250,116,104,148,140,30,216,40,121,242,246,70,201,194,71,182,77,198,12,219,51,57,245,196,111,167,243,156,206,61,255,64,11,242,14,57,250,43,53,234,123,184,38,195,30,106,
+172,82,225,16,117,107,140,9,71,180,15,10,248,50,139,216,26,196,92,155,117,79,3,86,24,171,11,59,154,106,168,125,25,194,150,26,105,135,143,0,46,109,63,164,82,79,217,162,170,248,54,77,27,37,93,90,238,144,
+180,60,127,151,228,176,239,125,57,29,121,101,142,10,90,157,227,136,90,223,103,21,89,83,35,246,208,205,123,62,123,24,40,94,244,40,140,110,120,186,176,17,218,160,165,161,142,190,238,173,71,152,110,6,22,
+144,237,106,169,66,62,12,52,81,209,253,253,89,19,23,151,182,92,231,217,148,110,57,235,228,93,146,227,143,254,74,242,213,175,236,157,190,8,129,75,129,106,163,185,23,160,168,52,168,113,223,195,25,5,216,
+67,231,165,200,93,161,39,24,66,231,95,120,128,174,174,39,56,170,38,33,209,159,212,8,174,198,58,160,175,232,110,233,215,160,221,140,244,26,166,16,245,187,223,93,207,12,171,211,84,164,170,171,203,34,214,
+106,223,195,233,121,236,161,9,65,144,160,126,176,248,181,233,164,224,70,80,107,18,163,209,124,89,35,53,54,128,14,191,234,21,78,13,189,69,118,209,39,110,139,112,57,138,222,198,254,140,46,45,217,18,196,
+184,198,198,8,215,122,223,67,207,160,130,61,244,130,17,55,240,206,81,221,205,145,209,245,52,204,52,210,172,74,68,86,137,191,193,39,122,15,7,206,35,45,30,77,164,162,213,103,118,13,207,34,245,65,170,250,
+85,85,110,176,135,170,105,253,189,70,251,34,106,189,239,225,139,25,246,16,81,90,154,230,117,237,218,53,13,94,97,160,24,158,201,133,129,201,0,20,187,35,229,255,113,81,137,35,236,92,117,100,179,247,245,
+248,235,136,232,65,152,6,132,29,145,95,23,118,132,235,133,61,124,181,0,123,232,94,213,139,131,28,73,131,142,134,42,239,55,155,114,121,113,189,213,64,19,10,71,215,175,70,100,127,222,249,239,220,118,100,
+227,100,36,219,197,210,23,16,237,61,93,239,185,121,34,29,221,122,99,15,61,74,245,116,49,216,67,79,30,101,15,157,175,142,166,57,111,22,195,211,176,48,216,117,214,17,246,171,107,173,75,143,65,202,249,233,
+232,153,196,104,108,62,104,41,165,230,247,124,33,6,37,13,174,55,246,208,115,227,199,242,250,30,186,99,210,61,189,107,199,145,53,43,18,211,209,40,89,37,71,213,140,202,199,95,155,69,249,231,122,130,243,
+216,224,100,224,210,149,93,219,243,65,75,73,23,31,21,246,34,121,50,17,245,202,30,62,155,97,15,61,104,179,253,159,209,213,185,234,136,202,37,229,99,120,17,168,162,229,189,155,1,13,54,184,25,240,12,70,209,
+202,51,232,210,0,45,61,242,249,204,103,62,83,206,30,106,180,107,173,203,79,189,176,135,30,146,231,179,135,30,176,199,253,28,26,108,128,114,115,31,189,14,205,170,252,181,223,243,207,117,123,13,14,238,208,
+211,145,96,136,195,165,29,85,123,150,42,12,223,102,155,109,202,217,195,202,250,30,214,9,123,248,72,1,246,208,115,230,224,133,53,56,90,255,105,168,121,115,92,55,19,144,86,144,165,38,21,174,187,102,101,
+142,114,92,119,19,238,173,86,122,151,93,118,41,55,216,165,72,226,197,121,28,100,169,35,237,239,79,59,237,180,20,9,36,57,41,81,171,137,55,148,32,123,82,209,167,146,207,59,231,119,222,160,152,166,38,138,
+15,254,32,9,196,50,214,200,18,254,242,127,14,29,122,12,35,114,92,122,169,166,181,158,210,210,51,18,217,195,155,10,244,61,244,40,214,75,73,98,132,131,59,20,197,115,111,43,132,233,75,49,184,233,17,166,143,
+38,37,102,80,145,162,106,116,32,181,186,183,6,70,147,71,183,135,118,218,114,131,96,240,146,146,209,88,115,107,51,173,58,101,15,173,8,120,72,110,157,200,163,84,15,219,236,92,167,75,154,47,27,100,52,72,
+99,195,224,236,101,66,70,105,131,157,41,165,6,155,69,153,114,6,78,235,114,228,53,51,13,134,61,180,252,113,91,1,246,80,20,207,199,196,192,15,28,192,101,128,150,6,44,163,185,46,29,35,236,122,236,60,142,
+107,45,156,191,13,166,239,161,236,161,133,173,57,176,135,79,195,30,142,45,192,30,106,176,128,150,203,135,253,133,53,210,36,196,175,70,243,104,238,104,238,173,203,66,168,36,102,110,142,110,192,209,129,
+208,86,181,239,97,157,177,135,75,96,15,231,192,30,62,7,123,104,173,199,242,199,232,12,123,232,82,101,130,16,205,30,221,221,120,28,228,86,207,121,107,218,105,142,237,239,173,44,32,46,79,59,71,215,2,123,
+248,235,90,103,15,123,83,184,122,9,56,107,30,236,97,182,176,245,12,236,225,132,12,123,104,6,230,233,162,59,154,232,113,104,112,113,137,49,154,250,120,122,97,94,236,222,54,0,203,24,213,205,100,15,87,19,
+180,86,219,143,41,135,9,216,213,82,68,64,125,117,185,182,186,66,201,3,111,235,107,4,161,113,68,222,82,150,136,149,28,177,172,57,244,208,67,62,185,13,246,208,250,172,37,75,11,91,51,97,15,159,133,61,180,
+252,113,45,236,97,255,188,190,135,206,99,79,35,140,164,133,216,67,131,210,110,187,237,150,26,239,20,168,42,123,24,125,15,137,216,127,227,215,175,219,86,140,100,164,148,36,229,110,12,12,178,116,255,156,
+152,188,156,133,168,208,96,126,112,27,222,244,209,24,253,16,73,193,90,182,131,165,172,123,107,100,15,45,70,91,159,157,13,123,56,29,246,208,194,150,181,158,123,96,15,199,192,30,14,129,61,236,220,245,24,
+42,127,173,19,171,128,70,111,231,170,129,40,191,239,161,193,45,50,39,179,39,127,237,207,229,247,41,213,67,244,0,51,45,141,245,140,11,99,255,206,252,175,251,190,135,178,135,183,193,30,174,192,189,159,134,
+61,180,138,103,97,235,110,216,195,59,192,241,172,8,120,72,62,96,216,62,201,101,176,135,231,53,57,44,57,169,150,217,67,46,66,208,216,119,197,241,56,210,121,51,7,109,245,101,160,194,149,213,97,127,182,218,
+40,30,174,182,23,27,236,158,140,210,243,236,138,222,3,195,91,78,151,246,53,7,28,240,245,143,123,194,30,90,159,181,100,121,55,236,161,198,90,235,177,252,161,209,19,97,15,71,140,162,104,13,123,120,9,236,
+225,201,167,237,158,28,14,123,248,61,217,195,154,247,61,124,123,139,177,135,214,103,159,128,61,156,4,123,104,97,203,242,199,68,216,195,177,176,135,163,97,15,71,194,30,14,224,24,245,114,216,195,139,96,
+15,47,130,61,60,162,154,236,97,156,102,48,205,254,228,156,181,125,167,35,155,3,45,189,202,81,28,239,104,158,111,230,84,245,5,219,21,85,73,167,37,192,65,48,216,159,167,47,41,220,44,174,149,90,199,82,179,
+146,8,188,12,87,250,64,246,112,8,236,161,37,75,171,120,22,182,110,132,61,188,1,246,240,58,216,195,107,97,15,71,192,30,14,132,61,236,6,123,216,29,246,240,244,179,246,40,39,197,141,216,62,65,145,58,87,157,
+167,233,161,59,115,220,124,218,254,194,252,127,89,246,112,205,22,103,15,173,207,90,178,188,17,246,240,126,216,195,187,96,15,111,132,61,188,30,246,240,42,216,195,225,176,135,67,96,15,175,134,61,108,158,
+199,30,186,132,85,212,247,144,224,244,123,140,125,173,193,247,61,180,176,53,1,246,112,18,236,225,93,176,135,55,195,30,142,131,61,188,25,246,176,123,142,61,140,123,103,179,125,15,205,205,221,245,176,164,
+229,179,135,101,91,77,223,195,203,96,15,123,209,247,112,32,236,225,32,216,195,238,57,246,48,119,123,248,63,11,244,61,44,178,135,185,132,194,101,199,253,173,4,156,75,143,200,79,149,251,169,85,41,104,85,
+64,162,109,195,127,36,209,105,19,55,51,154,19,192,238,6,179,100,77,103,125,92,225,69,184,50,198,150,44,57,176,127,141,35,221,117,222,51,105,249,131,114,141,215,87,45,231,140,123,133,63,67,42,250,18,133,
+175,87,189,255,138,244,112,133,183,36,185,121,103,227,63,29,52,239,74,254,237,38,185,245,85,67,131,40,21,140,46,178,135,149,33,61,155,61,194,27,101,48,235,161,203,34,123,152,155,103,69,246,48,247,34,138,
+236,97,101,115,176,166,127,94,107,115,184,166,31,164,190,254,126,189,24,92,100,15,139,236,97,145,61,44,178,135,69,246,176,200,30,22,217,195,34,123,184,81,175,150,66,217,14,197,236,93,145,9,182,22,180,
+252,232,163,143,94,165,176,189,16,153,194,42,180,24,159,244,232,209,132,226,88,127,106,190,131,169,27,15,65,43,89,57,123,56,31,249,226,50,216,195,165,176,135,179,209,125,45,130,61,44,129,61,92,241,127,
+141,61,28,142,58,232,89,216,195,21,176,135,51,144,85,204,155,23,160,229,145,229,215,195,202,30,254,16,246,240,222,173,133,61,180,236,162,174,75,241,103,96,119,138,98,108,10,167,20,74,105,191,236,225,149,
+176,135,143,194,30,78,207,244,61,12,246,112,5,236,225,75,212,182,30,109,200,236,161,50,69,149,1,106,174,44,118,171,209,244,62,234,96,15,85,243,89,113,204,103,15,175,135,61,156,140,210,96,46,197,247,101,
+176,135,37,176,135,179,41,209,206,165,144,183,154,218,214,237,13,145,61,140,174,120,234,63,100,15,85,230,104,108,92,139,174,24,38,219,247,112,61,115,216,58,53,62,216,195,135,97,15,23,195,30,106,236,44,
+216,195,153,84,45,103,195,30,46,135,61,180,132,219,160,216,67,171,250,106,42,229,29,212,109,40,60,211,104,165,135,10,92,188,77,92,49,155,170,89,117,33,158,73,235,222,114,197,234,71,130,61,188,25,246,112,
+42,197,119,141,157,6,123,248,20,236,225,76,216,195,5,212,182,90,109,201,190,135,193,30,106,168,82,164,32,211,84,221,105,180,106,29,245,89,113,189,186,210,68,245,91,65,177,168,14,80,246,160,106,215,155,
+201,21,164,59,239,59,193,30,142,131,61,124,28,246,240,41,216,195,199,41,209,78,161,106,249,28,133,188,167,183,52,123,168,44,88,13,165,250,43,111,5,15,58,77,153,131,35,171,46,83,118,73,25,147,82,68,133,
+107,114,74,178,15,146,46,122,129,134,42,67,178,247,97,4,187,174,176,135,227,96,15,31,167,248,254,24,245,232,135,41,209,62,12,123,56,23,246,240,170,250,100,15,117,85,21,177,206,87,71,86,247,12,36,192,17,
+13,61,181,82,195,48,88,129,139,122,204,232,1,97,75,147,104,252,168,151,200,56,112,205,115,194,85,114,27,244,61,236,68,223,195,177,176,135,143,192,30,78,129,61,124,20,246,240,81,216,195,135,41,228,157,
+83,31,236,161,115,205,15,24,45,196,28,93,65,143,232,176,163,142,50,59,202,129,227,9,116,168,202,115,132,229,31,84,218,106,180,56,143,234,61,95,156,228,155,42,218,252,190,135,87,194,30,78,130,61,124,8,
+246,112,18,245,232,187,40,209,62,70,213,114,112,93,179,135,174,161,97,108,140,110,182,59,158,31,90,145,154,65,75,247,22,9,208,173,37,86,156,195,10,213,84,235,105,172,134,6,146,39,161,38,226,19,192,165,
+75,89,62,123,120,21,236,225,29,20,221,239,160,248,126,27,245,232,251,41,209,222,94,31,236,97,176,73,26,87,168,95,154,163,29,252,97,24,172,176,212,214,38,202,17,29,93,231,109,52,140,211,216,44,112,233,
+252,214,253,131,61,212,213,141,230,87,192,30,94,135,172,66,99,111,134,61,188,13,246,240,209,250,96,15,99,100,85,182,231,27,28,44,131,163,108,16,115,46,27,173,29,97,13,86,147,25,252,97,176,135,49,186,186,
+119,116,239,81,197,39,53,163,32,198,58,178,17,188,67,135,75,89,222,246,76,141,189,9,246,112,34,74,131,135,168,71,143,168,107,246,208,57,22,74,216,160,209,242,137,52,231,181,65,76,183,86,76,170,236,80,
+145,184,1,75,195,194,88,71,54,186,91,58,178,217,134,143,170,247,84,238,168,251,82,229,167,209,93,186,124,149,151,252,121,36,139,208,165,40,13,238,164,248,126,27,245,104,132,113,31,213,25,123,168,113,234,
+36,21,134,26,168,116,225,192,241,178,221,242,252,190,115,89,92,192,222,14,46,75,26,228,114,228,92,141,17,213,208,232,250,17,125,33,156,235,122,132,73,136,119,195,31,248,221,111,164,170,218,38,168,131,
+6,12,216,149,0,7,82,139,172,98,252,248,47,176,238,239,90,119,125,15,213,52,7,137,22,32,150,70,107,112,180,255,202,162,182,142,180,148,169,6,187,6,71,195,229,64,242,116,111,181,213,89,245,173,114,228,0,
+46,77,98,52,248,27,251,239,147,116,3,195,235,217,126,175,228,170,254,59,38,247,222,184,75,242,224,237,187,38,55,142,223,147,23,186,51,115,252,220,127,122,23,174,37,218,90,103,15,101,22,28,97,215,91,159,
+104,215,23,29,237,28,121,95,64,244,65,243,5,153,105,25,176,12,84,186,176,163,107,240,114,137,82,49,175,16,85,15,80,87,29,125,33,52,54,90,38,168,234,107,125,126,163,164,119,219,70,201,88,128,203,103,110,
+133,50,125,186,81,242,195,249,52,108,157,179,109,50,229,246,3,20,173,213,188,239,161,155,247,124,246,80,69,172,31,38,104,52,165,192,6,39,131,140,115,214,151,144,109,45,164,225,102,94,17,176,28,77,215,
+99,13,140,198,23,106,169,141,228,206,117,19,21,89,40,119,84,226,59,161,246,57,238,251,219,39,157,154,53,74,250,95,214,40,185,125,68,163,228,249,123,26,37,75,30,221,46,121,252,246,221,146,107,135,30,173,
+193,63,165,161,108,153,119,225,82,184,187,133,231,80,158,189,203,207,125,88,50,134,17,254,231,243,31,45,67,202,251,139,235,174,59,151,15,210,150,13,121,71,62,136,79,123,242,214,54,169,193,238,100,220,
+0,248,104,160,57,114,92,97,161,164,223,121,234,247,125,252,181,6,250,2,76,64,12,94,186,189,174,235,188,20,205,83,97,43,73,170,171,155,75,219,206,68,45,181,73,138,222,224,99,96,84,136,234,232,42,55,62,
+251,164,237,146,203,46,106,148,116,224,185,236,162,29,146,102,231,238,153,156,114,252,55,105,218,250,189,52,7,39,104,253,10,181,238,74,47,254,197,208,73,60,135,241,236,91,110,48,31,106,24,217,207,2,222,
+234,50,228,7,24,220,152,157,76,27,182,96,118,183,108,143,225,173,249,16,173,210,27,147,220,192,199,126,214,175,26,100,218,232,99,98,225,7,244,195,250,193,53,32,104,53,141,115,77,213,88,151,170,88,159,
+245,8,95,140,94,226,11,139,199,151,24,143,47,213,191,19,125,15,207,62,105,199,228,172,147,246,74,190,117,192,231,147,125,246,94,255,34,212,117,41,91,150,132,65,200,246,11,12,166,103,212,25,26,172,224,
+244,240,180,68,27,231,88,184,95,95,62,16,47,123,65,41,39,15,31,142,28,121,22,129,165,5,115,168,45,70,107,120,139,244,12,202,229,192,148,207,77,189,68,154,155,120,71,77,57,127,208,105,234,162,229,13,157,
+127,186,169,238,234,54,80,247,53,42,59,87,125,73,6,52,131,91,92,142,96,14,30,192,101,116,185,244,171,143,193,206,63,211,48,21,184,135,28,114,112,202,62,232,230,10,78,253,190,235,180,234,93,63,159,151,
+117,171,33,241,74,231,156,75,111,104,48,193,166,61,31,122,1,31,118,37,153,204,143,123,246,60,13,170,172,25,31,186,21,79,11,70,184,5,39,14,45,210,127,204,237,91,176,135,26,44,96,25,109,255,162,103,154,
+35,105,132,141,237,159,68,154,81,217,199,8,237,122,108,212,246,96,192,104,239,35,220,97,242,226,122,30,215,99,24,253,179,76,178,6,202,30,186,38,43,71,84,118,28,115,219,23,96,222,237,242,229,205,228,10,
+102,188,191,26,131,109,214,186,161,193,140,210,233,124,136,5,44,240,182,15,123,167,69,139,83,255,249,243,159,55,39,223,237,65,128,233,195,211,147,81,106,199,241,76,167,244,38,36,65,75,207,160,36,74,53,
+82,105,191,249,177,163,233,50,162,177,209,74,44,219,55,205,209,117,227,224,75,50,146,59,194,26,234,99,18,19,185,184,47,195,145,207,246,68,245,148,36,203,30,154,95,171,193,182,115,143,95,149,46,218,110,
+12,60,240,159,94,195,174,58,200,203,186,49,182,87,110,14,127,169,220,165,121,171,95,133,44,89,200,7,127,153,209,91,199,214,140,134,203,77,9,44,173,210,147,196,165,75,47,72,143,82,61,93,244,68,34,184,67,
+183,134,206,77,151,16,141,213,80,151,150,216,5,69,251,63,71,214,84,209,205,190,160,150,243,91,160,58,11,104,69,147,199,184,157,201,23,144,221,133,69,135,173,66,236,161,122,106,27,185,58,242,138,220,188,
+115,94,41,148,55,147,99,172,130,113,163,244,62,27,156,206,179,94,206,98,132,215,240,31,150,178,249,254,120,206,156,51,48,226,60,192,200,243,121,206,75,239,172,123,34,143,61,244,72,198,185,234,28,117,127,
+91,168,27,158,238,44,142,231,72,59,234,122,132,81,216,96,229,252,119,148,117,109,71,48,186,89,6,100,25,109,61,125,25,149,177,135,6,45,87,17,196,168,181,215,247,112,6,236,225,101,185,190,135,193,30,186,
+228,196,149,81,65,165,5,62,155,229,14,253,51,115,104,61,194,40,238,178,21,220,161,46,29,13,30,163,163,165,219,66,127,237,203,48,88,134,34,190,94,217,67,15,201,61,55,206,246,61,116,169,114,148,29,97,35,
+177,185,176,6,199,197,6,145,46,234,234,186,189,17,92,131,93,134,4,180,162,55,113,128,150,209,224,209,149,64,133,173,115,51,218,120,214,59,123,104,69,96,10,236,97,143,30,93,210,195,53,178,153,116,161,55,
+9,209,173,163,185,99,182,215,161,243,214,84,210,148,209,185,110,162,97,208,114,105,114,41,138,155,94,140,7,142,114,128,150,26,199,188,43,103,15,13,78,206,227,122,103,15,203,96,15,111,205,235,123,232,249,
+147,70,123,180,234,72,25,188,28,109,95,64,92,49,163,219,7,149,102,114,18,189,14,163,245,159,17,58,192,105,231,178,203,141,92,83,96,62,110,11,43,98,15,235,188,239,161,21,129,124,246,208,3,55,9,22,215,66,
+15,216,13,82,142,110,96,120,89,208,210,40,29,247,115,196,40,103,131,151,35,237,58,27,236,161,1,75,99,29,97,147,12,47,58,8,55,55,213,172,243,190,135,150,63,238,130,61,236,212,169,89,154,140,120,148,42,
+206,170,193,126,40,71,218,136,108,226,145,165,74,221,24,152,106,70,55,75,179,40,3,151,203,147,35,236,50,228,203,138,246,157,142,174,116,155,198,42,34,247,215,46,65,241,152,120,232,234,6,50,254,206,239,
+64,128,150,216,219,197,118,39,76,7,85,184,42,112,109,184,241,153,130,229,82,136,178,29,88,106,186,170,169,32,215,93,197,185,240,218,179,206,58,246,147,23,94,56,40,189,46,53,203,30,78,135,61,188,17,246,
+208,67,114,239,166,212,173,29,93,211,59,71,71,87,213,64,19,13,19,19,47,29,114,7,228,101,37,130,149,46,105,26,232,207,185,141,204,70,227,234,176,135,222,208,146,99,15,95,97,179,176,194,70,54,116,179,181,
+15,147,218,106,59,128,124,145,39,213,84,23,172,146,131,198,238,207,8,61,142,171,173,4,232,88,193,155,251,105,171,86,71,164,119,195,202,30,62,15,123,56,7,246,208,90,143,229,143,241,5,250,30,154,230,121,
+254,228,136,104,152,23,28,184,145,48,58,59,162,186,170,188,161,105,162,115,223,249,153,109,5,184,25,125,15,235,134,61,92,7,156,181,16,246,48,91,216,154,5,123,120,11,236,161,135,228,222,89,103,244,174,
+136,61,116,183,227,50,227,188,51,40,57,15,53,58,140,53,69,108,80,236,225,29,176,135,214,103,45,89,90,216,154,7,123,56,27,246,208,242,199,88,216,195,65,176,135,221,187,119,73,143,82,77,22,162,239,161,134,
+102,217,195,216,229,68,110,108,186,216,96,217,67,139,209,214,103,23,193,30,62,15,123,104,97,203,90,207,100,216,195,155,96,15,71,194,30,122,110,220,169,83,171,180,10,104,192,201,103,15,77,40,124,9,238,
+95,55,135,61,244,239,213,43,123,120,55,236,161,238,61,11,246,208,42,158,133,173,7,97,15,239,3,199,179,34,224,33,249,80,250,30,118,129,61,244,116,49,250,30,186,124,200,23,251,2,28,125,191,250,152,244,251,
+18,116,241,236,101,6,17,141,93,138,124,12,102,254,172,236,33,75,83,218,10,176,222,216,195,62,176,135,214,103,45,89,62,8,123,168,177,214,122,44,127,104,244,109,224,120,158,27,15,128,61,108,209,98,55,150,
+173,221,89,47,119,135,30,221,141,243,229,170,247,61,212,208,232,123,232,146,39,66,43,85,186,69,216,67,139,209,214,103,103,194,30,78,134,61,180,176,101,249,67,99,111,134,61,180,34,224,185,241,48,216,195,
+43,174,216,131,227,151,93,147,102,176,135,71,109,6,123,104,74,73,64,251,223,6,193,30,142,128,61,180,100,105,21,207,194,214,157,176,135,55,194,30,90,17,240,144,252,90,216,195,97,195,190,128,68,97,207,164,
+119,223,157,146,51,55,193,30,198,125,59,89,246,208,117,86,246,144,163,90,251,30,150,146,191,111,121,246,208,250,172,37,203,59,96,15,167,192,30,90,235,177,252,49,1,246,112,52,236,225,40,216,195,145,35,
+249,245,152,207,36,173,42,96,15,157,199,30,197,26,200,162,239,97,1,246,208,150,99,83,72,38,228,133,109,223,41,85,106,147,71,19,12,219,153,85,216,29,175,90,138,120,254,161,29,120,236,141,118,38,24,251,
+29,184,216,106,150,159,53,146,166,124,192,197,204,171,50,62,240,175,189,46,213,27,68,45,108,89,235,121,24,246,112,50,236,225,36,216,195,219,96,15,239,134,61,236,83,128,61,116,215,101,146,18,236,97,129,
+190,135,91,15,123,104,249,163,47,236,225,16,216,195,97,176,135,61,55,205,30,190,235,245,50,197,190,135,235,207,166,138,236,97,117,136,152,106,205,225,77,180,255,43,246,61,196,245,190,145,219,154,121,0,
+238,190,212,179,97,15,196,45,108,89,235,177,252,225,175,253,158,127,166,187,158,200,115,60,143,125,73,221,199,122,180,106,244,117,63,107,4,78,27,60,110,42,10,87,54,218,53,30,225,10,160,203,157,248,80,
+114,189,182,245,43,246,61,228,37,236,155,123,17,69,246,176,50,151,172,233,159,215,186,75,215,244,3,213,245,223,175,23,131,139,236,97,145,61,44,178,135,69,246,176,200,30,22,217,195,34,123,88,100,15,183,
+28,123,88,2,123,184,4,246,112,22,236,225,2,216,195,165,176,135,244,58,252,63,213,247,112,248,48,216,195,167,97,15,151,231,216,195,185,159,2,246,208,178,139,218,16,165,139,138,199,36,208,42,100,15,31,134,
+61,156,118,36,53,172,67,203,75,180,246,61,76,217,195,53,176,135,147,191,78,5,227,155,127,243,66,66,216,197,82,175,173,163,94,53,213,3,198,220,190,185,96,119,249,10,115,105,42,247,251,34,78,25,129,90,125,
+1,242,222,69,246,42,21,161,157,48,161,37,138,157,65,104,53,134,82,95,26,142,128,229,22,158,137,168,115,6,241,97,250,33,17,108,207,21,172,141,211,234,161,197,52,133,168,138,83,148,33,41,133,80,149,19,236,
+161,223,87,209,87,33,123,120,29,236,225,67,121,236,225,115,176,135,179,96,15,75,97,15,111,249,22,146,226,175,127,76,81,124,149,39,167,42,239,60,77,197,96,15,29,188,8,105,163,227,218,130,6,35,85,216,158,
+231,2,132,100,139,16,111,47,69,86,184,152,98,245,31,186,118,109,76,61,105,32,5,238,245,198,174,93,59,156,74,226,48,212,58,55,242,235,43,25,189,245,141,221,60,110,13,4,39,203,30,134,196,48,11,90,122,179,
+127,150,61,116,212,55,98,15,31,202,177,135,24,59,107,6,236,225,179,176,135,51,96,15,151,192,30,246,106,64,236,161,226,81,101,12,209,37,79,77,135,5,113,239,127,215,104,165,13,170,122,84,6,168,172,245,37,
+5,123,168,58,104,3,246,240,70,216,195,71,97,15,49,118,218,83,176,135,32,121,51,159,133,61,156,3,123,216,242,251,214,154,63,160,250,95,226,57,57,5,184,153,185,227,34,47,55,219,46,187,229,220,104,132,17,
+160,108,207,211,1,213,235,98,70,120,49,178,221,178,1,3,122,124,50,111,94,247,148,4,95,181,234,223,35,251,210,75,131,137,172,61,168,16,156,149,42,224,116,213,232,187,164,64,69,129,168,26,233,16,140,43,
+11,246,2,109,31,191,167,2,55,148,182,106,188,84,254,40,63,214,104,255,189,56,152,47,103,15,199,192,30,62,10,123,72,121,246,241,199,96,15,41,237,60,55,13,246,240,137,189,145,89,28,248,49,53,167,212,181,
+81,48,172,69,253,51,18,99,247,231,73,181,29,241,108,100,48,34,148,47,160,169,122,12,121,254,98,84,115,11,208,78,253,106,226,196,14,40,114,198,48,79,71,161,147,92,239,198,206,217,197,139,123,34,52,93,207,
+8,170,207,8,28,207,145,117,196,84,231,168,134,245,171,226,21,133,104,98,60,42,120,84,223,58,186,209,34,65,181,143,128,135,98,54,5,108,254,91,78,15,217,67,255,125,141,238,122,5,236,225,24,216,195,199,96,
+15,49,246,225,7,97,15,31,132,61,156,5,123,56,226,80,75,52,191,180,2,130,14,116,53,165,212,121,24,123,2,143,149,146,242,81,222,200,96,222,114,51,254,227,69,136,66,75,16,142,149,245,232,209,254,95,207,63,
+223,21,117,252,213,232,37,239,64,220,125,19,2,179,225,105,128,138,57,171,160,37,140,205,202,127,29,97,13,14,240,50,12,86,235,161,26,79,245,109,136,217,52,52,8,23,41,23,245,92,138,100,188,238,209,235,216,
+29,113,255,159,78,29,97,15,111,128,61,124,8,246,240,17,184,195,201,60,15,193,30,62,0,123,216,248,136,127,98,104,25,47,103,53,134,175,241,142,190,220,137,231,206,21,142,48,111,124,18,202,215,69,24,190,
+144,200,250,31,67,135,94,200,7,235,139,10,103,80,218,76,249,189,247,70,243,193,110,67,99,213,39,29,1,151,154,44,149,230,175,29,225,44,194,147,143,227,41,89,82,141,167,120,220,17,86,165,167,92,49,52,213,
+66,151,194,92,33,131,82,10,149,237,123,120,229,112,216,195,187,96,15,239,135,61,164,14,125,215,237,176,135,147,97,15,7,166,69,245,95,243,130,94,100,90,172,244,66,66,12,246,118,196,242,81,222,96,132,145,
+245,126,25,224,98,54,115,183,140,0,179,84,157,198,212,169,237,137,204,253,49,122,112,218,57,122,245,234,1,233,45,13,151,93,214,46,93,67,131,23,118,132,13,78,249,116,90,244,76,83,53,235,124,118,30,123,
+141,186,6,103,187,92,102,129,75,13,214,189,141,9,138,221,116,233,141,216,195,43,97,15,111,165,248,126,43,236,33,116,218,253,147,96,15,111,169,135,190,135,65,161,105,80,240,74,217,206,120,254,185,98,111,
+117,89,74,248,117,107,71,56,219,240,81,93,102,184,115,0,151,65,169,137,248,72,189,168,253,202,246,61,188,162,11,236,225,53,168,12,48,246,230,137,20,224,111,130,61,164,60,91,231,125,15,93,103,3,144,14,
+42,45,70,61,12,215,205,85,218,169,207,82,80,234,8,139,233,136,9,40,41,86,98,172,97,209,52,46,140,13,128,90,119,23,2,209,96,235,199,41,123,216,30,246,176,47,77,151,129,179,110,26,15,123,56,14,246,240,62,
+216,195,225,117,220,247,80,49,168,174,106,84,206,167,211,178,238,238,75,241,103,84,193,171,164,85,51,109,192,114,116,53,86,35,227,209,240,48,86,69,125,16,166,209,247,48,216,195,206,151,195,30,94,253,249,
+212,216,241,99,96,15,111,129,61,188,185,30,216,67,129,44,229,131,186,117,116,198,139,64,22,40,94,176,12,70,108,85,121,70,105,153,194,24,93,41,53,159,172,161,209,159,201,17,246,103,77,65,149,58,133,246,
+242,188,243,14,77,6,244,217,45,185,126,20,236,33,10,131,241,99,96,15,239,175,99,246,208,17,211,221,76,36,252,181,198,139,227,105,152,47,192,8,29,115,59,110,124,208,96,35,180,106,91,151,160,48,214,145,
+54,82,71,35,27,221,221,132,68,79,208,253,205,210,66,190,164,212,233,148,83,142,79,90,54,223,61,25,58,112,207,228,218,171,247,74,174,103,78,63,116,239,103,147,203,47,171,3,246,208,141,128,27,2,1,170,124,
+50,45,112,60,141,143,251,0,162,31,162,115,89,157,180,84,90,192,150,209,202,51,107,172,146,99,141,85,137,107,208,114,249,50,5,21,167,85,209,167,123,235,218,167,158,178,123,210,165,211,30,201,240,33,95,
+72,70,93,245,197,100,18,40,94,223,62,103,212,46,123,104,114,31,170,117,117,205,6,162,66,56,94,240,135,209,12,210,17,54,200,249,18,76,35,3,161,213,101,29,77,51,44,71,83,229,188,218,106,71,213,212,211,4,
+37,58,93,218,132,70,241,218,133,167,110,151,52,61,243,11,201,233,39,126,54,185,244,146,93,147,94,221,247,76,70,12,35,106,223,180,123,50,100,240,73,181,211,247,240,185,153,235,217,195,245,61,128,215,95,
+47,163,18,86,106,76,74,197,39,184,65,127,173,234,221,37,40,154,53,138,196,59,234,193,30,58,130,209,206,196,204,74,40,90,185,177,243,219,199,72,110,2,162,228,216,174,123,234,51,203,217,195,19,96,15,47,
+164,187,229,37,141,146,33,151,75,153,238,144,140,27,185,71,114,227,216,93,147,225,67,79,80,210,248,161,183,28,215,140,61,156,177,49,123,232,142,71,195,252,80,174,173,126,200,248,192,126,248,104,45,230,
+8,197,85,22,209,57,218,252,90,67,220,76,248,98,178,204,162,47,46,251,184,143,86,191,165,10,87,81,248,161,223,222,62,233,112,1,160,37,79,239,86,141,146,155,105,222,58,255,174,70,73,217,20,240,218,59,190,
+162,188,241,67,175,116,174,25,123,200,25,84,126,223,67,141,115,110,25,132,20,130,7,157,22,13,105,178,116,154,115,84,55,214,157,117,107,65,44,3,154,203,149,73,137,65,207,249,111,114,226,60,247,101,56,85,
+196,246,92,195,213,80,135,228,248,220,19,183,77,218,55,105,148,62,26,222,245,210,237,147,161,157,119,73,110,224,94,128,235,6,31,99,91,207,159,50,194,101,53,99,15,151,254,155,61,20,180,244,180,66,151,11,
+168,82,99,13,70,206,193,0,183,4,61,28,81,169,52,179,41,127,237,46,201,168,30,237,255,162,167,169,134,27,225,117,123,231,191,177,33,94,128,41,169,83,39,250,30,54,59,115,155,228,188,83,62,151,28,242,237,
+221,146,253,190,252,185,228,128,253,247,78,190,251,29,37,200,135,166,56,2,226,244,159,64,208,189,84,51,246,240,117,216,195,190,235,217,195,116,231,194,150,77,162,212,8,170,129,6,29,55,2,217,158,105,209,
+21,79,131,77,32,252,25,95,146,6,107,104,156,130,248,85,140,199,117,219,81,119,158,155,142,186,180,5,108,105,192,91,175,175,254,98,170,192,85,113,175,186,150,77,66,250,85,240,195,76,140,163,158,127,241,
+245,45,14,16,94,174,25,123,200,81,170,167,139,193,30,202,31,250,33,116,95,19,3,141,13,110,201,205,128,46,108,166,164,177,126,53,26,187,196,56,215,117,89,221,84,163,243,97,203,72,69,77,98,194,96,35,189,
+253,30,66,135,105,110,173,193,46,81,142,186,146,99,151,44,165,197,236,224,254,86,123,236,225,212,211,211,27,206,60,156,243,244,209,83,72,3,82,214,216,232,134,167,193,193,29,106,172,132,139,110,47,213,
+162,139,134,193,30,30,196,5,99,193,26,70,111,242,184,11,196,76,45,203,30,10,147,56,154,209,172,85,121,177,191,175,125,246,112,58,236,97,135,139,210,99,24,93,91,26,219,15,239,8,123,106,33,118,23,8,158,
+238,28,215,84,152,72,56,183,157,239,82,45,254,29,3,87,52,133,203,118,180,12,208,50,220,92,163,221,138,6,233,178,197,217,67,35,183,163,108,128,210,224,224,14,53,220,244,81,55,247,133,4,119,232,26,29,220,
+161,115,213,105,17,220,97,62,104,169,241,174,245,85,101,15,29,8,216,137,119,249,76,165,118,19,160,217,212,216,156,238,235,91,169,148,42,123,192,69,212,221,143,255,124,62,35,32,52,13,63,127,26,103,80,199,
+179,220,156,204,188,59,149,96,115,114,50,143,138,192,148,199,54,102,15,29,1,161,75,215,101,3,83,96,120,186,186,1,77,99,163,87,90,112,135,230,219,166,156,26,28,100,105,116,180,244,248,214,104,107,111,212,
+104,24,87,21,246,208,3,131,90,239,123,88,86,10,123,120,115,147,244,206,58,143,82,237,125,230,169,132,103,80,30,203,152,228,235,222,142,172,243,54,174,173,208,157,141,234,38,25,142,112,244,58,52,112,229,
+131,150,82,46,140,72,57,123,104,112,218,20,123,88,231,125,15,173,8,4,123,232,185,150,167,139,30,184,121,254,228,28,213,216,48,216,17,118,125,54,65,241,104,199,140,202,132,34,139,225,57,79,195,104,65,75,
+14,224,82,99,27,76,223,195,148,61,188,243,223,236,161,35,236,232,26,61,93,159,205,192,92,174,92,163,141,204,142,174,235,175,47,195,84,210,132,34,219,205,210,172,75,183,54,80,233,206,17,145,13,84,102,87,
+155,98,15,157,223,245,195,30,78,131,61,156,240,111,246,208,136,29,77,30,133,174,92,71,93,130,98,19,224,197,36,102,75,20,190,210,125,178,89,149,167,36,70,106,151,157,184,11,207,185,26,237,59,93,110,52,
+86,207,201,239,163,22,180,75,253,177,135,212,122,44,127,140,31,251,117,62,108,215,180,104,102,185,36,215,192,45,77,12,156,91,6,52,71,212,156,216,15,233,136,104,148,235,176,134,187,243,18,188,106,216,236,
+97,166,176,53,107,6,236,225,77,176,135,28,146,7,123,232,205,102,94,36,146,223,247,80,128,35,182,120,209,247,48,203,30,234,202,13,143,61,164,62,107,201,210,194,214,188,217,176,135,51,96,15,41,127,140,29,
+13,123,56,0,246,176,91,197,236,97,52,73,118,94,58,162,26,107,4,110,216,236,33,197,104,235,179,139,230,193,30,66,150,90,216,178,214,51,249,1,216,195,9,176,135,195,97,15,57,55,46,196,30,154,254,105,180,
+95,93,95,197,242,182,14,246,240,78,216,195,85,176,135,211,97,15,115,133,173,7,239,133,61,156,4,123,72,69,192,67,242,161,131,96,15,59,201,30,30,250,41,97,15,123,195,30,82,159,181,100,249,224,189,176,135,
+24,107,173,199,242,199,29,183,124,49,185,253,230,125,210,115,99,143,82,91,52,135,61,228,192,237,200,195,183,118,246,144,98,180,245,217,153,207,194,30,62,0,123,72,97,203,242,199,109,55,195,30,78,252,98,
+50,97,44,199,167,156,27,15,27,4,123,200,233,162,7,110,205,155,237,192,126,118,183,116,75,231,145,141,59,158,216,245,4,99,28,157,163,93,150,12,124,46,61,13,139,61,28,14,123,72,201,210,42,158,133,173,59,
+113,235,27,199,193,30,82,17,240,144,252,218,171,97,15,57,74,237,221,115,207,164,111,239,157,146,179,206,44,220,247,48,174,143,202,239,123,40,123,200,93,59,13,140,61,164,62,107,201,242,142,91,97,15,31,
+134,61,164,214,99,249,99,2,21,129,209,215,194,30,114,110,60,146,102,143,99,110,248,76,210,186,213,222,41,17,110,189,40,238,171,52,144,101,217,67,115,116,146,142,127,122,123,3,198,190,218,224,251,30,90,
+216,178,214,243,48,229,143,201,247,193,30,114,72,126,219,77,187,37,247,220,181,3,163,252,197,52,13,141,123,103,117,215,124,246,176,64,223,195,210,173,166,239,161,229,15,43,2,30,146,15,31,10,123,216,163,
+113,122,31,151,10,30,239,191,202,235,123,88,100,15,115,247,114,20,217,195,124,89,82,101,84,76,141,169,22,255,67,165,65,57,29,133,200,156,154,138,198,219,109,183,221,104,154,52,78,99,95,187,140,20,178,
+204,27,68,137,180,43,188,103,210,242,135,21,1,15,201,61,55,246,40,213,155,205,248,249,165,60,207,230,142,101,154,230,84,56,199,241,85,44,207,27,87,236,174,103,79,240,20,201,171,204,184,130,172,228,230,
+252,165,77,64,151,197,190,135,140,68,145,61,228,37,20,217,195,218,154,90,149,253,59,53,14,90,149,253,7,13,237,207,235,197,224,34,123,88,100,15,139,236,97,145,61,44,178,135,69,246,176,200,30,22,217,195,
+45,195,30,206,163,239,225,82,216,195,197,176,135,51,97,15,231,195,30,190,8,123,184,236,255,26,123,56,20,246,240,73,216,195,18,216,195,233,244,61,172,136,61,124,143,190,135,119,31,76,149,242,192,191,81,
+144,19,195,91,78,5,242,109,246,219,179,216,148,116,200,167,88,54,186,73,102,83,185,46,90,141,131,81,225,220,242,167,63,253,105,41,2,149,180,163,229,176,97,253,254,126,239,189,237,83,28,239,237,183,199,
+160,231,184,189,156,80,11,38,98,9,228,232,13,55,180,160,154,216,46,165,204,60,125,84,14,17,236,161,10,160,108,203,191,141,250,30,14,163,239,225,67,176,135,207,22,96,15,75,96,15,203,96,15,31,104,224,236,
+161,197,238,16,174,4,153,22,236,161,34,183,130,125,15,71,193,30,62,0,123,200,221,153,203,74,232,123,248,34,125,15,167,195,30,206,128,61,92,10,123,120,83,3,103,15,53,88,89,131,85,126,141,86,190,168,50,
+87,197,128,6,171,251,42,216,247,240,1,216,195,5,244,61,196,216,89,207,192,30,130,226,205,126,22,246,112,33,236,97,143,45,204,30,250,193,3,199,83,157,163,118,195,223,71,131,41,21,120,210,105,234,41,237,
+17,161,172,223,17,150,137,240,239,86,216,247,112,60,236,225,67,176,135,24,59,237,113,216,195,199,40,215,62,9,123,248,28,236,97,243,45,196,30,250,193,163,135,154,35,25,146,255,64,2,252,170,104,52,140,86,
+227,225,11,145,65,84,244,162,22,68,253,135,243,126,35,246,176,35,125,15,175,135,61,156,12,123,248,40,236,225,100,216,195,7,97,15,159,130,61,124,108,11,176,135,142,86,40,222,29,217,0,180,28,57,181,30,33,
+17,86,84,170,130,71,233,146,13,105,164,91,148,29,43,126,81,188,166,204,201,95,171,249,80,69,32,134,87,222,247,80,246,240,122,216,195,201,176,135,212,177,30,190,23,246,240,94,216,195,105,176,135,195,235,
+153,61,204,66,90,129,227,5,201,226,239,53,90,169,161,6,11,121,40,93,82,194,164,18,62,196,169,202,156,66,167,169,162,207,151,164,208,76,81,169,130,214,114,246,240,58,216,195,251,96,15,31,132,59,188,159,
+231,62,216,195,123,235,153,61,12,17,168,31,178,16,142,231,72,171,216,209,141,165,96,156,199,42,124,148,51,5,127,168,145,170,110,133,63,20,146,171,213,116,116,227,222,121,151,47,53,36,87,14,133,61,164,
+137,212,67,147,96,15,169,82,222,69,121,246,49,110,75,29,220,191,30,217,67,93,56,154,84,4,158,231,215,120,148,24,6,127,168,10,79,249,161,46,237,8,107,176,174,172,46,83,35,149,27,71,207,67,239,133,87,10,
+21,114,168,245,188,69,175,228,170,97,176,135,92,5,123,199,141,176,135,52,137,187,255,78,216,195,137,245,200,30,6,185,162,12,201,209,140,72,29,56,158,46,175,91,27,184,84,210,10,70,171,223,82,131,169,54,
+83,169,162,198,170,154,119,132,53,88,201,177,114,67,65,75,191,170,9,41,239,123,216,9,246,112,36,20,11,198,222,60,142,2,252,120,216,67,202,179,245,194,30,106,164,130,51,221,217,81,84,201,238,136,102,219,
+2,134,204,223,121,236,8,107,176,1,203,209,85,65,175,204,88,67,163,127,105,240,135,254,153,145,221,233,160,156,201,250,177,89,91,135,246,205,146,254,20,215,111,26,227,3,123,56,26,246,240,46,216,195,161,
+245,192,30,58,39,3,202,210,232,192,241,178,163,28,81,91,183,87,164,38,177,34,24,98,100,14,186,52,140,149,61,244,17,224,114,164,29,117,5,170,249,125,15,59,95,6,123,56,130,130,59,215,57,143,231,2,239,59,
+111,132,61,156,80,135,236,161,107,173,238,171,194,78,55,213,16,71,195,209,214,197,53,94,61,116,182,37,160,63,239,203,81,113,235,186,27,93,182,162,119,105,0,151,65,171,105,172,129,204,8,110,102,182,1,123,
+120,238,161,73,255,30,176,135,35,97,15,81,24,140,191,30,246,240,238,58,98,15,163,93,144,70,7,153,22,116,154,198,251,61,13,55,195,210,29,99,94,251,2,124,41,70,104,21,242,70,102,141,50,42,199,163,107,251,
+61,31,17,130,104,17,40,43,17,93,241,202,217,195,75,96,15,65,119,174,189,18,241,12,115,250,161,59,235,128,61,52,19,82,169,174,122,221,252,88,35,76,36,92,106,28,109,51,169,232,134,167,68,216,165,200,209,
+14,163,197,111,85,219,26,148,98,100,131,44,53,66,107,160,65,204,249,171,192,60,24,68,27,83,217,68,42,203,30,158,118,18,236,225,101,176,135,3,96,15,135,195,30,222,12,123,216,171,182,216,67,54,239,166,124,
+38,248,193,30,170,128,21,176,114,137,49,69,84,49,171,68,88,151,53,48,153,42,250,2,252,25,3,154,89,152,17,219,236,202,249,25,109,119,3,243,201,182,241,12,99,141,226,206,97,49,3,5,171,138,83,21,194,168,
+226,59,242,251,187,39,205,154,194,30,118,129,61,28,68,212,30,7,123,56,176,182,216,195,25,27,247,61,212,125,3,189,243,171,248,93,240,131,46,59,209,176,209,23,34,235,32,127,104,84,143,158,76,161,152,23,
+174,52,159,54,235,242,215,186,187,17,60,160,75,191,175,192,220,72,173,70,243,160,131,190,155,26,124,240,65,187,39,103,159,190,75,210,174,229,30,201,0,132,50,19,175,223,45,25,62,168,182,216,195,233,235,
+217,67,55,239,178,13,194,23,46,45,190,121,221,205,15,236,147,253,144,241,225,29,161,232,55,172,177,70,114,71,222,104,29,125,17,21,144,103,249,69,127,237,247,226,251,198,11,245,91,10,82,207,60,122,103,
+154,61,126,45,57,252,224,93,147,147,143,223,57,185,248,252,207,37,221,58,237,149,140,185,122,119,12,62,177,150,216,67,206,160,130,61,116,179,32,93,26,204,97,24,28,6,186,220,136,238,104,156,107,108,180,
+204,54,32,233,206,206,231,104,76,19,59,40,221,223,105,224,116,112,90,120,223,135,83,196,169,162,166,218,222,46,193,30,54,57,110,219,164,205,89,219,36,77,79,218,54,57,239,164,29,146,11,27,127,54,233,208,
+234,243,201,181,195,112,233,1,167,213,82,223,195,23,55,100,15,93,38,204,148,98,151,99,144,113,153,137,54,247,166,138,70,97,13,142,104,235,124,212,189,77,64,98,191,108,162,226,50,102,128,51,186,155,152,
+8,90,26,0,77,65,13,136,226,5,50,16,129,243,156,123,52,160,229,217,141,146,118,103,53,74,218,242,92,209,116,219,164,127,251,157,1,45,119,73,250,247,57,183,150,250,30,190,250,111,246,48,250,30,58,71,99,
+52,179,237,195,52,208,81,141,230,142,254,58,250,149,58,138,70,237,56,253,240,4,68,230,48,118,84,97,184,145,222,24,161,235,251,82,118,217,101,151,245,221,181,62,183,91,185,177,109,206,196,96,158,94,244,
+48,189,165,71,163,228,201,107,65,107,135,28,234,92,127,163,230,125,15,57,74,29,206,233,98,150,61,52,131,138,54,157,17,136,204,137,131,59,52,105,200,111,1,232,214,208,228,67,183,22,238,16,187,211,248,24,
+241,236,30,218,145,247,103,29,121,55,18,6,172,239,127,103,231,164,197,233,59,37,231,157,176,75,114,198,145,59,38,167,30,190,99,114,252,247,118,73,78,62,252,243,73,135,11,191,144,116,108,113,220,63,72,
+65,95,98,59,249,90,205,251,30,62,182,33,123,232,145,76,116,139,14,12,47,90,255,133,27,235,218,6,44,127,206,64,228,53,83,174,205,46,79,129,238,68,43,207,184,165,41,14,13,36,75,163,227,86,144,46,223,63,
+236,144,148,46,253,230,55,190,154,236,253,197,189,82,2,70,85,174,89,152,123,103,54,27,127,165,41,198,106,130,235,171,74,161,114,87,77,29,204,215,189,54,40,71,240,182,239,33,88,148,48,191,150,163,123,252,
+227,136,17,39,176,254,157,201,178,115,46,143,7,229,103,38,51,158,221,152,61,116,7,228,114,227,72,7,119,232,87,115,228,48,214,101,198,173,160,1,200,249,169,193,209,213,210,228,37,186,90,250,107,71,60,70,
+59,186,204,75,168,69,223,67,201,82,13,150,153,136,71,41,178,215,93,232,125,252,249,127,179,157,92,198,93,65,101,234,190,48,212,107,216,213,143,237,177,129,193,100,78,221,112,157,197,68,203,213,44,63,239,
+29,127,252,177,208,220,167,128,208,157,201,122,122,70,138,227,121,72,126,37,231,198,217,190,135,254,39,70,111,197,161,1,93,58,159,163,7,184,75,146,81,220,245,217,101,200,151,19,6,103,185,195,232,106,25,
+252,82,52,111,117,244,205,174,116,231,108,223,195,208,88,107,172,163,235,246,209,207,85,251,236,225,35,176,135,52,145,242,120,213,195,117,141,53,3,243,246,37,13,118,84,141,214,46,75,34,241,145,52,184,
+222,154,126,122,204,99,148,118,132,13,86,26,148,15,89,106,188,163,237,11,17,241,9,142,169,178,190,135,117,195,30,174,128,61,188,105,61,123,104,154,233,200,74,166,121,28,163,193,249,160,165,201,136,160,
+165,6,187,204,184,171,50,24,57,79,53,88,195,2,178,244,171,7,244,210,105,190,8,101,197,129,209,110,217,190,135,84,4,130,61,148,72,139,158,135,126,200,104,199,235,188,213,149,157,187,46,95,38,17,26,172,
+75,199,129,65,240,195,110,70,52,214,229,14,173,101,178,205,54,219,164,193,168,58,236,33,103,95,255,68,183,185,22,143,43,67,120,238,252,189,146,121,171,86,211,214,9,222,143,183,237,70,53,84,14,202,246,
+225,13,63,141,219,149,145,58,150,128,216,252,102,252,248,19,216,143,158,204,28,60,142,164,225,176,244,158,73,203,31,119,221,6,123,216,241,223,125,15,93,54,68,114,212,65,199,121,85,24,235,232,186,254,186,
+133,116,35,161,75,59,194,113,142,29,148,184,211,66,99,99,205,173,74,223,67,147,17,93,189,238,251,30,62,13,123,56,22,246,144,67,114,143,80,131,61,116,206,25,64,92,79,53,210,52,209,100,194,162,154,55,67,
+68,231,120,55,17,209,112,217,229,201,244,209,151,166,145,209,190,211,35,157,77,177,135,238,143,235,158,61,156,67,223,195,231,232,123,72,173,199,242,199,248,209,155,102,15,221,112,8,74,26,77,205,133,85,
+193,187,85,140,196,195,151,224,135,206,26,170,43,187,21,116,93,117,25,114,211,144,237,104,153,109,43,230,60,183,249,148,76,132,75,17,83,97,6,238,171,152,92,217,177,146,227,93,43,188,19,207,63,224,63,223,
+145,249,208,146,29,209,10,82,192,53,128,208,43,24,177,63,244,238,253,253,100,221,75,244,61,132,72,203,22,182,102,61,3,123,56,225,223,236,161,46,237,233,162,163,19,236,161,208,165,70,7,123,24,8,79,126,
+223,195,134,199,30,222,70,223,67,234,179,150,44,45,108,205,155,9,123,248,44,236,33,229,143,177,215,194,30,246,47,204,30,202,31,105,172,163,20,204,97,124,117,212,125,25,13,183,239,33,197,104,235,179,139,
+102,195,30,78,135,61,164,176,101,173,103,242,61,176,135,99,96,15,135,192,30,114,110,156,207,30,234,162,62,158,86,248,212,148,61,180,21,160,221,241,8,148,101,246,80,203,181,21,107,131,11,219,220,198,204,
+234,11,249,202,249,77,138,75,113,175,157,113,201,75,41,104,77,39,178,190,69,253,118,185,50,3,111,253,189,251,54,216,195,21,176,135,79,195,30,82,197,179,176,245,224,221,176,135,119,192,30,82,17,240,144,
+124,104,255,125,146,206,151,193,30,114,186,120,242,73,235,211,193,173,187,239,97,79,216,67,234,179,150,44,31,188,27,246,16,99,173,245,88,254,208,232,219,38,0,103,113,110,236,81,106,243,139,119,75,78,229,
+192,237,8,206,160,14,61,132,190,135,7,84,191,239,161,49,161,64,223,195,119,153,38,222,82,106,55,90,175,90,62,130,103,127,30,187,1,109,112,47,109,149,84,60,46,214,184,202,126,68,208,129,100,58,243,20,144,
+120,159,179,87,28,51,47,255,96,49,218,250,236,204,39,96,15,39,193,30,202,29,82,254,184,109,34,236,225,88,216,67,14,201,61,55,246,40,213,211,197,75,47,130,61,188,8,246,240,200,170,177,135,206,123,79,42,
+141,226,46,89,36,20,13,164,239,225,16,216,67,74,150,86,241,44,108,221,201,8,223,120,3,236,33,21,1,15,201,71,141,128,61,228,40,181,87,87,216,195,238,59,113,240,182,71,26,193,93,110,76,252,227,188,217,224,
+230,242,148,101,15,93,135,27,46,123,72,201,242,14,154,48,79,193,112,107,61,150,63,38,80,17,24,125,21,70,115,110,60,114,240,23,146,177,87,127,38,105,211,98,239,116,212,100,15,221,1,25,204,242,217,195,232,
+123,152,97,15,151,243,189,213,224,123,13,180,239,33,133,45,107,61,15,79,130,61,188,11,246,144,67,242,219,198,193,30,222,12,123,216,253,139,233,198,192,39,118,64,110,66,220,222,249,120,39,72,129,190,135,
+91,25,123,72,69,192,67,242,225,131,96,15,187,175,103,15,73,73,255,197,217,83,62,123,248,78,177,239,225,250,158,224,69,246,176,208,210,179,41,117,97,141,169,22,255,67,158,34,123,200,75,40,246,61,228,37,
+72,136,218,188,241,48,158,195,51,143,191,247,251,30,165,154,3,123,217,215,215,120,246,225,241,164,66,15,218,190,54,160,175,26,187,244,38,231,203,122,119,183,233,227,46,60,187,243,120,117,185,56,108,145,
+61,172,141,209,171,202,191,81,167,35,92,149,15,80,223,63,83,47,6,23,217,195,34,123,88,100,15,139,236,97,145,61,44,178,135,69,246,176,200,30,86,233,212,18,221,198,174,200,23,90,35,252,124,226,163,143,62,
+122,149,98,119,74,168,217,48,174,71,143,38,136,210,250,167,157,182,74,75,135,160,191,26,146,182,40,146,80,123,227,141,17,72,30,198,242,251,94,40,234,174,72,94,90,219,17,230,240,178,100,254,28,216,195,
+197,176,135,139,96,15,167,195,30,62,15,123,248,2,236,225,82,36,21,139,206,70,113,208,10,197,93,227,244,226,223,133,11,163,21,224,225,252,63,223,253,255,237,189,119,156,215,245,153,183,139,81,99,3,163,
+216,98,65,41,34,189,195,80,69,197,2,138,40,29,4,164,75,145,34,32,32,168,96,3,44,40,2,214,32,168,216,162,40,34,138,138,136,72,145,162,38,209,100,147,53,155,39,207,179,39,207,150,179,207,110,54,231,188,
+206,238,115,146,221,236,238,231,92,215,111,230,158,249,78,17,17,126,67,241,204,31,223,215,192,204,48,204,253,253,244,251,126,95,159,55,23,15,214,77,147,38,182,36,129,223,228,79,148,106,118,155,39,71,233,
+243,149,217,212,227,143,63,126,50,101,214,115,217,167,239,245,202,154,189,238,180,8,246,24,130,189,2,37,206,202,127,253,215,127,221,99,176,84,1,119,139,227,61,250,232,80,100,72,11,169,238,223,150,179,
+21,211,105,107,207,158,153,60,51,114,22,69,219,183,79,70,148,118,55,50,137,145,233,246,185,61,185,48,172,103,78,197,167,82,192,11,124,101,148,84,14,168,32,184,97,112,175,52,123,6,236,225,106,216,195,15,
+97,15,215,148,97,15,223,161,68,251,86,147,180,101,227,69,233,215,95,192,30,46,129,61,108,127,132,178,135,229,124,15,39,14,3,226,128,61,124,26,246,240,213,34,246,144,96,223,94,219,48,109,255,16,223,195,
+247,97,15,55,193,30,62,6,123,216,250,8,240,61,84,187,97,165,95,173,166,242,69,75,165,113,193,126,22,192,28,56,176,79,186,251,14,216,195,39,40,190,175,133,61,124,31,246,112,3,236,225,75,176,135,47,193,
+30,190,11,123,184,224,48,97,15,237,186,138,84,20,157,133,240,44,110,251,143,74,191,74,29,37,200,202,23,21,199,120,167,173,236,97,57,223,195,33,215,147,230,133,61,124,11,246,144,96,215,173,134,61,228,62,
+220,183,86,195,30,174,131,61,188,233,16,179,135,142,201,44,142,103,128,10,87,172,246,171,142,87,219,161,168,37,112,60,91,220,128,213,97,217,194,21,250,30,206,154,144,22,223,3,123,248,4,236,33,193,174,
+89,9,123,248,35,202,181,171,96,15,95,134,61,236,115,152,176,135,225,181,164,146,78,173,164,79,4,173,148,80,66,77,37,173,173,171,63,155,114,38,95,68,133,190,135,178,135,119,192,30,62,9,123,248,52,236,225,
+19,176,135,143,193,30,62,11,123,248,52,236,97,187,131,236,123,232,120,204,226,120,182,178,1,103,245,147,89,75,64,133,163,202,133,21,141,43,19,14,6,81,5,144,250,107,135,130,2,151,82,236,225,104,216,195,
+59,96,15,159,128,61,92,78,137,246,81,216,195,71,97,15,95,128,61,156,113,136,216,67,89,37,245,27,17,112,150,78,243,107,6,29,238,120,138,212,148,50,169,164,215,206,196,96,213,121,201,56,168,148,183,71,24,
+176,85,67,5,51,197,236,225,92,216,195,165,176,135,143,193,29,46,227,121,20,246,112,9,236,225,229,7,209,247,48,220,239,20,156,101,91,58,235,144,151,133,46,237,210,234,161,13,88,254,80,241,154,193,42,87,
+12,85,174,186,107,199,126,212,159,236,250,57,246,112,58,236,225,3,176,135,143,192,30,46,130,61,228,58,216,231,151,194,30,78,58,136,236,161,138,28,165,73,97,27,230,223,131,65,204,226,120,89,224,82,85,173,
+98,83,187,115,8,205,203,34,121,138,84,109,217,64,242,172,71,229,216,195,105,176,135,92,3,187,148,91,81,151,80,131,126,250,65,216,195,123,15,18,123,232,88,205,218,133,133,59,94,96,59,17,184,221,60,248,
+195,172,255,161,72,128,150,68,74,140,213,105,170,160,87,103,45,245,34,173,166,116,41,2,182,210,104,208,99,134,195,30,206,68,101,64,176,139,231,83,128,191,11,246,112,73,37,179,135,6,234,228,162,124,88,
+133,93,192,89,106,156,195,28,206,110,28,12,98,240,135,1,92,58,97,217,186,142,93,131,13,156,54,32,45,193,45,133,169,170,123,124,68,241,20,195,20,250,30,194,30,142,129,59,188,211,7,246,240,118,216,195,7,
+97,15,167,85,18,123,232,94,56,36,252,182,174,75,140,75,138,45,231,242,226,196,228,114,164,222,57,107,5,168,130,214,113,238,247,42,71,180,117,229,32,108,89,91,213,32,109,85,193,173,240,63,116,45,15,186,
+84,213,64,177,239,225,13,176,135,211,40,184,35,169,88,52,7,246,240,30,216,195,187,243,205,30,114,16,80,66,152,229,21,92,122,130,72,83,252,29,100,154,99,58,44,121,99,76,27,188,93,94,150,65,60,71,45,181,
+193,6,51,28,129,6,169,102,240,129,214,150,101,15,187,95,9,123,56,26,246,112,6,236,225,109,176,135,200,42,86,62,152,79,246,240,191,205,0,221,25,153,83,157,7,123,232,71,229,191,225,119,38,129,226,100,164,
+98,54,252,16,195,192,34,186,183,45,239,247,40,41,118,102,118,98,10,43,207,44,89,106,176,225,156,231,247,248,253,165,124,15,187,224,123,216,19,108,103,60,236,225,52,196,51,51,96,15,31,128,61,28,154,47,
+223,195,79,198,230,142,118,174,137,113,9,137,45,231,122,26,238,117,122,177,184,212,200,30,41,21,182,197,221,77,185,195,114,194,138,117,218,175,27,172,227,53,140,30,3,178,12,26,38,96,203,112,184,20,49,
+80,230,95,202,247,176,3,236,225,160,83,210,172,137,176,135,183,192,30,222,11,123,56,62,95,236,33,135,119,207,179,106,48,220,3,171,113,118,13,117,211,224,238,72,169,176,147,144,143,155,9,129,142,64,240,
+108,81,101,195,1,104,121,225,129,99,54,192,232,44,62,107,128,97,110,35,74,16,44,148,51,57,2,151,98,246,80,145,91,171,166,53,82,239,30,213,211,132,97,53,211,109,19,153,181,239,164,197,39,231,139,61,124,
+173,132,61,244,136,151,13,216,201,199,205,131,188,160,143,179,171,226,112,25,97,191,38,193,22,204,131,59,40,3,50,224,192,5,220,108,248,196,223,131,153,112,246,14,119,75,127,78,9,123,88,8,91,54,190,168,
+70,186,162,203,73,233,134,222,176,135,99,78,79,15,220,6,123,56,37,95,236,225,171,165,217,67,143,119,177,29,180,187,217,2,170,224,157,136,156,121,179,173,19,110,91,118,87,131,114,226,18,248,80,41,111,207,
+176,135,68,79,9,11,65,127,94,252,76,127,174,95,87,222,36,123,232,242,148,51,138,187,240,228,212,185,237,137,233,186,43,127,144,198,14,57,45,221,123,43,236,225,148,124,177,135,228,160,202,178,135,17,176,
+64,71,32,120,174,167,254,217,199,86,179,139,198,69,6,254,217,238,236,238,203,37,203,110,110,119,119,77,118,215,149,53,140,244,101,56,100,108,217,176,242,116,89,82,133,75,94,43,183,60,53,188,176,122,42,
+104,121,98,186,226,226,234,105,104,111,38,175,201,116,233,73,249,98,15,55,150,247,61,244,205,71,176,6,23,176,86,248,28,58,203,58,249,184,123,114,44,198,245,51,110,76,12,218,117,57,46,52,113,130,211,140,
+217,9,205,19,148,47,192,57,192,23,20,151,30,40,53,182,133,175,234,112,90,234,84,192,133,250,23,158,152,218,52,59,33,93,210,1,61,231,213,167,166,185,19,107,112,25,66,190,216,195,207,75,251,30,186,197,147,
+233,205,110,248,179,24,94,216,255,133,105,178,167,32,39,52,151,43,103,235,160,209,108,233,112,146,55,57,224,26,237,186,110,240,46,119,246,0,65,203,227,142,59,174,80,53,127,74,141,52,228,210,106,233,186,
+206,39,166,130,38,199,166,22,141,142,75,237,91,30,159,122,92,82,61,205,24,125,124,26,53,226,122,21,126,95,28,56,123,72,42,213,236,98,89,246,208,163,92,92,41,19,36,105,88,0,250,119,199,172,99,218,110,105,
+171,185,27,243,144,97,11,187,142,27,184,155,151,216,133,133,165,167,107,185,155,24,119,113,162,180,62,57,81,121,245,19,114,1,223,192,51,168,107,181,212,179,195,81,233,178,118,133,1,79,130,48,245,130,253,
+252,248,30,146,55,126,105,85,105,246,208,28,148,217,10,105,209,108,208,6,106,247,182,27,219,178,206,224,46,85,66,31,174,203,174,201,6,105,192,65,160,197,245,54,6,238,207,139,116,144,45,110,111,10,164,
+231,146,102,71,231,130,29,124,73,225,99,208,67,46,59,42,141,184,230,251,105,220,224,179,61,108,252,145,128,183,176,103,248,236,192,217,195,87,96,15,135,150,248,30,154,142,113,35,98,171,187,12,57,142,179,
+107,168,45,235,50,229,76,236,222,217,238,233,222,59,2,14,238,208,143,97,222,234,248,118,204,250,24,184,123,111,243,94,57,59,177,51,78,77,125,187,28,157,250,116,134,48,237,82,45,245,233,84,45,93,219,254,
+168,52,18,150,120,86,223,106,233,158,177,248,71,116,40,248,191,56,67,111,70,136,186,237,192,217,67,146,228,230,141,67,4,26,193,154,95,14,64,58,48,60,131,181,101,13,214,77,72,150,59,52,168,224,14,93,207,
+125,226,70,53,63,31,201,2,79,94,142,241,96,15,155,54,105,72,64,156,136,26,193,79,252,176,102,58,251,172,211,82,157,243,78,73,23,156,119,70,106,209,248,130,52,164,119,206,226,243,175,200,156,126,146,63,
+223,195,21,133,236,161,93,57,216,67,111,62,115,131,16,107,111,108,24,108,245,240,59,116,11,234,248,116,130,50,224,44,119,232,206,205,212,110,128,150,89,186,84,248,43,203,30,250,119,97,145,44,93,234,223,
+93,166,252,26,90,235,221,244,188,159,128,48,108,161,244,162,155,128,56,143,186,175,19,74,149,90,84,191,147,32,95,193,68,241,49,91,192,45,72,120,255,97,230,204,118,116,213,246,180,80,167,92,173,103,251,
+246,203,210,142,173,176,135,247,151,248,30,42,251,85,238,235,88,116,93,118,227,225,114,101,235,186,134,58,51,59,89,101,65,75,91,205,19,87,220,7,226,38,198,199,160,3,180,116,82,243,106,41,253,213,202,250,
+30,134,19,151,56,144,193,138,9,153,244,99,247,245,143,60,155,177,37,220,14,221,246,58,49,117,44,18,189,41,114,59,166,92,109,137,177,50,144,183,255,49,51,233,46,198,192,158,94,189,58,252,215,123,239,181,
+102,253,236,66,48,215,16,64,55,2,111,149,171,8,12,37,73,238,97,194,113,108,178,205,95,206,95,214,29,81,108,39,221,60,56,118,93,94,92,106,76,18,152,0,200,130,150,81,141,112,187,106,222,202,160,157,204,
+130,8,183,117,221,89,169,140,55,227,225,137,73,148,54,238,3,16,150,118,95,93,57,236,97,81,97,203,242,199,242,135,42,102,15,253,165,227,70,52,131,117,23,229,76,235,250,107,98,192,137,200,46,237,56,117,
+162,10,186,84,133,188,160,165,235,173,156,67,144,106,158,144,246,230,123,104,15,168,60,223,195,162,194,214,250,53,245,211,235,171,97,15,239,170,152,61,52,37,99,151,116,141,181,117,4,177,252,115,120,29,
+198,169,41,102,105,187,183,128,37,158,44,197,129,218,141,163,101,247,209,247,240,167,12,173,237,164,130,118,22,121,187,116,46,210,119,158,17,90,205,10,203,165,116,207,218,116,213,23,217,242,125,130,41,
+227,54,142,100,255,99,224,192,86,185,250,236,230,247,234,165,183,9,118,253,143,97,15,169,245,88,254,88,52,15,246,112,122,197,190,135,30,231,194,67,201,110,231,172,27,231,98,39,38,95,130,44,162,208,86,
+214,247,208,63,59,9,29,90,246,144,75,51,63,219,10,123,184,22,246,48,83,216,90,183,26,246,240,190,242,236,97,16,104,6,236,164,34,189,34,181,226,227,100,83,145,239,161,221,216,49,41,96,25,99,86,194,197,
+110,27,176,101,100,61,60,72,132,173,24,61,200,57,103,151,126,76,12,139,25,180,168,173,219,180,72,204,90,92,36,255,218,130,56,173,113,62,221,104,33,147,199,118,90,225,19,186,201,110,43,239,75,31,132,61,
+164,62,107,201,210,194,214,134,87,96,15,95,128,61,164,252,177,96,46,236,225,205,133,236,161,227,216,147,149,104,109,0,150,225,135,86,17,123,120,248,250,30,82,121,183,24,109,125,118,227,107,176,135,47,
+193,30,82,216,178,214,179,242,81,216,195,249,176,135,83,97,15,201,27,143,24,62,48,245,234,213,43,215,82,30,214,237,182,209,234,249,96,15,57,32,28,36,246,144,202,251,99,15,194,30,110,132,61,124,14,246,
+144,42,158,133,173,21,15,195,30,62,8,123,72,69,192,36,249,204,137,176,135,55,212,74,61,200,46,202,30,58,38,13,220,199,195,187,127,247,163,143,57,103,187,190,75,141,221,61,214,215,178,221,216,46,239,247,
+10,90,178,52,253,146,158,184,131,186,242,207,57,54,174,165,251,78,206,116,101,77,113,78,252,86,215,45,251,205,140,179,211,248,193,19,232,222,111,43,32,241,62,103,108,232,119,215,169,115,193,31,39,221,
+4,123,72,125,214,146,229,10,124,14,13,214,90,143,229,143,165,80,105,75,238,6,206,34,111,108,42,181,127,79,124,15,59,226,123,216,20,246,176,209,254,177,135,92,70,82,17,123,248,151,7,151,61,164,24,109,125,
+118,237,74,216,195,37,176,135,20,182,44,127,44,193,250,111,241,60,216,67,146,228,119,145,55,158,197,13,133,99,6,159,194,33,29,246,176,231,177,169,77,203,26,185,205,195,55,249,30,58,254,15,63,223,67,138,
+209,115,110,129,61,164,100,105,21,207,194,214,50,186,245,131,119,192,30,82,17,48,73,62,127,250,233,105,54,169,212,155,135,195,30,142,193,247,176,107,197,190,135,21,177,135,46,77,135,39,123,72,125,214,
+146,229,210,251,96,15,9,220,90,143,229,143,251,169,8,220,115,43,221,155,188,241,220,73,248,30,206,57,62,13,236,93,226,123,152,101,15,77,210,217,170,238,156,246,226,123,120,152,178,135,20,182,172,245,172,
+122,8,246,144,138,128,73,242,37,243,106,164,199,23,30,155,38,141,46,100,15,179,190,135,145,243,14,246,176,2,223,195,29,71,142,239,33,229,15,43,2,38,201,103,79,129,61,28,83,197,30,238,52,45,99,166,130,
+13,203,118,90,121,15,71,188,109,222,184,194,185,246,237,42,223,195,194,11,13,78,228,41,135,189,87,177,135,236,39,246,122,113,201,254,176,68,190,233,92,10,165,144,62,115,151,83,197,30,22,157,77,171,216,
+67,94,196,217,60,230,156,78,227,57,133,199,43,41,236,45,199,152,103,219,159,30,247,117,255,230,160,144,105,249,252,133,15,244,103,85,5,124,160,111,176,162,127,95,197,30,86,177,135,85,236,97,21,123,88,
+197,30,86,177,135,85,236,225,17,206,30,2,104,13,28,144,187,47,243,247,22,5,184,108,116,187,215,214,153,77,245,114,51,80,188,218,81,63,58,160,227,97,94,216,195,207,97,15,119,193,30,126,8,123,248,22,236,
+225,7,176,135,239,193,30,190,6,123,248,22,236,225,251,176,135,155,247,194,30,190,3,123,248,49,236,225,22,216,67,174,165,59,188,217,195,247,97,15,231,236,3,123,56,29,246,240,57,216,195,15,96,15,95,203,
+176,135,27,90,167,13,111,193,30,190,1,123,184,1,246,240,51,216,195,197,176,135,5,223,37,246,240,86,216,195,39,97,15,95,134,61,92,215,12,20,15,246,112,13,236,225,251,176,135,239,192,30,190,7,123,184,20,
+246,176,213,97,198,30,170,255,80,251,225,245,201,33,90,169,136,61,244,198,225,10,125,15,231,194,30,46,135,61,92,3,123,72,75,111,89,15,123,248,60,236,225,106,216,195,183,96,15,239,61,76,216,67,53,31,86,
+15,173,255,134,114,62,123,45,186,194,21,3,215,24,195,151,17,70,143,193,30,122,103,181,88,158,247,87,43,171,88,181,12,246,112,45,236,33,193,174,123,22,246,144,251,112,223,90,5,123,184,6,246,112,204,97,
+194,30,90,253,207,98,2,74,27,84,223,169,134,15,79,135,96,16,101,36,178,236,161,222,104,86,29,213,143,88,44,159,45,123,56,31,246,112,57,236,33,193,174,121,26,246,240,9,202,181,43,96,15,87,31,6,236,97,208,
+104,129,226,169,238,241,207,2,92,170,236,20,156,133,157,129,50,68,197,46,118,125,19,240,234,190,124,76,202,91,121,80,48,163,40,205,43,157,23,206,129,61,92,14,123,72,121,246,197,229,176,135,143,194,30,
+174,128,61,228,138,216,130,182,135,144,61,20,215,49,40,133,224,118,107,91,55,94,130,218,14,69,45,97,250,168,130,86,57,147,66,82,101,75,126,93,156,64,21,79,57,223,67,217,195,185,176,135,203,97,15,9,118,
+213,195,176,135,15,195,30,62,11,123,56,237,16,177,135,234,175,108,61,91,50,107,33,22,116,154,159,11,201,112,224,120,42,126,148,9,171,152,87,57,31,202,122,127,86,57,246,112,120,255,180,96,54,236,225,195,
+176,135,75,225,14,151,240,80,170,93,181,248,16,176,135,6,162,210,46,132,43,182,86,120,32,70,192,74,149,252,62,199,178,152,143,128,151,218,104,133,167,17,172,234,122,101,139,66,32,6,93,142,61,188,5,246,
+112,17,236,225,67,176,135,84,41,151,83,158,125,254,97,216,67,46,68,160,168,254,119,188,164,15,25,10,159,80,199,86,152,230,13,108,166,142,115,9,251,82,251,77,100,130,231,160,162,123,11,157,243,14,68,160,
+31,41,45,124,225,133,161,240,11,83,17,166,205,200,221,222,224,133,6,31,127,60,145,89,120,72,82,95,105,139,217,93,213,93,169,197,82,236,237,228,20,56,94,89,240,210,128,237,234,118,233,96,136,189,82,93,
+45,166,226,113,229,139,89,193,185,90,108,133,106,42,128,172,252,23,251,30,78,129,61,228,26,216,165,119,193,30,206,131,61,92,8,123,56,191,146,217,67,103,80,39,35,39,165,0,180,156,121,109,185,48,136,179,
+149,13,58,219,194,190,28,187,189,47,72,206,73,244,39,8,211,208,107,134,101,145,130,115,185,7,203,167,94,235,90,236,123,120,35,236,225,52,84,6,4,187,248,118,10,240,119,192,30,62,116,16,216,67,151,30,131,
+182,101,21,114,27,184,129,168,137,14,137,97,184,226,133,53,175,58,45,225,45,197,223,182,174,90,204,192,105,109,93,85,185,130,89,42,233,133,181,12,222,123,5,84,234,89,75,118,246,206,177,135,163,224,14,
+231,242,204,129,61,188,13,246,16,251,176,57,83,243,205,30,190,61,52,103,98,225,38,33,214,89,103,98,187,169,173,101,192,62,170,217,93,95,13,218,46,30,6,174,113,31,128,154,105,181,211,242,12,42,229,109,
+89,101,199,209,178,226,3,193,77,216,245,45,148,171,2,50,96,197,110,74,162,70,13,132,61,156,66,193,125,54,236,225,44,216,195,59,97,15,239,204,39,123,200,169,199,131,128,111,216,29,82,200,247,13,38,160,
+12,117,149,17,184,107,172,93,220,214,244,133,196,120,182,165,237,210,46,69,50,19,170,111,21,149,27,108,88,2,218,178,129,226,57,131,171,183,84,229,163,176,69,205,135,82,168,30,87,192,30,14,135,61,188,5,
+246,16,133,193,162,153,176,135,11,243,201,30,254,21,236,225,205,133,236,161,91,69,31,187,164,227,207,110,169,114,214,53,212,49,233,231,13,220,110,27,86,128,142,221,112,184,180,213,124,73,78,84,106,172,
+179,176,101,160,121,225,108,41,108,233,75,115,99,18,34,183,156,239,161,236,225,53,248,30,114,103,245,252,41,176,135,83,97,15,239,203,39,123,184,163,132,61,84,35,105,192,138,191,93,78,36,188,21,131,251,
+231,120,1,6,31,118,37,42,105,157,185,237,13,46,53,190,8,101,198,34,3,142,213,240,84,203,6,27,45,44,243,228,215,29,223,229,216,195,246,176,135,56,226,205,26,7,123,56,25,246,16,73,197,228,155,242,197,30,
+114,120,207,178,135,30,2,164,200,100,26,34,96,255,172,56,220,207,135,102,218,214,183,91,186,133,116,141,118,204,187,187,114,114,10,124,54,235,127,24,30,196,17,104,96,64,174,205,142,225,172,239,97,171,
+38,39,167,222,87,225,123,56,4,223,195,241,204,218,115,0,181,110,206,23,123,248,106,121,246,80,5,188,24,143,111,95,217,191,155,6,31,73,150,236,231,92,90,156,137,13,222,160,253,154,129,4,36,157,13,46,96,
+203,192,247,164,101,36,100,156,216,148,37,23,250,30,22,177,135,245,97,15,59,193,30,246,130,61,28,137,239,225,173,176,135,147,242,197,30,190,82,158,61,52,56,199,160,143,191,160,191,156,143,51,174,79,22,
+115,143,89,215,205,132,59,45,119,87,246,12,123,133,47,196,151,16,63,43,62,250,226,194,117,207,158,99,11,151,98,15,235,193,30,182,129,61,188,28,223,195,65,248,30,222,2,123,120,115,190,216,67,114,80,89,
+246,80,51,153,112,208,138,171,40,92,63,195,56,217,25,215,32,253,123,116,83,95,130,221,217,110,29,224,180,60,132,193,59,99,135,167,184,47,32,122,139,255,135,193,250,245,18,246,176,89,33,123,88,15,246,176,
+249,137,233,202,206,176,135,215,51,121,221,76,151,158,152,47,246,240,189,210,236,161,75,147,227,202,96,35,208,176,255,139,117,84,246,208,238,234,146,227,47,238,68,230,82,21,91,82,119,100,78,104,46,81,
+206,236,206,240,206,246,190,0,131,15,3,73,123,130,147,161,82,69,91,216,173,166,51,117,163,122,176,135,77,97,15,11,96,15,123,192,30,142,133,61,28,159,47,246,240,83,216,67,144,120,51,18,102,41,164,197,92,
+91,109,49,3,42,107,255,151,181,0,12,87,60,151,34,49,30,55,45,110,73,253,247,254,221,165,203,153,219,192,229,155,156,221,13,222,141,137,251,108,79,82,110,100,20,138,159,121,230,25,185,173,102,235,214,45,
+8,248,184,212,162,33,236,97,115,80,188,46,176,135,195,97,15,111,204,23,123,72,42,117,54,217,197,44,123,104,166,194,204,132,191,84,22,197,179,197,3,197,179,23,216,66,162,178,206,212,174,169,46,79,177,113,
+113,35,98,247,246,164,101,107,187,83,19,167,247,216,104,171,187,35,83,78,28,236,97,179,122,53,210,165,157,154,164,230,77,234,166,230,23,29,159,90,54,58,145,128,79,74,221,187,212,72,147,6,229,155,61,124,
+166,144,61,116,107,105,160,230,158,220,16,120,145,144,1,135,157,174,19,88,152,196,25,108,208,225,6,228,44,109,144,113,215,86,100,68,60,54,74,189,184,41,113,63,30,129,219,117,143,62,250,232,98,38,226,202,
+22,71,167,190,160,120,237,155,156,148,90,54,60,33,23,112,187,102,213,211,213,180,240,152,254,231,229,153,61,124,169,132,61,20,180,52,5,227,117,19,6,103,171,186,182,58,11,219,170,46,89,6,235,100,227,58,
+28,100,154,27,144,32,94,92,203,13,216,23,96,247,246,116,229,222,219,189,182,47,199,110,110,82,80,218,197,229,136,51,110,26,0,111,56,248,98,30,216,195,110,45,143,33,232,19,83,219,166,213,211,53,23,179,
+203,26,80,160,126,243,15,249,99,15,73,146,223,70,222,56,235,123,232,73,198,93,147,227,52,107,255,23,220,161,193,218,61,253,229,109,193,44,134,23,6,143,238,220,2,160,142,244,144,61,193,192,157,216,2,202,
+234,216,224,216,226,96,7,117,174,150,250,118,48,232,163,83,123,160,233,158,80,226,3,6,244,171,4,223,195,167,75,124,15,205,46,186,251,114,137,202,186,225,249,103,247,201,110,52,156,168,108,93,143,140,97,
+203,25,220,97,214,220,49,252,75,109,233,184,123,203,9,77,197,173,210,255,211,106,158,154,250,117,132,44,237,116,92,50,216,254,29,171,165,1,69,207,224,139,143,74,3,175,56,29,119,190,75,220,126,110,81,171,
+153,63,246,240,35,216,195,69,229,217,67,247,214,238,165,13,212,37,197,165,37,14,18,142,113,103,98,3,54,160,184,240,196,108,70,60,38,235,253,188,107,116,92,84,228,129,63,124,15,219,183,107,147,11,190,121,
+195,243,210,25,53,79,76,77,106,211,149,47,58,49,117,105,114,92,26,214,245,123,105,124,207,211,92,174,254,9,49,249,135,10,83,243,195,30,126,2,123,248,14,236,33,21,129,138,216,67,51,143,225,12,157,189,195,
+195,73,40,236,255,60,60,56,97,197,69,128,89,208,50,130,118,76,155,192,11,28,47,8,53,121,38,209,129,192,107,107,212,168,145,206,56,253,180,66,67,185,130,198,114,137,95,208,227,118,229,199,247,112,19,190,
+135,22,182,168,245,88,254,88,126,63,236,225,240,242,190,135,46,85,102,63,156,204,44,183,24,168,79,96,120,206,198,6,100,107,218,186,66,150,230,199,48,163,203,157,192,188,2,82,222,201,53,119,95,124,15,253,
+30,73,25,206,203,255,172,128,156,94,177,75,201,49,137,187,171,121,68,105,107,241,28,95,225,85,173,32,169,199,50,243,142,85,83,193,100,177,147,174,177,231,242,203,11,254,244,1,245,89,75,150,86,241,44,108,
+173,7,208,122,125,21,236,225,188,138,217,67,19,110,110,244,125,243,238,138,28,139,113,237,148,193,70,182,196,86,22,131,61,246,216,99,115,75,79,208,106,225,68,251,77,236,97,5,190,135,178,135,187,14,156,
+61,164,24,109,125,118,243,219,176,135,63,134,61,124,17,246,144,90,143,229,143,69,183,151,103,15,205,63,25,180,105,25,51,21,6,104,46,43,178,30,193,29,218,194,98,122,177,169,8,131,71,91,247,208,179,135,
+227,96,15,55,195,30,190,10,123,152,41,108,173,123,22,246,240,46,216,67,146,228,222,89,231,150,83,47,83,79,54,62,110,248,131,23,12,246,208,113,88,17,123,232,62,217,127,99,46,122,111,236,161,63,231,224,
+176,135,139,96,15,169,207,90,178,180,176,181,225,5,216,195,103,97,15,41,127,44,152,13,123,56,177,180,239,161,187,36,179,20,118,189,175,99,15,253,124,240,73,142,69,65,105,131,117,72,248,162,164,211,92,
+135,125,194,209,82,86,209,159,205,228,244,239,252,249,11,190,127,59,51,248,118,164,15,143,49,94,195,213,82,25,68,117,158,163,190,81,32,238,55,241,166,219,162,161,120,134,73,102,143,154,10,175,56,182,242,
+110,49,218,250,236,198,151,97,15,33,75,45,108,89,235,89,185,24,246,240,118,216,195,73,176,135,228,141,71,142,24,152,155,180,42,139,61,44,194,241,126,81,249,190,135,84,222,31,195,186,243,179,13,176,135,
+56,90,90,197,179,176,181,2,20,239,169,69,176,135,84,4,76,146,207,28,7,123,56,8,223,195,12,123,152,15,223,195,34,51,216,96,15,183,179,175,255,242,224,176,135,99,97,15,169,207,90,178,92,129,11,158,193,90,
+235,177,252,97,208,75,238,4,206,34,111,108,42,181,255,213,176,135,36,220,204,65,53,107,0,123,120,193,190,251,30,198,184,119,242,115,227,65,203,254,59,115,192,47,120,121,219,169,126,28,100,223,67,217,67,
+234,179,107,159,134,61,124,16,246,80,238,144,242,199,146,121,176,135,183,195,30,146,36,55,111,60,235,38,124,15,201,46,246,237,94,157,7,246,176,249,190,179,135,101,125,15,129,163,127,102,55,182,101,139,
+64,203,123,24,130,61,120,218,242,212,43,82,213,87,104,87,180,79,2,113,43,111,234,160,188,150,156,37,100,29,152,252,103,28,11,63,97,150,252,152,174,244,91,139,209,115,166,192,30,82,178,180,138,103,97,107,
+25,45,252,224,109,176,135,84,4,76,146,207,159,130,239,225,77,248,30,14,173,153,38,13,131,61,236,188,239,236,161,115,0,19,212,191,17,248,223,73,130,59,65,233,85,90,212,141,245,82,51,88,253,74,117,146,22,
+239,249,254,1,35,0,138,190,138,238,96,31,198,127,244,2,85,250,157,92,134,189,135,75,6,182,208,229,118,50,203,254,141,119,195,90,178,92,122,55,236,225,98,216,67,106,61,150,63,238,159,5,123,56,141,238,77,
+222,120,238,4,216,195,105,199,167,65,189,74,179,135,110,48,236,178,193,30,122,125,133,21,14,175,170,56,114,124,15,41,108,89,235,89,69,249,99,37,21,1,147,228,75,230,224,123,56,31,223,195,225,220,153,195,
+120,12,246,208,165,40,203,30,186,205,204,176,135,31,242,98,183,178,35,59,130,124,15,101,15,169,8,152,36,159,125,51,236,225,168,66,246,208,146,235,215,248,30,126,68,55,222,164,1,58,197,187,220,85,21,58,
+71,23,93,104,224,58,107,23,246,82,3,215,218,83,236,198,217,245,246,128,187,116,246,7,240,131,191,199,35,102,35,126,211,137,203,189,230,50,107,110,96,34,241,14,156,79,184,107,250,115,210,63,59,57,237,124,
+68,87,221,194,198,99,39,99,255,11,54,9,95,177,153,248,45,203,202,95,179,193,248,107,102,217,223,18,200,87,94,246,229,253,87,85,236,33,119,233,20,89,219,123,234,241,154,10,79,62,209,170,85,236,225,190,
+16,57,251,180,44,237,211,15,170,98,15,115,56,157,104,157,224,165,214,244,174,145,85,190,135,69,47,164,138,61,220,151,97,180,63,223,147,183,49,188,63,255,249,161,248,55,7,37,224,42,246,176,138,61,172,98,
+15,171,216,195,42,246,176,138,61,252,174,176,135,224,59,243,239,104,157,46,239,86,240,39,111,95,36,49,176,205,59,250,76,29,115,252,124,221,203,205,72,222,91,59,218,167,27,91,246,105,29,70,198,80,147,234,
+254,112,173,0,117,199,67,188,242,62,229,207,109,20,195,126,63,106,84,47,170,251,227,16,157,221,130,242,110,6,202,88,69,228,51,40,140,47,64,176,118,39,127,158,196,231,39,240,220,196,215,70,83,56,31,142,
+192,236,102,4,165,227,80,6,244,71,153,211,23,249,226,245,212,145,123,34,139,232,129,106,167,55,42,190,190,84,32,187,98,11,216,41,109,217,212,54,125,186,173,105,250,224,45,216,195,126,71,2,123,184,11,223,
+195,207,96,15,119,192,30,110,132,61,92,11,123,248,30,236,225,59,176,135,175,192,30,174,133,61,220,0,123,184,9,246,240,253,140,239,225,123,248,30,190,131,239,225,91,237,210,187,111,192,30,190,15,123,248,
+30,236,33,215,210,29,158,236,225,54,124,15,127,131,239,225,59,176,135,179,97,15,7,236,197,247,112,16,190,135,183,192,30,174,132,61,124,15,246,240,199,176,135,235,138,130,93,11,123,248,26,37,218,151,97,
+15,223,128,61,220,14,123,184,232,112,99,15,55,141,75,247,222,211,159,43,153,135,228,92,238,204,62,170,3,177,236,162,54,68,229,79,88,254,149,243,61,156,128,239,225,52,216,195,101,176,135,207,195,30,190,
+10,123,248,10,37,218,23,97,15,223,130,61,124,29,246,240,77,216,195,135,14,23,246,112,249,80,2,188,50,87,243,85,166,104,96,214,128,227,106,229,178,236,161,69,243,64,241,74,249,30,14,192,247,112,54,236,
+225,35,20,223,95,132,61,164,165,183,172,129,61,252,17,236,225,10,216,195,87,97,15,231,29,106,246,176,255,53,185,64,131,61,12,223,67,21,58,113,143,116,220,31,109,213,95,33,140,230,114,69,153,203,156,246,
+75,149,95,41,246,240,6,216,195,71,96,15,95,129,61,36,216,117,79,193,30,114,31,238,91,79,194,30,190,0,123,56,242,80,177,135,183,142,207,117,217,240,61,180,202,31,84,154,1,135,136,69,177,138,50,164,96,16,
+189,248,94,41,132,95,151,48,141,59,231,185,201,63,247,2,114,236,225,76,216,195,219,97,15,31,134,61,36,216,53,203,96,15,151,80,174,93,14,123,248,35,216,195,235,15,161,239,97,184,103,169,185,10,70,201,32,
+195,217,50,4,104,170,1,226,194,123,53,148,106,66,228,32,226,206,121,135,131,61,165,20,123,56,19,246,112,49,236,225,18,216,195,197,176,135,15,192,30,46,135,61,124,228,16,179,135,202,26,196,122,12,40,112,
+60,117,89,89,74,205,128,109,229,144,26,134,77,145,178,70,131,181,10,81,206,247,112,20,236,225,76,216,195,197,176,135,4,187,106,33,236,225,66,216,67,138,121,183,79,62,24,236,97,209,152,117,210,9,237,134,
+10,29,213,115,225,175,148,117,210,202,6,236,247,43,49,84,187,165,164,73,1,169,150,37,138,79,157,224,20,179,249,178,46,185,228,146,210,190,135,178,135,211,97,15,23,194,30,62,8,119,120,63,207,66,216,195,
+251,96,15,187,85,166,239,225,139,147,114,45,160,178,214,174,107,48,170,116,100,9,29,151,182,174,106,186,48,139,203,182,112,128,30,6,108,11,43,73,212,240,194,235,213,67,39,173,184,77,233,162,65,71,13,170,
+216,247,112,10,236,225,93,176,135,247,193,30,222,9,123,200,117,176,207,47,128,61,100,83,82,57,236,225,150,210,236,161,147,83,248,166,217,53,21,133,170,203,50,32,91,60,240,157,104,225,112,199,179,219,219,
+27,12,88,228,71,97,120,16,50,89,69,188,179,121,57,246,112,2,236,33,215,192,46,229,86,212,37,212,160,159,158,7,123,56,167,50,216,67,118,80,110,42,108,93,65,230,192,222,13,194,110,108,11,251,8,105,133,212,
+48,186,117,140,231,172,255,161,47,71,29,166,93,216,128,37,97,148,254,11,142,132,103,132,170,248,114,236,225,16,216,195,155,81,25,16,236,226,91,41,192,207,132,61,188,167,50,216,195,173,227,184,64,228,234,
+220,206,201,110,26,236,161,127,246,23,183,107,26,112,48,136,49,158,29,179,126,79,248,177,72,170,69,119,150,102,179,43,139,228,133,127,147,170,220,192,10,212,94,251,98,172,33,91,63,246,255,30,122,3,236,
+33,197,245,135,102,240,76,135,61,156,6,123,56,15,246,240,230,124,178,135,28,4,54,172,43,100,15,221,21,133,185,140,221,209,9,71,158,33,108,14,84,180,219,202,78,72,6,109,247,182,165,195,3,209,49,174,186,
+214,239,83,230,175,252,56,220,45,213,91,171,187,86,112,46,47,225,35,174,167,140,73,249,131,130,53,131,30,217,23,246,112,60,5,119,36,21,139,160,210,150,205,130,61,156,149,79,246,144,83,143,7,129,96,15,
+21,118,187,180,168,156,181,43,250,81,229,187,226,82,73,21,91,59,150,27,101,255,46,69,209,173,29,215,194,30,178,13,142,219,192,120,194,129,43,236,139,194,33,79,13,102,176,135,106,180,188,130,185,123,183,
+102,105,202,224,26,233,174,9,176,135,83,96,15,145,85,172,188,51,159,236,225,87,229,217,67,3,116,140,133,73,92,136,194,213,73,219,226,2,27,46,53,217,241,108,208,78,88,190,140,48,123,12,178,52,112,31,105,
+24,153,67,91,87,120,196,49,172,120,77,153,162,31,157,196,186,116,110,159,250,95,9,182,195,157,213,243,199,33,158,153,0,123,56,23,85,252,13,249,242,61,220,90,154,61,12,20,79,152,42,36,255,142,65,39,29,
+225,43,199,164,242,127,225,14,105,21,187,176,75,146,1,187,116,169,165,246,123,237,194,82,49,65,148,6,100,25,127,55,112,247,220,130,30,26,100,248,81,13,167,74,188,174,109,78,78,163,174,135,61,28,1,123,
+120,19,236,225,76,216,195,209,249,98,15,57,188,103,217,67,187,89,204,168,254,210,182,82,184,240,248,2,2,205,139,86,119,124,187,141,116,121,178,59,251,111,109,209,176,237,12,35,185,0,46,179,176,165,208,
+151,123,110,113,218,96,15,115,190,135,220,55,223,251,50,124,15,251,227,123,56,138,89,27,50,237,214,155,242,197,30,190,92,154,61,180,133,133,175,156,96,194,183,208,153,213,39,76,166,130,27,116,137,113,
+169,17,194,52,104,63,58,78,195,152,53,90,211,49,235,231,99,178,10,186,205,23,35,72,18,142,31,197,236,33,72,207,229,5,39,165,193,61,96,15,111,192,247,240,102,216,195,113,249,98,15,95,42,207,30,134,95,154,
+65,102,97,173,176,212,13,15,53,187,165,143,1,217,237,109,97,91,222,225,96,79,136,37,200,241,26,176,101,76,96,254,12,95,156,47,215,64,75,177,135,117,97,15,91,192,30,118,197,247,176,15,190,135,227,96,15,
+199,229,139,61,36,7,149,101,15,39,78,156,152,115,218,137,96,179,24,158,1,71,23,245,207,126,143,191,180,12,161,193,186,60,201,39,57,155,139,216,57,241,185,244,24,124,12,15,63,250,66,227,239,206,228,229,
+216,195,58,176,135,77,241,61,108,95,61,13,185,186,102,154,55,210,46,157,47,246,112,67,9,123,136,40,45,119,197,132,87,202,120,172,43,139,225,5,123,24,159,183,139,187,63,118,169,114,134,142,171,106,236,
+222,174,227,242,17,206,236,78,114,49,241,217,162,206,5,190,8,131,245,165,168,179,46,197,30,214,129,61,108,4,123,216,26,246,176,27,236,225,48,216,195,49,249,98,15,119,149,176,135,6,154,187,35,135,103,210,
+164,73,185,49,44,122,103,247,243,9,20,207,64,195,59,205,221,148,75,145,27,16,119,104,238,186,220,128,184,100,185,116,185,132,25,184,91,204,240,21,55,248,240,66,117,39,87,200,30,158,89,200,30,182,130,61,
+172,13,123,88,31,246,176,241,241,169,123,7,216,195,1,176,135,67,243,197,30,146,74,53,187,232,9,73,81,153,25,10,129,14,55,21,49,206,194,194,51,102,108,103,98,91,198,96,109,73,151,38,183,149,110,90,76,10,
+196,30,220,195,70,28,34,130,50,117,57,51,240,88,222,60,43,75,167,185,241,200,225,60,178,135,23,194,30,54,208,240,17,246,176,125,141,116,243,245,249,100,15,201,27,191,244,84,105,223,67,51,18,78,62,1,74,
+59,27,59,14,195,100,213,110,236,230,196,32,12,200,238,239,190,58,155,254,113,153,10,59,79,183,163,182,164,36,155,7,10,91,60,224,76,145,1,153,136,230,205,155,22,218,14,213,171,153,154,215,63,49,181,228,
+105,215,24,246,144,113,60,230,186,124,179,135,171,97,15,135,20,250,30,154,130,53,205,234,157,29,182,164,203,134,19,140,99,207,174,232,254,216,238,233,196,36,168,101,235,70,22,36,200,82,19,125,145,14,114,
+191,237,247,24,116,248,152,26,44,226,180,98,167,45,125,15,47,111,95,151,46,221,54,53,56,191,48,216,22,60,109,27,194,30,182,103,151,213,55,223,236,33,73,114,243,198,101,217,67,187,158,173,234,120,51,88,
+187,177,159,115,179,225,1,33,252,210,236,206,1,90,198,213,24,6,237,184,22,224,50,105,16,160,165,47,82,50,237,168,163,142,42,180,240,4,0,233,12,123,216,191,227,113,169,83,179,154,169,49,19,150,193,54,199,
+176,181,109,163,147,8,248,164,212,159,6,224,144,241,43,173,19,14,220,247,144,242,135,21,129,213,143,151,102,15,77,182,57,113,85,116,136,240,112,96,130,206,150,139,132,64,214,224,49,124,14,29,211,38,11,
+252,30,95,138,135,18,151,45,95,128,94,106,118,101,3,30,8,92,57,24,222,176,111,65,181,212,238,162,227,82,115,8,241,230,23,158,148,218,131,212,246,236,114,110,30,217,67,10,91,214,122,182,111,198,247,112,
+35,236,225,125,37,236,161,219,77,125,15,77,178,103,189,196,93,163,109,93,207,199,78,74,217,238,28,30,228,97,205,29,204,97,228,186,12,216,132,130,39,179,156,239,225,233,53,83,207,86,71,229,130,29,196,51,
+176,125,181,212,171,77,181,212,190,193,247,83,179,186,39,166,78,77,79,74,215,94,222,194,163,227,255,82,133,123,96,236,33,37,203,93,219,241,61,220,137,239,225,71,176,135,111,192,30,82,17,24,74,146,60,235,
+123,104,194,205,116,140,227,207,138,130,7,4,39,42,131,13,251,63,15,15,46,73,225,100,25,160,101,84,39,194,198,211,151,99,86,37,216,195,150,141,206,73,125,58,158,148,122,183,63,46,215,202,3,8,216,167,103,
+203,106,169,101,221,227,210,197,45,78,77,151,94,220,206,141,201,30,37,199,7,198,30,46,232,152,254,234,231,93,210,230,119,96,15,45,108,81,235,177,252,177,252,222,242,236,161,74,118,31,55,246,210,105,182,
+152,129,155,224,179,203,198,12,109,37,34,32,75,111,63,244,5,24,180,1,251,209,67,126,89,223,67,215,222,134,117,207,74,13,47,56,57,117,133,40,189,162,249,49,169,127,59,12,91,219,86,75,87,119,248,161,12,
+211,63,177,215,214,164,117,251,129,177,135,20,163,173,207,90,178,180,138,103,97,107,253,243,176,135,79,193,30,206,41,205,30,134,194,221,95,216,12,133,129,185,228,196,229,67,145,3,179,75,219,186,34,57,
+252,114,185,0,45,191,88,185,240,239,129,208,102,217,67,215,223,32,218,92,162,206,63,231,244,84,251,188,211,83,247,214,39,165,203,218,158,255,31,180,238,151,249,243,61,164,24,109,125,118,243,26,216,67,
+130,93,191,18,246,144,90,143,229,143,69,179,96,15,167,21,94,216,233,70,196,214,141,22,246,56,231,76,107,224,206,206,217,187,46,13,46,156,163,101,15,61,246,237,43,123,24,94,106,238,173,253,191,32,214,254,
+145,23,252,41,255,87,78,57,143,34,32,232,52,133,173,213,247,74,166,209,21,191,15,92,49,0,172,117,27,99,105,183,50,3,111,253,245,210,76,225,172,247,87,195,30,102,10,91,235,158,134,61,188,163,60,123,104,
+194,205,95,72,191,195,96,15,3,165,243,16,239,22,49,27,100,16,165,251,194,30,250,115,252,217,246,40,122,193,191,240,127,124,202,152,255,148,63,239,202,175,239,225,61,176,135,212,103,45,89,90,216,218,176,
+18,246,240,105,216,67,202,31,11,166,193,30,142,43,241,61,52,209,22,236,161,176,85,69,236,161,235,171,208,115,225,14,170,121,110,143,124,248,177,135,20,163,173,207,110,124,22,246,112,5,236,33,133,45,107,
+61,43,239,131,61,156,5,123,56,14,246,144,188,241,136,27,11,125,15,139,60,207,190,214,247,208,241,27,213,5,3,246,144,111,42,39,186,109,124,140,30,224,88,118,236,203,30,114,115,203,95,28,28,246,240,30,216,
+195,55,96,15,31,135,61,44,42,108,173,184,23,246,240,46,216,67,42,2,38,201,111,29,117,22,169,84,124,15,201,46,118,238,84,144,107,237,124,176,135,101,124,15,15,34,123,56,10,246,144,250,172,37,203,21,248,
+28,26,172,181,30,203,31,6,189,100,54,112,22,121,227,169,55,112,86,189,188,70,234,218,22,246,176,17,236,33,87,66,237,15,123,248,53,190,135,7,153,61,164,24,109,125,118,237,163,176,135,247,194,30,82,216,
+178,252,97,176,139,111,133,61,36,73,110,222,120,230,8,216,195,222,176,135,221,96,15,47,135,61,108,178,127,236,33,19,218,255,35,47,92,196,30,254,252,208,177,135,19,96,15,41,89,90,197,179,176,181,12,238,
+240,65,144,90,43,2,38,201,231,115,133,155,169,212,137,3,96,15,7,195,30,118,44,207,30,154,111,174,200,247,176,136,63,14,246,112,247,225,195,30,82,159,181,100,185,148,11,115,87,223,11,123,72,173,199,242,
+199,253,83,97,15,39,210,189,201,27,207,29,13,123,56,9,223,195,107,246,238,123,120,100,178,135,20,182,172,245,172,162,252,177,242,118,216,67,146,228,75,110,129,61,188,13,246,112,240,222,217,67,15,35,101,
+216,195,109,71,22,123,72,249,195,138,128,73,242,217,227,96,15,71,84,177,135,85,236,161,119,233,84,177,135,213,170,157,233,97,128,167,216,23,252,219,224,64,251,36,31,222,151,31,168,94,185,8,177,173,242,
+61,172,98,15,171,85,251,97,17,115,40,136,233,83,197,30,238,203,48,218,159,239,201,219,24,222,159,255,252,80,252,155,131,18,112,21,123,88,197,30,86,177,135,85,236,97,21,123,88,197,30,30,233,236,225,142,
+139,211,238,237,237,33,211,96,15,231,194,30,94,246,93,102,15,63,133,61,124,23,246,112,3,236,225,187,176,135,155,97,15,1,180,6,246,57,82,216,195,79,97,15,183,195,30,190,7,123,248,58,236,225,6,216,195,183,
+97,15,95,134,61,124,29,246,240,29,216,195,15,138,216,195,159,12,76,91,185,184,123,227,219,176,135,226,120,111,192,30,190,10,123,248,14,236,225,122,216,195,49,135,51,123,248,107,216,195,245,176,135,179,
+246,129,61,156,10,123,248,35,216,195,119,96,15,95,130,61,124,189,40,216,215,96,15,95,166,68,187,26,246,240,85,216,195,143,96,15,239,59,156,216,195,157,183,164,205,27,97,15,239,46,207,30,42,59,10,51,184,
+189,178,135,83,97,15,151,192,30,62,3,123,248,18,236,225,11,148,104,159,131,61,124,3,246,240,199,176,135,175,194,30,46,58,28,216,195,173,83,210,99,203,202,179,135,225,123,24,69,112,85,2,94,184,171,36,88,
+69,95,160,120,229,216,195,89,176,135,15,81,124,127,14,246,144,150,222,242,10,236,225,19,176,135,79,194,30,190,8,123,120,251,161,100,15,119,221,150,6,84,192,30,90,15,86,176,98,85,223,2,184,213,126,5,48,
+6,205,101,130,185,128,85,243,41,114,11,246,80,57,84,177,239,161,236,225,67,176,135,47,194,30,18,236,186,199,96,15,151,194,30,46,135,61,92,5,123,56,252,80,176,135,155,110,78,51,247,194,30,26,180,218,202,
+16,178,88,233,23,7,80,177,19,206,91,202,31,228,146,212,125,169,244,179,234,88,138,61,188,13,246,240,1,216,67,130,93,243,8,236,33,126,105,107,151,192,30,62,14,123,216,235,96,178,135,239,143,7,250,184,60,
+39,28,151,80,11,195,138,184,239,93,53,142,65,133,152,197,110,29,58,75,181,89,129,228,41,124,81,218,164,14,196,160,131,61,204,193,28,225,123,56,29,246,240,1,216,195,135,96,15,239,135,61,92,0,123,248,8,
+236,225,3,7,139,61,220,56,1,164,231,154,28,229,226,120,12,28,79,129,153,10,58,5,102,106,59,178,56,94,80,45,190,144,172,68,73,225,139,186,44,21,123,6,236,11,244,231,34,63,202,233,62,12,122,172,236,225,
+116,216,195,69,176,135,4,187,234,30,216,195,123,96,15,151,193,30,78,172,108,246,144,9,42,198,172,93,53,124,209,236,166,33,68,179,101,253,187,4,75,214,66,44,176,188,0,182,124,57,182,174,18,39,85,181,142,
+103,117,33,94,245,104,201,69,69,128,212,169,61,104,228,141,176,135,83,97,15,239,129,61,92,8,119,120,31,207,221,176,135,119,193,30,94,86,89,236,225,223,45,73,47,173,46,100,15,253,69,252,197,29,167,182,
+154,191,188,1,171,151,12,28,207,110,91,182,149,179,192,150,42,159,176,244,84,84,42,16,162,210,214,201,206,151,89,206,247,144,171,34,31,191,19,246,240,46,216,67,234,208,203,103,193,30,222,5,123,200,166,
+164,114,216,195,15,97,15,135,149,248,30,6,123,104,43,10,98,40,76,11,28,207,110,29,55,135,7,148,25,132,154,227,85,253,150,162,53,3,86,94,172,54,83,238,73,149,188,226,84,241,32,103,245,114,236,225,77,176,
+135,51,41,190,227,147,182,100,6,236,225,92,216,195,153,149,197,30,178,169,176,117,157,85,18,181,144,228,0,0,114,175,73,68,65,84,109,41,91,194,113,235,120,149,80,179,149,34,232,48,137,51,232,8,212,158,
+144,5,46,253,30,95,144,255,78,233,162,224,150,226,212,112,231,210,166,204,219,255,245,61,244,255,85,171,61,102,48,236,161,14,90,4,187,152,162,251,146,91,96,15,239,172,12,246,112,75,9,123,24,45,107,23,
+182,53,252,197,108,29,121,36,3,247,243,97,7,168,110,210,151,146,229,15,21,142,150,197,105,213,86,171,177,86,246,31,174,92,58,105,57,198,21,169,249,56,131,203,30,78,25,12,119,56,149,7,131,184,7,38,195,
+30,98,31,54,103,66,190,217,67,216,165,178,236,161,50,225,192,96,13,92,245,187,106,246,160,210,108,193,224,15,237,214,190,168,112,224,241,107,10,194,125,73,242,14,6,43,8,18,198,85,98,5,62,138,208,149,53,
+169,205,42,102,15,175,135,61,28,67,193,125,18,236,33,34,154,101,211,96,15,167,231,147,61,228,212,227,65,32,203,30,58,73,101,33,140,48,164,113,12,42,14,87,213,46,253,45,215,144,117,173,53,96,199,175,189,
+64,1,121,192,29,242,17,97,37,38,15,37,41,35,179,36,90,224,210,167,200,77,28,47,199,30,94,134,239,225,0,216,195,177,176,135,40,12,22,113,179,241,202,217,249,100,15,127,5,123,56,177,180,239,161,45,27,191,
+164,200,141,173,163,80,220,71,86,193,110,174,140,223,160,195,240,49,198,175,179,184,51,178,63,195,151,22,54,158,226,4,6,26,192,72,16,50,18,48,106,180,12,58,231,123,216,185,67,234,223,13,108,7,172,118,
+254,104,216,195,177,176,135,51,81,197,15,206,23,123,184,165,188,239,161,93,47,12,225,108,5,91,197,23,224,227,24,12,6,209,177,109,208,238,188,156,180,92,159,213,82,43,42,247,37,249,111,69,126,34,184,32,
+211,252,187,45,236,134,68,193,139,130,53,63,58,150,237,218,93,91,195,30,94,11,123,56,20,246,16,20,239,241,169,176,135,35,243,197,30,114,120,47,203,30,218,170,97,16,23,160,71,144,101,182,152,227,207,143,
+182,184,193,25,116,144,44,142,119,3,13,171,49,129,174,44,119,24,52,155,159,119,255,173,54,51,148,62,142,101,45,18,90,113,223,124,239,174,213,211,248,222,176,135,195,152,181,53,137,27,147,47,246,240,197,
+210,236,161,26,103,103,208,64,240,178,176,150,45,100,32,242,75,209,106,6,239,11,178,181,156,232,252,90,214,232,49,12,229,178,84,169,159,243,177,135,132,141,167,210,225,98,246,176,46,236,97,91,216,195,
+43,79,73,83,7,194,30,222,4,123,56,54,95,236,225,11,37,236,161,155,1,39,17,143,124,206,172,49,185,132,183,161,173,98,11,249,203,6,19,236,223,125,41,142,107,131,182,219,219,194,97,208,234,247,6,108,25,236,
+112,24,64,250,121,135,135,10,221,82,236,97,157,147,1,62,78,76,189,186,252,32,141,233,5,123,56,10,246,112,108,190,216,67,114,80,174,129,202,254,61,212,43,243,55,104,215,72,91,57,156,42,35,232,108,240,142,
+115,199,187,221,218,217,218,229,201,160,157,205,157,217,101,157,98,72,132,21,89,128,154,190,36,63,231,11,18,137,87,129,171,0,53,231,123,88,27,246,176,49,236,97,91,216,195,43,97,15,135,217,165,243,197,
+30,190,93,200,30,122,57,80,176,135,6,237,238,200,95,174,44,138,23,88,109,152,197,217,45,221,66,186,35,115,3,18,70,143,222,1,16,254,225,78,116,178,79,182,188,47,65,240,43,80,93,39,183,114,236,33,38,83,
+109,26,192,30,182,68,207,121,9,236,225,64,216,195,81,249,98,15,119,194,30,98,199,107,192,178,135,110,241,132,39,35,208,112,196,115,166,14,66,77,128,203,77,131,107,178,187,47,119,86,114,74,110,62,60,69,
+249,119,39,50,113,31,55,44,182,120,108,60,12,222,127,31,86,158,174,215,182,110,41,246,240,124,216,67,188,15,219,55,196,247,176,29,236,97,239,124,178,135,164,82,103,147,93,52,35,97,75,123,140,179,107,218,
+213,12,218,128,109,77,127,193,44,22,31,193,10,107,185,197,116,211,225,105,200,86,118,243,17,176,165,184,158,59,52,191,63,246,210,177,166,123,136,16,14,43,197,30,54,134,61,172,11,123,8,172,213,30,80,171,
+123,91,216,195,158,249,102,15,31,47,207,30,250,203,4,248,236,44,236,228,226,47,108,107,217,141,221,98,122,214,245,144,239,9,201,117,216,86,54,104,131,15,199,120,207,194,246,2,91,210,192,131,43,214,74,
+208,173,167,54,158,161,156,207,177,135,117,97,15,1,181,90,66,166,181,3,197,187,154,113,60,186,103,62,217,195,141,221,210,27,207,150,102,15,61,15,59,105,133,203,172,168,123,248,140,250,75,219,229,13,196,
+239,177,53,35,213,99,176,113,248,8,212,199,30,16,167,38,183,164,6,233,252,224,18,230,75,10,69,188,170,249,14,178,135,181,10,131,109,33,138,215,192,128,79,76,55,246,46,16,35,202,131,239,225,198,203,114,
+229,15,147,228,183,145,55,206,178,135,206,220,110,31,157,120,220,19,123,226,177,91,58,46,61,24,184,37,140,123,60,194,62,204,131,189,153,204,72,245,216,242,246,0,39,181,192,106,253,168,87,147,76,132,227,
+214,238,220,180,113,195,92,6,164,89,195,218,169,113,237,147,114,193,54,135,76,107,123,17,236,33,235,113,126,216,195,29,93,114,193,90,254,176,34,176,122,89,121,223,67,151,39,91,212,25,215,224,237,198,158,
+111,61,28,56,70,227,166,150,176,14,51,153,103,208,182,180,173,238,121,57,174,171,177,165,61,86,186,171,67,210,84,204,30,214,60,245,148,116,85,187,90,169,99,135,246,169,254,121,39,19,232,73,185,96,253,
+216,30,119,203,158,157,101,15,47,205,131,239,33,85,60,11,91,214,122,182,211,210,59,54,192,30,222,93,194,30,122,122,50,247,100,158,217,141,136,73,246,240,30,53,49,23,201,188,152,172,34,93,107,208,145,202,
+137,132,158,65,59,166,13,218,159,43,215,20,100,233,213,77,143,74,125,219,30,79,107,158,154,234,157,125,108,106,90,251,132,92,176,205,120,58,53,134,61,236,214,50,79,236,33,37,203,93,31,193,30,110,131,61,
+252,0,246,240,85,216,67,42,2,101,217,67,125,10,225,157,114,132,138,196,169,193,186,236,56,118,61,236,103,173,255,194,209,50,124,14,157,177,205,123,153,248,139,171,227,194,228,209,177,123,254,233,88,120,
+130,220,13,226,233,209,228,168,212,248,252,227,83,35,150,164,134,231,125,63,53,175,125,124,186,180,69,205,116,105,151,130,60,177,135,247,192,30,254,4,246,112,29,236,161,133,45,106,61,150,63,150,223,5,
+123,120,99,161,239,161,169,84,97,75,3,86,205,110,208,113,211,146,173,230,129,193,167,44,104,25,204,161,159,119,60,71,134,211,127,31,190,135,173,235,28,95,28,236,64,136,210,254,173,170,165,43,26,29,141,
+179,229,9,4,142,59,109,237,99,1,72,234,137,245,252,99,126,216,67,138,209,214,103,45,89,90,197,179,176,181,30,64,235,245,229,176,135,179,74,216,67,115,200,193,30,138,218,184,253,140,100,123,4,107,96,118,
+105,139,106,190,24,215,116,91,57,150,41,201,243,44,123,216,164,81,131,116,89,167,230,169,103,193,25,233,58,76,89,13,118,64,235,106,169,119,243,106,169,77,93,91,247,4,186,243,41,169,93,155,22,127,38,49,
+240,19,134,214,54,141,108,14,220,247,144,98,180,245,217,205,175,192,30,18,236,250,167,97,15,169,245,88,254,88,52,163,132,61,116,159,109,176,38,220,194,67,201,150,119,124,135,185,163,173,42,165,38,111,
+40,12,237,44,239,81,47,2,117,204,102,125,15,61,236,159,95,235,188,116,222,217,167,165,2,102,229,43,26,29,147,250,129,209,246,105,81,45,21,212,59,62,117,46,104,225,30,251,239,200,108,138,9,236,200,31,123,
+56,10,246,112,29,236,225,42,216,195,76,97,107,221,227,176,135,115,96,15,73,146,235,123,56,124,248,240,92,197,192,235,160,202,178,135,30,222,229,6,221,68,4,123,104,128,62,223,196,30,202,43,250,239,106,
+159,123,122,186,168,214,169,233,154,166,223,3,154,62,37,53,110,88,255,127,147,9,217,205,36,183,83,43,207,252,178,135,243,97,15,169,207,90,178,180,176,181,225,41,216,195,199,96,15,41,127,44,152,2,123,56,
+182,132,61,180,229,130,61,20,167,203,178,135,6,107,139,198,222,216,76,198,190,178,135,254,44,95,154,39,166,22,13,206,255,51,127,255,138,28,215,39,149,231,123,72,49,218,250,236,198,21,176,135,79,194,30,
+82,216,178,214,179,18,50,237,161,233,176,135,99,97,15,201,27,127,19,123,232,166,34,130,220,31,246,144,97,243,31,36,3,254,146,99,226,167,100,82,63,231,156,188,154,117,123,48,143,230,83,13,121,180,40,42,
+165,156,223,171,184,148,22,56,129,46,217,215,155,186,73,184,253,130,242,229,86,198,214,238,54,250,30,206,135,61,252,49,236,225,82,216,195,162,194,214,138,249,176,135,119,192,30,82,17,48,73,62,243,70,216,
+195,235,97,15,201,46,230,147,61,44,227,123,168,59,222,207,233,49,235,8,110,114,145,47,147,158,76,234,176,79,44,171,216,253,70,53,45,111,240,52,175,37,103,185,121,155,205,192,87,200,22,182,226,227,189,
+187,78,157,11,254,56,105,4,236,33,245,89,75,150,43,230,195,30,18,172,181,30,203,31,6,189,100,198,153,233,206,209,167,166,41,253,57,171,94,134,239,33,9,183,214,13,138,216,195,90,223,206,247,208,244,78,
+214,247,80,170,148,73,106,199,193,247,61,164,24,109,125,118,237,67,176,135,243,97,15,41,108,89,254,48,216,197,183,192,30,146,36,55,111,60,147,84,234,152,94,167,164,126,151,86,39,248,99,83,91,216,195,152,
+132,60,212,251,248,247,24,231,49,78,13,244,240,244,61,28,7,123,72,201,210,42,158,133,173,101,128,150,15,98,251,103,69,192,36,249,124,16,188,89,195,78,79,55,247,173,153,38,15,128,61,108,95,194,30,154,103,
+54,176,189,177,135,135,167,239,33,245,89,75,150,75,217,140,172,158,15,123,72,173,199,242,199,253,19,97,15,111,130,61,36,111,124,251,240,211,211,130,241,248,30,246,56,51,119,11,132,235,181,8,124,220,89,
+121,100,251,30,82,216,178,214,179,234,54,216,67,42,2,38,201,151,112,133,219,19,211,97,15,7,156,145,171,251,250,56,67,135,239,97,92,168,93,129,239,225,17,198,30,82,254,176,34,96,146,124,246,104,216,195,
+225,133,236,33,85,253,255,210,247,144,45,230,191,177,150,254,145,195,253,31,104,249,95,178,100,85,249,30,22,93,85,17,118,128,174,179,46,61,122,179,85,104,204,90,17,68,242,141,203,210,215,58,68,98,200,
+204,127,164,155,228,15,120,106,243,116,196,248,124,6,75,214,235,44,25,219,56,24,236,208,223,148,52,238,79,208,100,253,140,235,228,62,67,127,181,147,171,208,183,115,176,223,202,241,113,43,59,177,109,126,
+15,45,252,41,45,253,83,246,225,159,177,129,216,230,45,73,236,1,182,84,177,135,133,238,122,85,236,225,183,225,159,246,187,75,239,165,171,11,93,30,87,52,182,170,124,15,139,186,100,21,123,248,109,186,229,
+129,124,111,222,187,244,129,252,50,7,227,223,30,148,128,171,216,195,42,246,176,138,61,172,98,15,171,216,195,239,12,123,248,211,110,233,191,253,229,53,105,221,154,203,210,204,105,237,82,175,107,59,252,
+23,71,198,191,167,162,176,135,100,126,238,142,62,46,253,220,78,142,237,25,19,140,230,220,216,204,124,111,95,151,180,125,94,150,138,172,0,7,161,212,89,249,47,255,242,47,31,33,49,218,72,117,127,19,10,217,
+255,126,203,45,227,255,52,111,94,63,42,247,99,145,48,77,230,254,247,91,16,185,60,196,159,167,33,63,156,196,51,145,103,60,207,88,84,183,163,208,118,77,65,18,113,51,181,228,193,84,249,11,173,0,63,250,232,
+186,180,121,211,53,233,163,15,174,78,95,125,57,52,237,218,12,123,184,9,246,16,124,103,254,204,239,34,123,248,33,190,135,27,241,61,220,138,239,225,118,216,195,55,97,15,223,128,61,124,19,246,112,3,236,225,
+75,176,135,215,31,9,236,225,78,124,15,119,195,30,126,12,123,184,1,246,240,53,216,195,183,97,15,215,193,30,190,0,123,248,26,236,225,58,216,195,13,176,135,235,241,61,220,9,123,248,46,236,225,27,176,135,
+175,130,227,189,12,123,184,26,246,112,13,236,225,107,176,135,35,15,87,246,112,43,190,135,191,130,61,124,19,246,240,86,216,195,254,123,241,61,28,136,239,225,100,216,195,199,97,15,223,132,61,92,5,123,248,
+114,81,176,47,192,30,62,75,137,118,5,236,225,243,176,135,27,96,15,231,195,30,182,109,248,239,22,5,204,147,83,123,254,11,42,135,38,226,135,241,120,53,206,215,218,122,238,117,12,163,140,107,140,164,240,
+97,199,172,246,157,104,53,118,206,154,53,229,207,79,62,57,20,245,220,116,228,74,247,161,158,123,20,17,203,108,180,88,179,248,136,12,241,19,216,195,119,97,15,231,195,30,222,84,177,239,97,72,158,76,216,
+149,243,61,28,143,239,225,100,216,195,7,97,15,159,132,61,124,22,246,240,25,74,180,79,195,30,190,2,123,248,28,236,225,243,176,135,247,192,30,182,168,247,239,22,5,8,122,59,19,218,103,84,31,94,32,216,110,
+60,94,78,84,225,68,246,181,1,163,132,251,33,19,213,156,63,252,225,15,239,57,65,233,85,74,153,243,79,247,223,63,32,23,236,142,29,51,153,148,102,163,205,122,152,231,129,244,19,62,183,237,35,216,195,37,95,
+207,30,198,125,180,98,120,106,53,173,31,239,149,61,156,14,123,184,144,226,59,55,163,126,76,75,111,121,14,246,112,9,236,33,142,120,187,86,192,30,206,60,84,236,225,95,63,152,246,236,216,59,123,24,170,29,
+101,192,33,76,85,182,248,141,236,225,96,216,195,133,176,135,43,97,15,9,118,221,195,176,135,15,193,30,62,4,123,248,56,236,225,208,131,205,30,238,158,145,54,191,7,123,56,227,235,125,15,149,50,168,4,8,141,
+101,0,151,138,95,148,56,168,253,240,37,88,76,207,178,135,254,61,231,123,120,43,190,135,51,96,15,239,133,61,36,216,53,139,96,15,241,75,91,187,8,246,240,97,216,195,158,7,139,61,220,51,3,51,86,216,195,171,
+10,217,67,245,151,193,30,42,82,81,138,164,246,42,171,209,202,202,150,252,30,191,95,141,150,146,68,31,165,15,129,226,149,243,61,156,12,123,120,15,236,225,125,176,135,119,195,30,206,131,61,92,8,123,120,
+55,236,97,235,134,127,164,40,190,19,42,245,19,170,157,123,80,255,204,45,202,166,30,159,221,148,148,27,195,72,7,79,71,197,250,60,194,237,77,72,8,223,67,166,240,183,15,60,48,12,105,255,125,72,10,231,33,
+41,44,156,160,28,179,155,222,45,97,15,3,207,49,32,113,29,185,37,181,86,1,91,102,113,188,160,77,227,223,248,53,85,62,126,175,34,54,89,8,95,158,140,146,74,2,171,16,57,246,112,36,236,225,100,216,195,187,
+96,15,9,118,213,237,176,135,183,195,30,82,204,187,253,166,202,102,15,153,160,130,61,148,9,12,235,206,160,74,213,66,27,112,224,120,95,7,93,26,180,47,200,96,131,65,244,223,249,243,130,61,84,14,165,248,165,
+152,61,156,8,123,120,59,236,225,124,184,195,59,121,230,194,30,222,6,123,120,105,101,177,135,127,3,123,248,92,33,123,168,92,41,88,164,240,107,240,151,87,51,169,10,79,129,153,221,218,86,180,235,218,133,
+179,132,169,129,69,192,234,49,21,180,249,111,237,5,33,131,10,237,87,177,239,225,120,216,195,217,176,135,115,96,15,167,195,30,78,133,61,156,13,123,72,189,186,114,216,195,141,165,217,67,3,117,252,169,123,
+246,23,86,6,172,236,80,173,100,120,166,133,131,71,150,50,205,78,102,225,228,161,16,85,6,81,188,199,25,220,151,234,122,93,142,61,28,9,123,56,133,226,59,62,105,75,168,65,63,61,29,246,112,74,101,176,135,
+236,160,220,84,100,217,67,39,26,101,194,97,20,167,176,84,189,165,65,219,61,125,9,225,118,25,40,109,22,184,244,101,41,98,243,251,68,123,4,46,85,209,42,82,21,25,80,191,169,220,223,210,170,234,60,85,66,99,
+6,182,77,119,233,160,69,176,139,185,236,119,201,4,216,195,91,43,131,61,252,16,246,176,127,137,239,161,93,79,141,179,220,66,24,197,137,231,248,203,26,180,242,97,187,181,50,68,91,209,110,29,232,173,250,
+202,16,148,134,127,169,222,16,1,92,250,243,148,34,251,56,190,13,184,216,247,112,48,236,97,63,184,195,241,60,24,196,61,112,19,236,33,246,97,115,198,230,147,61,228,32,176,129,205,127,150,61,84,108,230,47,
+164,48,92,164,199,63,43,225,151,74,83,231,172,230,57,12,226,108,101,151,170,152,224,28,187,182,174,252,97,96,0,33,12,247,231,72,171,249,51,125,148,38,43,120,83,247,165,20,42,135,202,35,6,159,119,35,5,
+119,36,21,139,198,192,30,210,202,75,38,230,147,61,228,212,227,65,32,216,67,131,181,43,6,152,33,185,18,138,248,176,29,82,213,110,208,6,20,66,211,224,136,253,232,68,229,184,85,91,109,175,136,86,245,165,
+249,115,195,206,211,160,221,153,149,98,15,47,193,247,240,58,216,195,225,176,135,163,97,15,71,193,30,78,206,39,123,248,139,210,236,161,210,95,165,254,18,40,242,14,126,148,125,8,71,158,8,222,113,104,247,
+118,246,85,55,109,87,54,88,103,115,187,187,95,83,88,46,12,18,46,123,97,29,150,5,72,124,33,42,249,212,130,216,202,250,30,246,187,24,108,7,71,188,121,67,97,15,111,132,61,188,25,246,112,80,190,216,195,15,
+203,251,30,10,117,132,103,90,56,105,9,109,5,130,231,75,176,117,132,185,12,204,177,28,179,115,120,166,25,172,96,136,63,43,94,90,56,114,201,50,201,67,201,64,137,245,40,102,83,233,19,190,135,23,55,131,61,
+188,234,148,52,179,255,105,105,222,16,216,195,113,176,135,55,230,139,61,100,252,6,123,232,189,27,238,137,221,35,7,80,21,160,86,144,104,6,30,206,118,118,119,199,164,65,135,171,135,127,150,90,177,219,6,
+131,24,112,101,64,94,65,188,73,168,249,239,28,195,6,172,8,38,231,123,120,97,141,116,125,39,216,195,107,78,77,183,161,27,89,2,153,118,235,136,124,177,135,171,11,217,67,151,133,56,226,25,180,227,47,90,33,
+236,255,178,142,120,126,45,48,59,91,204,101,199,181,218,151,224,231,195,208,209,32,43,226,14,253,247,178,19,106,51,213,88,170,233,10,216,178,113,109,216,195,150,176,135,151,226,123,120,61,236,33,38,113,
+179,71,228,139,61,124,190,144,61,84,235,28,71,60,63,58,27,71,215,243,151,139,160,131,41,52,16,123,129,127,23,226,146,88,49,104,187,125,214,236,49,124,17,179,65,7,191,232,132,167,16,85,53,173,176,165,98,
+84,199,177,70,53,157,65,241,174,107,143,239,97,15,216,195,193,176,135,35,242,197,30,146,131,10,223,67,15,239,130,29,238,138,130,46,181,251,6,228,28,31,13,202,151,225,140,235,82,37,147,20,206,89,6,237,
+108,236,216,53,112,95,72,160,181,65,154,198,203,243,165,161,120,207,73,142,213,82,23,179,135,181,96,15,47,66,67,221,18,246,240,82,38,175,126,118,233,124,177,135,235,74,124,15,93,34,124,156,108,194,190,
+211,128,131,27,116,92,6,165,38,203,100,176,110,80,4,56,98,89,114,210,50,104,191,230,88,182,245,131,249,247,207,49,39,248,50,4,46,253,191,148,39,150,242,61,132,93,106,115,225,9,169,107,83,36,141,157,78,
+77,115,174,175,145,166,12,191,202,53,251,43,5,51,8,81,183,114,76,156,207,211,50,167,250,137,179,34,203,197,165,172,135,239,129,186,238,97,140,254,178,127,255,174,255,249,187,223,245,227,63,25,79,16,147,
+120,38,164,47,183,149,103,15,93,103,157,61,253,5,99,29,14,255,239,48,138,147,41,52,88,183,153,30,34,116,207,242,16,33,204,225,94,59,220,45,99,3,227,203,242,197,249,194,130,56,117,82,115,7,86,142,61,60,
+15,246,176,14,236,97,125,124,15,105,229,233,221,97,15,185,161,137,93,217,23,170,131,24,235,219,8,116,34,79,115,158,179,139,3,230,173,159,199,6,255,125,222,246,231,108,218,63,227,104,246,167,223,252,166,
+23,107,227,64,246,179,125,210,71,228,141,77,165,154,93,244,168,38,119,232,227,18,35,122,231,219,15,56,50,220,104,125,25,238,131,99,79,29,151,30,184,97,241,241,12,236,238,203,77,137,65,135,173,182,107,
+113,96,245,193,24,187,180,121,237,84,41,246,176,17,236,225,5,176,135,176,75,5,128,90,87,181,128,61,236,150,15,246,144,138,128,73,114,243,198,47,45,45,207,30,250,139,6,130,231,199,184,218,194,153,216,189,
+180,45,107,96,145,226,137,172,135,47,203,151,224,161,223,67,131,179,189,135,16,55,42,190,68,151,177,184,65,66,200,186,196,247,176,121,161,239,97,109,216,67,112,90,3,110,87,31,20,143,22,30,125,229,129,
+178,135,212,122,62,124,191,123,250,48,151,40,135,61,252,17,236,225,13,133,190,135,30,219,100,15,157,65,195,119,212,221,144,47,192,177,233,132,22,119,242,184,171,114,135,229,201,202,132,158,31,195,9,79,
+114,205,29,151,223,239,12,238,126,218,0,237,226,14,11,199,184,235,125,184,108,21,179,135,231,18,172,86,128,60,109,235,17,48,46,181,55,246,58,80,246,240,211,139,211,22,32,203,77,235,97,15,41,127,152,36,
+55,111,92,150,61,244,148,227,158,57,48,188,184,169,197,214,19,212,242,208,96,139,6,217,18,100,169,7,9,183,155,78,96,158,152,34,104,127,86,92,136,98,79,177,117,237,206,42,111,115,236,97,3,216,195,90,176,
+135,4,107,43,183,173,7,123,216,2,246,144,6,56,48,223,195,231,59,164,157,155,97,15,9,214,242,135,21,129,213,15,151,176,135,102,60,76,182,57,158,145,21,230,114,81,30,252,125,108,93,187,178,1,57,73,69,235,
+10,89,218,202,113,135,143,203,148,71,199,96,14,13,218,113,237,207,210,242,55,8,53,151,163,66,8,172,67,170,127,46,236,33,176,165,193,54,191,0,246,16,188,167,103,1,236,33,200,16,219,207,45,52,200,30,229,
+139,76,84,189,120,218,240,156,207,115,66,169,36,158,217,122,82,167,43,248,101,63,166,11,109,161,68,249,15,150,44,173,226,89,216,178,214,179,157,150,222,241,38,236,225,252,210,190,135,30,25,205,65,153,
+150,145,63,180,101,13,214,101,40,142,132,225,100,41,152,21,8,158,173,238,215,125,60,243,134,141,167,173,200,239,147,99,15,11,187,242,233,169,125,187,54,185,27,90,26,213,61,55,93,120,214,247,83,211,90,
+176,135,4,219,140,167,83,125,248,167,75,242,225,123,72,125,214,146,229,46,92,45,63,103,242,218,249,54,236,225,106,216,67,42,2,67,73,146,71,46,217,236,162,192,165,249,39,3,118,92,59,110,157,168,60,244,
+155,225,176,27,103,153,195,24,203,174,203,46,81,49,107,219,181,237,190,6,235,154,107,192,157,46,252,62,238,179,245,82,187,182,173,83,253,115,170,167,102,248,150,54,62,23,246,240,108,140,30,107,29,159,
+46,105,12,123,216,57,95,190,135,243,96,15,63,129,61,124,21,246,208,194,22,181,30,203,31,203,111,47,97,15,163,117,109,25,187,182,235,109,32,180,182,162,79,148,90,124,33,89,230,48,155,185,244,37,25,184,
+59,169,112,200,59,227,7,199,165,193,224,119,189,90,85,79,141,207,171,158,154,18,108,174,101,207,63,137,191,195,30,158,119,108,186,184,85,61,215,222,60,178,135,212,103,45,89,90,197,179,176,181,254,9,216,
+195,135,97,15,167,149,246,61,204,154,60,42,0,119,9,114,252,186,217,240,49,80,183,167,38,219,13,220,151,16,185,108,91,218,204,100,49,123,136,125,103,1,124,161,193,14,130,57,28,8,126,215,190,206,177,4,121,
+98,174,133,13,184,5,176,101,199,139,96,15,91,231,155,61,164,24,109,125,118,243,179,176,135,4,187,126,25,236,33,181,30,203,31,139,166,194,30,222,82,232,123,232,47,92,150,61,180,155,187,239,54,56,111,74,
+210,250,207,46,107,230,196,207,249,239,92,106,98,159,28,236,225,197,109,46,130,23,62,161,56,216,1,4,124,93,211,106,169,121,173,227,82,19,131,118,91,201,196,213,165,32,151,250,169,4,246,144,75,51,63,123,
+5,246,240,9,216,195,76,97,107,221,18,216,195,91,247,141,61,140,235,101,130,61,180,53,29,167,95,199,30,118,106,219,36,181,189,240,228,212,23,154,116,0,112,101,127,62,118,172,123,76,106,116,238,9,169,21,
+12,113,231,54,141,93,170,254,31,78,79,187,152,56,119,229,159,61,156,11,123,72,125,214,146,165,133,173,13,203,96,15,31,129,61,164,252,177,96,2,236,225,168,242,190,135,182,106,176,135,110,254,125,98,215,
+100,176,182,172,215,70,85,196,30,230,44,0,207,198,182,243,172,26,4,122,108,234,71,192,125,155,85,75,45,24,183,237,26,157,155,154,52,110,252,103,61,212,180,21,171,28,246,144,202,187,197,104,235,179,27,
+151,195,30,62,10,123,72,97,203,90,207,202,57,176,135,147,96,15,71,192,30,146,55,30,62,108,64,110,188,150,245,61,244,44,235,1,222,137,73,140,214,238,252,77,236,161,47,233,244,154,53,82,237,179,170,167,
+158,141,142,74,87,99,214,218,184,65,189,255,228,197,253,178,242,125,15,169,188,63,54,23,246,240,89,216,195,7,96,15,139,10,91,43,110,131,61,156,9,123,72,69,192,36,249,173,131,97,15,175,133,61,36,187,216,
+185,227,129,251,30,218,218,246,136,150,77,234,115,111,199,57,255,197,112,248,45,243,197,174,34,246,112,45,235,118,37,179,135,195,96,15,169,207,90,178,92,129,11,158,193,90,235,177,252,97,208,75,38,193,
+30,14,131,61,36,149,218,175,11,190,135,205,241,61,172,15,123,200,149,80,117,191,5,123,24,126,167,193,30,50,102,255,157,150,253,10,24,228,51,170,138,127,85,100,5,120,103,145,220,161,85,81,153,84,218,165,
+156,214,227,27,117,90,238,190,120,171,181,88,19,167,81,238,216,160,128,68,77,5,255,225,78,82,166,191,183,24,109,125,118,237,189,176,135,248,29,90,216,178,252,97,176,139,39,192,30,146,36,55,111,124,43,
+246,127,163,186,227,123,216,25,223,195,46,176,135,13,15,140,61,228,218,71,169,210,95,16,236,123,252,142,247,240,244,224,105,203,83,143,231,20,158,10,209,158,111,12,216,4,129,111,234,248,227,143,175,205,
+51,89,181,140,2,18,11,207,140,195,143,153,112,126,107,49,122,206,104,216,67,74,150,86,241,44,108,45,131,59,124,16,219,63,43,2,38,201,231,113,133,219,172,1,248,30,94,11,123,120,61,236,97,187,125,99,15,
+29,227,46,107,69,236,225,223,58,27,31,62,190,135,212,103,45,89,46,189,5,246,112,22,236,33,181,30,203,31,247,3,90,222,51,156,160,201,27,207,29,132,239,225,72,216,195,43,246,157,61,100,114,251,71,14,4,63,
+33,45,187,213,165,135,9,110,91,17,28,237,152,85,181,99,203,54,224,57,131,231,120,158,163,190,22,66,217,87,141,98,81,75,31,203,15,83,7,213,141,235,98,150,114,8,223,69,58,104,183,173,205,76,185,137,181,
+117,135,245,217,246,237,219,81,55,190,54,87,216,178,214,179,106,10,236,33,21,1,147,228,75,70,193,30,222,12,123,216,167,60,123,104,70,116,47,236,225,214,35,203,247,144,242,135,21,1,147,228,179,135,195,
+30,14,171,98,15,171,124,15,171,216,195,42,246,112,223,12,105,246,170,211,250,54,179,118,133,124,110,161,225,99,21,123,200,75,56,185,104,73,19,135,173,98,15,15,180,103,237,235,191,223,167,173,229,190,254,
+176,35,225,251,14,74,192,85,236,97,21,123,88,197,30,86,177,135,223,77,246,240,173,203,210,156,219,58,82,48,43,224,66,206,75,44,221,252,3,71,194,61,40,133,182,80,138,217,73,193,237,19,106,95,219,72,8,44,
+36,205,211,214,251,190,190,237,202,240,173,102,105,244,23,213,209,115,92,33,218,35,237,242,207,255,252,207,31,81,161,223,136,194,110,135,202,249,241,227,135,254,215,204,153,215,34,111,184,9,221,213,28,
+138,217,19,41,148,79,160,64,62,158,34,247,56,244,146,99,121,70,163,182,155,202,51,25,4,239,6,158,129,148,69,251,165,109,91,123,165,61,59,123,164,47,62,133,61,252,5,236,225,143,97,15,167,194,30,246,252,
+46,178,135,91,96,15,55,193,30,190,15,123,248,30,236,225,79,97,15,55,194,30,190,7,123,248,50,236,225,140,239,18,123,72,176,91,62,188,62,125,180,17,246,240,93,216,195,143,96,15,249,220,7,107,96,15,95,133,
+61,92,3,123,248,22,236,225,243,71,18,123,184,11,246,240,35,216,195,183,97,15,127,12,123,248,22,236,225,155,176,135,207,195,30,190,2,123,248,6,236,225,122,36,21,107,97,15,183,195,30,190,13,123,248,42,236,
+225,75,224,120,171,97,15,159,133,61,252,49,236,225,75,176,135,195,15,87,246,240,99,216,195,191,128,61,124,3,246,112,198,62,176,135,147,96,15,151,195,30,190,14,123,184,2,246,112,117,4,11,123,248,12,37,
+218,167,96,15,87,193,30,190,5,123,120,199,225,196,30,238,128,61,124,7,246,112,222,215,179,135,58,222,125,173,239,161,236,225,36,216,195,69,176,135,203,97,15,87,192,30,18,236,219,143,195,30,190,0,123,184,
+18,246,112,37,236,225,188,195,129,61,220,12,123,248,200,222,217,67,235,195,129,227,5,123,40,158,163,70,164,156,239,225,52,216,195,123,41,190,115,51,234,199,207,193,30,174,132,61,92,12,123,136,35,222,174,
+39,97,15,167,31,42,246,240,127,192,30,110,131,61,236,119,77,14,254,80,228,98,157,56,110,251,87,188,162,220,65,49,139,1,43,61,182,94,172,116,145,123,182,246,238,123,40,123,120,47,236,225,211,176,135,4,
+187,238,65,216,67,80,188,183,238,135,61,92,10,123,56,228,96,179,135,187,96,15,55,148,176,135,18,100,129,227,133,201,99,152,209,132,156,65,57,132,129,27,180,74,29,91,218,71,149,174,250,175,240,61,44,197,
+30,222,2,123,56,31,246,144,96,215,220,7,123,120,55,229,218,251,96,15,239,63,216,236,225,250,18,246,80,206,40,12,227,212,99,169,178,83,160,34,157,38,204,17,194,240,112,1,136,174,237,191,241,107,190,8,213,
+61,193,30,170,16,240,5,20,251,30,78,132,61,156,15,123,120,23,236,225,60,216,67,232,180,55,239,134,61,156,119,176,216,195,119,96,15,177,239,12,223,195,32,212,66,215,97,176,234,181,148,48,133,74,39,108,
+196,194,1,32,107,48,23,148,139,223,107,203,43,148,17,195,83,36,83,204,30,78,132,61,188,19,246,112,46,236,225,108,216,195,219,96,15,23,192,30,142,169,108,246,144,9,42,198,172,147,142,178,194,80,235,132,
+60,88,90,37,44,1,3,225,177,21,163,23,100,131,246,223,216,202,170,246,236,25,162,61,226,182,151,93,118,89,162,120,150,67,254,138,217,195,113,176,135,20,238,86,223,46,119,200,51,11,246,112,38,236,225,37,
+149,197,30,254,79,216,195,85,37,236,97,56,90,170,153,84,24,42,167,164,92,80,249,97,168,242,196,117,108,57,53,147,129,227,149,13,216,175,43,100,115,8,24,176,47,204,202,97,176,135,6,237,253,213,183,141,
+131,61,156,1,123,56,11,246,144,58,244,114,202,179,207,207,128,61,100,83,82,57,236,225,123,165,217,67,245,146,182,96,248,20,10,85,137,227,41,48,85,77,107,208,202,10,13,198,110,27,46,152,217,238,28,23,226,
+27,108,168,241,108,241,184,130,93,57,148,234,32,103,245,41,147,39,166,219,111,132,61,228,26,216,165,55,195,30,130,226,61,61,25,246,240,230,202,96,15,217,65,185,169,40,235,123,40,166,163,102,90,142,73,
+9,177,45,29,230,22,1,97,218,3,108,197,224,14,131,67,52,216,232,202,142,119,91,214,94,226,71,3,150,94,41,199,30,246,199,247,112,56,42,3,130,93,124,19,5,248,155,96,15,41,207,90,181,164,134,252,23,204,240,
+59,189,106,242,232,163,143,182,88,94,151,167,70,174,2,154,61,79,34,253,93,198,241,111,35,45,181,9,81,231,63,207,158,125,117,238,136,183,99,199,20,184,163,41,4,51,57,237,216,84,194,30,218,66,174,181,154,
+88,40,228,86,197,238,71,3,86,239,44,143,164,254,89,165,173,173,172,98,214,217,218,0,131,63,140,177,107,235,27,172,218,106,197,165,10,198,21,151,251,239,85,205,219,51,202,178,135,83,251,192,29,142,241,
+129,61,164,6,253,204,36,216,195,81,249,102,15,217,252,151,245,61,84,242,175,68,95,4,192,143,182,180,159,19,224,176,165,213,63,27,132,221,213,9,41,59,83,59,137,169,164,117,140,75,174,197,248,87,115,237,
+11,115,152,248,24,184,170,159,82,190,135,87,195,30,222,64,193,125,20,236,225,72,216,195,177,176,135,227,242,201,30,114,234,241,32,16,236,161,82,66,217,67,3,13,54,33,12,227,196,1,108,237,48,135,83,255,
+108,64,6,28,23,29,216,202,234,42,125,17,126,205,158,96,171,58,20,2,205,11,59,79,177,2,103,233,82,236,97,87,124,15,123,193,30,130,225,45,68,97,176,136,155,141,87,78,200,39,123,248,243,18,246,208,96,221,
+36,184,123,146,106,145,58,41,251,8,105,248,50,12,218,137,204,153,219,150,140,165,41,90,55,96,75,91,53,28,50,13,208,127,39,131,232,99,175,241,165,197,61,212,197,190,135,157,193,118,184,179,122,254,32,216,
+195,27,96,15,111,130,61,28,144,47,246,112,83,33,123,232,238,199,96,67,28,234,248,12,50,45,235,91,232,231,2,205,17,210,176,107,122,55,64,204,212,182,118,4,235,215,148,251,203,56,216,51,34,80,95,152,104,
+143,67,197,33,162,170,47,203,30,118,109,10,123,136,35,222,172,190,248,30,14,130,61,68,82,49,121,88,190,216,67,198,175,40,158,58,140,96,15,221,19,59,238,194,164,81,176,42,76,26,131,52,147,59,242,69,56,
+169,217,130,10,193,237,206,206,222,142,113,3,245,133,24,156,47,40,134,69,120,165,133,203,165,47,66,88,75,113,106,49,123,88,15,223,195,246,213,211,132,30,248,30,246,99,214,190,145,22,191,49,95,236,225,
+115,37,190,135,113,249,136,173,20,32,85,4,22,65,135,21,160,193,6,99,232,159,13,210,49,43,174,35,193,230,231,28,22,129,241,69,47,241,163,47,50,48,62,95,152,122,76,133,168,197,190,135,231,195,30,54,135,
+61,188,24,223,195,158,167,167,251,7,195,30,222,152,47,246,240,217,18,223,67,183,125,118,105,33,45,3,13,252,181,172,233,99,188,4,91,206,137,205,177,232,118,211,73,41,203,29,254,254,247,191,207,5,30,220,
+97,24,60,134,97,164,47,195,61,181,160,165,194,113,3,206,177,135,181,240,61,196,107,233,218,182,39,167,49,87,212,76,247,130,226,205,190,49,95,236,33,57,168,96,15,61,218,25,180,1,24,76,120,21,6,138,103,
+247,148,48,115,44,58,99,187,54,187,60,25,172,123,110,17,1,91,218,175,103,77,33,13,58,44,60,35,104,191,238,153,90,111,151,176,59,145,110,201,249,30,162,144,47,168,127,2,173,92,61,221,112,49,236,225,245,
+118,233,124,177,135,111,148,102,15,61,14,186,108,248,75,7,62,103,112,1,88,133,89,156,56,142,203,77,120,30,134,205,144,136,172,45,237,100,228,196,20,160,165,45,159,109,97,3,246,255,146,129,112,252,134,
+81,156,45,220,8,161,120,155,186,176,135,141,145,52,182,135,61,188,6,246,112,216,129,178,135,95,193,30,254,10,246,112,75,121,246,208,86,11,11,94,91,219,9,200,109,102,56,78,27,104,112,135,182,106,236,206,
+4,63,220,89,185,84,25,180,47,39,214,115,103,228,172,83,102,120,160,106,171,29,106,121,37,199,173,91,181,64,40,126,92,106,142,209,148,174,60,221,105,229,105,151,31,40,123,184,7,246,112,11,236,33,121,99,
+83,169,179,201,46,102,217,67,3,8,207,111,47,44,240,177,69,5,182,68,235,156,193,61,23,27,108,224,60,174,225,110,47,157,240,156,188,220,70,74,162,25,180,115,130,1,7,106,31,228,170,127,175,144,61,132,104,
+145,78,43,0,212,186,170,89,141,52,177,235,9,30,37,255,141,46,191,211,107,216,145,40,110,103,31,125,45,79,51,158,179,74,237,165,57,230,173,227,63,222,77,254,105,59,219,199,63,174,167,214,99,249,195,138,
+128,73,114,243,198,47,61,82,154,61,148,80,243,84,20,8,158,91,192,104,213,112,138,247,36,229,142,42,174,165,9,216,50,46,27,10,119,120,127,70,128,155,49,246,157,31,124,236,49,49,97,57,83,231,216,195,243,
+97,15,47,0,199,3,214,106,87,183,122,234,209,172,122,26,213,237,92,5,233,127,36,224,45,222,57,127,204,49,199,124,68,160,157,120,26,243,156,86,42,96,14,2,79,208,197,182,176,183,245,210,250,63,88,216,178,
+214,243,225,59,176,135,185,68,57,236,225,147,37,236,161,111,92,246,80,92,199,205,135,129,123,144,112,139,232,6,35,28,226,227,28,28,144,101,89,238,208,3,131,221,222,157,148,219,74,135,133,75,150,115,65,
+184,100,250,127,72,166,201,72,228,216,195,2,124,15,207,46,12,182,5,65,183,33,224,171,155,194,30,94,211,238,0,125,15,119,194,30,190,3,123,248,38,236,225,235,176,135,36,201,205,27,103,217,67,151,11,103,
+111,31,127,249,184,90,202,125,182,193,134,155,165,93,217,236,101,112,135,182,120,100,55,220,113,249,178,236,29,118,111,183,150,206,13,30,55,253,156,173,91,138,61,188,8,246,240,60,48,30,130,109,14,210,
+211,182,14,236,97,211,124,176,135,171,96,15,223,135,61,164,214,99,249,195,138,192,234,7,75,251,30,26,168,59,48,25,65,199,166,147,145,193,198,197,97,145,189,140,107,226,194,213,210,23,225,227,225,193,113,
+30,39,37,91,90,246,88,170,212,249,193,159,239,204,92,138,61,60,27,246,16,110,201,96,155,3,93,182,7,169,189,166,109,62,216,67,74,150,86,241,44,108,89,235,217,190,22,246,240,117,216,195,59,11,217,67,91,
+218,60,116,176,135,225,98,233,185,215,110,232,1,193,131,190,123,111,243,210,89,208,50,12,228,60,252,219,253,237,29,102,72,92,171,61,39,59,31,152,223,54,88,215,95,215,221,98,246,240,76,216,67,168,52,131,
+109,198,211,137,73,171,103,215,124,176,135,212,103,45,89,238,194,213,242,115,38,175,157,111,194,30,62,11,123,72,69,32,216,67,199,113,112,135,210,104,158,111,227,194,48,243,93,182,176,173,27,144,165,31,
+157,184,124,17,126,159,19,154,189,193,86,54,216,227,142,59,174,24,180,140,117,215,157,149,201,188,246,140,221,250,103,195,30,2,105,53,62,7,246,240,135,176,135,231,194,30,54,170,153,46,233,148,47,246,240,
+14,216,195,173,176,135,47,195,30,22,21,182,44,127,44,159,83,194,30,58,142,229,14,205,61,153,108,11,158,208,29,146,147,148,65,150,5,45,253,30,95,136,45,236,99,239,176,101,143,58,234,168,98,251,78,91,183,
+25,36,184,193,118,104,95,144,26,156,139,187,52,193,218,157,109,217,198,231,156,144,90,156,3,123,216,50,223,236,33,245,89,75,150,81,216,90,15,160,245,250,131,176,135,83,43,102,15,77,184,121,148,140,241,
+234,132,101,142,217,113,110,224,65,150,70,18,62,176,91,107,76,6,233,35,178,211,166,214,247,161,209,190,159,46,41,32,219,113,214,201,57,4,47,130,109,230,164,69,183,238,120,33,236,97,171,202,96,15,169,207,
+110,126,6,246,112,57,236,225,18,216,67,106,61,150,63,22,77,250,122,246,208,251,175,28,119,38,226,132,173,28,139,254,217,46,109,203,187,205,244,168,105,239,240,156,235,196,148,195,242,120,218,157,87,45,
+13,134,66,27,196,211,154,219,28,234,159,117,66,174,117,109,89,131,109,6,18,223,6,202,180,11,190,135,149,195,30,222,8,123,184,26,246,16,34,45,91,216,90,247,16,236,225,180,18,246,208,113,92,214,247,80,27,
+48,137,180,96,15,189,53,41,144,188,210,190,135,167,165,150,13,235,164,126,205,142,46,14,118,96,147,106,233,154,250,213,210,69,103,159,80,8,89,230,130,61,41,181,58,239,248,212,169,117,101,179,135,179,97,
+15,169,207,90,178,180,176,181,225,17,216,195,7,97,15,41,127,44,184,9,246,112,68,197,190,135,6,104,62,74,186,204,137,40,0,75,63,218,178,101,217,195,110,237,155,164,171,240,85,51,216,1,60,215,55,172,150,
+90,157,123,116,106,116,206,137,169,41,193,182,36,216,14,141,107,225,71,124,48,216,67,138,209,214,103,55,46,129,61,124,24,246,144,194,150,181,158,149,179,96,15,39,192,30,14,133,61,36,111,60,98,216,192,
+212,171,87,175,98,246,208,35,157,116,153,51,174,207,222,216,67,95,192,249,231,156,153,46,174,123,92,46,216,254,141,160,74,107,29,149,46,60,243,216,212,130,3,67,251,139,126,152,154,53,105,244,31,186,227,
+29,28,246,112,54,236,225,143,96,15,23,192,30,82,197,179,176,181,226,86,216,195,105,176,135,84,4,76,146,223,58,0,246,240,154,34,246,176,211,183,103,15,237,242,238,176,90,146,213,232,221,0,175,82,2,111,
+112,198,247,82,235,250,103,231,130,229,107,191,212,10,240,224,177,135,67,97,15,169,207,90,178,92,129,11,158,193,90,235,177,252,177,116,34,249,165,241,192,89,228,141,77,165,246,235,12,123,72,194,173,53,
+44,112,179,58,176,135,231,237,187,239,225,121,231,157,139,163,244,233,233,186,6,223,75,221,155,214,76,13,46,186,232,207,180,108,46,216,131,239,123,40,123,72,125,118,237,124,216,195,91,97,15,229,14,115,
+215,46,194,30,130,226,153,36,55,111,60,147,42,193,104,178,139,125,59,122,73,16,236,97,131,111,207,30,94,214,142,161,80,191,206,255,6,190,252,75,206,198,59,109,217,34,208,242,16,176,135,35,97,15,41,89,
+90,197,179,176,181,140,22,126,112,52,236,33,21,1,147,228,243,7,195,30,146,74,189,249,26,216,195,107,97,15,91,239,27,123,232,18,230,166,67,246,208,165,135,177,253,25,75,216,167,20,3,188,64,91,132,86,170,
+84,208,82,191,82,113,60,253,74,191,127,192,40,158,180,38,54,183,231,242,113,152,55,117,123,117,19,105,151,61,108,41,183,48,3,239,100,185,249,27,235,179,150,44,151,78,130,61,156,6,123,72,173,199,242,199,
+253,84,4,238,25,66,247,38,111,60,183,63,190,135,195,96,15,47,251,122,246,208,217,220,29,155,21,14,74,165,255,169,115,116,25,246,112,7,179,187,183,133,31,102,236,33,133,45,107,61,171,40,127,172,28,7,123,
+72,146,124,201,141,176,135,99,97,15,123,85,204,30,122,198,54,239,93,129,239,225,17,198,30,82,254,176,34,96,146,124,246,48,216,195,33,21,179,135,180,108,149,239,33,89,142,183,139,60,193,205,77,85,249,30,
+126,27,205,244,183,210,75,239,133,68,19,82,150,43,174,197,163,227,228,149,86,222,73,160,173,193,252,241,99,246,202,59,40,130,237,128,246,222,198,140,187,149,137,110,43,98,149,173,204,182,91,189,179,206,
+107,220,204,46,154,112,227,121,141,201,113,1,63,195,91,146,58,242,180,231,241,182,164,38,60,85,190,135,223,166,117,203,73,30,190,237,63,174,98,15,17,141,148,34,57,75,192,203,147,170,216,195,50,47,39,31,
+189,107,95,126,198,1,79,90,251,242,159,28,78,223,115,80,2,174,98,15,171,216,195,42,246,176,138,61,252,238,177,135,191,232,145,214,191,1,123,56,235,255,15,236,225,102,216,195,143,96,15,183,194,30,238,132,
+61,252,41,236,225,139,176,135,147,97,15,175,249,174,177,135,31,225,123,248,33,236,225,251,176,135,239,192,30,190,13,123,248,41,236,225,6,216,195,183,97,15,177,14,155,63,13,246,240,210,130,63,145,249,248,
+31,36,6,182,81,190,249,132,50,235,30,74,55,175,147,185,156,224,125,95,236,228,190,214,24,238,91,223,227,81,100,242,56,28,101,205,75,255,250,175,255,186,71,195,56,61,212,168,23,253,126,212,168,94,232,57,
+198,81,192,190,5,125,199,12,106,186,24,197,65,186,252,230,55,11,80,247,220,201,159,39,241,249,9,60,55,241,181,209,72,23,134,163,186,187,57,125,241,179,113,105,235,150,194,96,183,108,132,61,220,0,123,184,
+30,246,240,3,216,67,62,247,193,143,97,15,95,134,61,124,5,246,240,117,216,67,0,173,129,189,142,20,223,195,157,176,135,155,97,15,223,130,61,124,5,246,112,29,236,225,27,176,135,207,194,30,190,8,123,248,26,
+236,225,155,72,42,214,192,30,110,129,61,228,207,27,95,134,61,20,199,123,22,246,112,5,236,225,11,176,135,207,31,174,236,225,206,91,210,246,45,176,135,191,160,168,189,6,246,112,250,62,176,135,19,97,15,31,
+133,61,124,21,246,240,105,216,195,103,139,130,125,6,246,240,41,216,195,199,97,15,127,4,123,248,58,236,225,156,195,137,61,220,14,123,184,30,246,240,206,253,100,15,199,193,30,78,132,61,92,0,123,248,40,236,
+225,83,176,135,4,251,246,50,216,195,231,96,15,127,4,123,248,20,236,225,237,135,3,123,184,9,246,112,241,190,177,135,202,22,149,47,170,176,11,28,175,28,123,56,21,246,240,46,216,195,101,176,135,180,244,150,
+167,97,15,239,135,61,188,31,246,112,57,236,225,45,135,146,61,220,90,154,61,52,32,235,191,33,81,178,48,30,42,0,235,193,58,129,120,89,118,4,171,150,131,74,66,46,69,107,170,214,224,213,144,40,171,88,117,
+55,236,225,19,176,135,4,187,110,33,236,33,40,222,91,247,193,30,62,12,123,56,248,80,176,135,111,151,247,61,84,215,97,209,59,84,119,106,56,172,242,43,83,82,222,160,182,67,161,184,204,161,212,153,220,161,
+65,86,232,123,56,3,223,195,41,176,135,119,192,30,18,236,154,187,96,15,239,164,92,123,23,236,225,125,176,135,215,28,76,223,195,117,37,236,161,76,66,150,61,12,95,67,69,106,10,75,195,18,80,169,146,236,146,
+173,47,127,104,235,234,255,226,203,81,135,173,72,70,25,84,57,246,112,60,236,225,29,176,135,119,194,30,206,133,61,156,13,123,56,15,246,112,238,193,98,15,215,151,102,15,3,199,203,186,223,217,178,138,206,
+84,232,168,221,10,168,50,94,140,65,103,229,15,234,49,253,57,190,4,85,4,229,216,195,241,176,135,115,96,15,9,118,213,173,176,135,183,194,30,114,145,232,237,163,42,155,61,100,130,202,178,135,106,174,108,
+53,69,102,234,34,181,47,8,119,60,149,121,74,19,195,3,209,23,162,90,39,198,120,124,12,31,38,131,182,235,59,161,121,231,188,250,15,91,61,199,30,14,235,159,22,140,129,61,188,21,246,240,54,185,67,30,174,135,
+93,53,173,50,217,195,223,193,30,174,44,207,30,218,109,245,102,8,36,47,112,60,21,118,6,172,248,204,113,236,203,177,21,237,242,217,160,195,254,83,65,91,8,79,157,201,67,14,85,236,123,56,22,246,112,26,236,
+225,116,216,67,138,239,203,199,195,30,222,2,123,200,93,185,249,103,15,217,84,124,252,110,121,246,208,238,170,24,84,129,184,65,7,142,167,154,78,13,165,173,28,50,98,213,121,182,166,1,134,126,218,191,103,
+37,76,254,60,145,31,255,157,74,191,184,138,189,152,61,28,2,123,56,158,226,251,56,216,67,238,191,125,122,34,236,225,248,202,96,15,217,65,185,169,40,203,30,42,251,85,254,31,56,158,226,80,131,86,40,170,118,
+82,107,18,129,203,16,156,6,138,23,62,166,118,113,187,186,98,212,160,75,237,21,118,237,96,15,253,40,139,152,243,61,236,7,123,56,20,149,1,193,46,166,232,190,100,52,236,33,229,217,252,179,135,27,97,15,251,
+21,250,30,70,235,40,240,22,1,8,190,72,125,115,96,0,170,97,21,140,59,158,3,158,118,89,10,163,139,172,67,109,248,151,202,40,42,65,20,17,240,223,168,143,246,81,236,166,24,70,177,233,80,124,15,167,94,7,119,
+56,210,7,246,144,26,244,51,227,96,15,71,228,155,61,124,185,132,61,140,203,12,108,197,48,148,10,186,197,160,195,179,80,85,172,93,219,86,182,133,179,190,45,97,199,235,75,240,107,246,2,187,177,250,105,39,
+62,95,166,202,61,229,255,6,29,236,161,65,143,234,14,123,56,144,130,251,141,176,135,195,96,15,71,194,30,142,206,39,123,200,169,199,131,128,235,163,147,77,104,159,221,64,8,102,132,161,155,172,145,156,66,
+152,76,133,81,163,72,128,1,169,180,205,122,152,26,172,168,173,106,90,91,85,187,34,131,21,205,179,119,248,66,125,220,160,4,123,168,12,162,187,236,33,80,199,93,96,120,11,135,194,30,14,129,61,28,147,79,246,
+240,11,216,195,9,35,115,204,67,176,135,126,84,55,105,139,134,147,93,214,40,46,60,17,229,8,253,165,221,132,184,22,27,176,203,152,51,118,192,150,6,154,245,45,117,182,119,72,56,9,250,81,165,125,8,220,114,
+236,97,167,14,169,127,71,176,157,235,97,15,177,1,188,123,32,236,225,200,124,178,135,27,75,124,15,195,149,195,95,220,150,11,194,44,139,226,9,93,133,65,156,93,221,113,237,4,230,210,20,40,79,96,180,89,247,
+29,169,24,159,48,126,12,28,64,128,36,108,0,195,247,176,107,19,216,195,203,96,15,113,196,155,7,138,247,56,174,120,147,135,228,139,61,228,240,30,190,135,161,136,117,86,142,238,156,197,233,36,202,100,143,
+112,170,206,117,111,131,247,165,24,180,203,147,67,194,117,217,22,181,235,26,96,88,143,133,59,151,31,165,92,194,78,204,89,95,53,95,41,246,144,251,230,123,183,131,61,188,18,246,240,122,102,109,92,241,110,
+29,150,47,246,240,217,18,246,208,61,176,234,118,215,221,178,40,94,214,248,209,192,109,229,192,238,236,1,6,230,152,181,155,138,231,56,28,252,24,6,113,1,89,58,28,156,7,124,145,126,206,150,174,144,61,132,
+117,24,220,25,223,195,171,241,61,236,7,123,56,52,95,236,225,202,210,236,161,199,60,39,164,88,146,4,173,194,142,51,104,113,191,102,64,146,161,190,28,131,116,204,10,112,196,75,176,245,195,2,48,62,102,123,
+77,244,28,255,189,45,172,32,181,20,123,136,13,96,175,214,63,72,99,46,195,247,16,20,111,246,208,124,176,135,36,220,204,65,149,101,15,237,102,225,59,26,96,115,140,57,131,18,201,49,72,39,44,249,36,85,239,
+174,223,206,200,126,93,0,51,0,203,96,16,101,15,237,25,89,31,196,240,46,85,134,172,220,184,216,247,240,92,216,195,122,176,135,77,96,15,59,193,30,246,164,75,15,61,80,246,144,84,234,54,158,45,175,149,247,
+61,12,208,217,192,236,170,78,52,146,40,126,94,50,197,245,215,77,135,107,112,216,106,59,97,57,113,73,175,185,67,179,5,99,178,171,8,182,180,181,221,133,185,36,133,183,139,187,174,28,123,168,72,188,14,236,
+97,67,216,195,118,176,135,87,193,30,14,61,16,246,240,75,124,15,127,9,123,248,115,216,195,15,97,15,39,142,204,101,37,188,58,70,33,184,235,165,148,104,4,233,159,157,132,12,198,64,3,197,11,87,60,143,130,
+46,71,110,33,93,162,164,209,236,37,97,234,106,240,49,225,69,43,59,60,4,45,133,63,68,3,78,62,249,228,28,172,149,99,15,207,198,247,16,119,158,246,117,96,15,105,229,233,151,192,30,14,218,95,223,195,95,227,
+123,184,19,246,112,19,236,33,121,99,83,169,179,201,46,102,217,67,119,91,2,151,158,140,252,168,25,163,129,186,129,112,123,232,76,44,119,24,23,15,25,176,93,218,205,134,167,43,95,152,176,165,179,183,227,
+221,46,110,240,225,82,27,168,189,194,114,113,90,187,179,31,221,83,55,111,136,239,33,66,241,150,192,90,5,117,97,15,27,195,30,118,58,16,246,144,90,143,229,15,43,2,38,201,205,27,191,180,184,52,123,104,107,
+187,153,247,184,231,198,192,205,131,99,213,49,234,76,108,215,141,141,134,47,199,96,221,172,120,4,116,242,178,171,7,141,230,216,119,9,114,41,42,235,131,234,207,11,248,163,152,61,196,254,68,80,171,37,79,
+187,58,176,135,32,181,163,47,57,16,246,144,194,150,181,158,15,223,130,61,92,107,162,28,246,240,49,216,195,193,133,190,135,38,219,252,232,225,220,86,143,43,101,226,176,239,22,82,38,41,110,97,50,208,56,
+255,250,130,124,33,126,175,199,71,199,186,123,110,131,54,96,103,100,131,118,169,114,50,244,103,149,242,61,12,246,144,96,91,240,180,185,128,128,27,157,152,134,93,125,160,236,225,86,216,195,183,96,15,215,
+192,30,82,254,48,73,110,222,88,34,205,39,130,117,246,182,155,186,115,242,16,96,55,54,216,48,72,47,235,119,232,161,193,244,143,123,235,172,171,165,147,94,156,180,12,218,101,206,253,180,134,84,165,216,195,
+250,176,135,176,15,6,219,28,240,163,45,206,90,87,55,58,41,245,227,229,51,131,255,138,223,103,59,230,53,31,23,137,220,148,22,95,232,245,52,165,52,30,164,84,106,209,229,222,101,12,106,216,186,221,235,82,
+95,89,1,123,184,1,246,144,96,45,127,88,17,88,125,127,105,223,67,131,181,165,237,162,118,97,91,195,19,81,184,225,25,108,88,0,218,202,1,113,217,213,61,10,122,58,10,163,72,39,177,184,195,195,201,204,217,
+31,51,156,138,217,67,232,22,131,109,206,199,246,80,166,215,180,206,7,123,72,201,210,42,158,133,45,107,61,219,105,233,29,63,134,61,188,189,196,247,208,140,132,114,95,79,51,89,12,207,131,129,227,54,152,
+67,63,122,194,178,91,155,245,240,133,56,123,187,213,180,149,157,236,220,83,187,164,185,213,116,198,247,103,150,99,15,235,224,123,120,6,236,33,54,98,6,43,214,211,137,73,235,218,139,243,193,30,82,159,181,
+100,185,235,77,216,67,38,175,157,175,195,30,174,128,61,164,34,16,236,161,173,107,118,209,123,175,164,209,76,194,217,101,93,111,35,224,128,45,131,72,115,12,187,52,57,12,226,12,236,100,39,100,237,216,118,
+105,115,50,20,220,138,91,29,138,217,67,92,181,154,209,178,141,89,146,26,98,248,216,252,108,216,195,6,248,30,230,141,61,156,11,123,136,157,231,230,213,176,135,69,133,45,203,31,203,103,195,30,14,235,147,
+75,169,102,217,67,15,24,118,221,240,42,245,160,97,190,217,160,35,224,240,44,53,232,152,188,156,4,25,115,185,199,173,99,216,1,234,12,111,176,29,101,15,207,97,151,85,212,141,133,181,26,3,111,181,252,33,
+236,97,139,124,178,135,20,163,173,207,90,178,140,194,214,250,37,176,135,11,97,15,145,251,143,28,49,36,151,66,117,2,203,109,8,216,5,153,142,177,146,96,170,213,109,160,84,154,12,147,221,218,49,237,203,8,
+207,210,240,45,181,53,209,69,23,59,228,157,113,250,105,169,73,163,139,114,193,118,229,185,240,172,31,164,38,236,172,114,221,152,96,125,90,0,91,118,172,91,204,30,254,20,165,238,118,254,239,157,69,250,106,
+181,213,170,112,181,37,202,25,78,85,40,76,163,123,214,166,107,190,232,125,206,152,73,109,179,242,110,49,218,250,236,230,167,96,15,9,118,253,98,216,67,106,61,150,63,22,77,252,122,246,208,59,176,132,179,
+68,240,220,7,199,164,229,82,101,192,174,199,118,123,243,207,209,162,65,173,93,215,224,168,212,173,160,81,106,221,178,69,170,7,104,217,232,108,39,169,146,96,155,65,169,181,133,67,236,210,174,178,124,15,
+135,194,30,174,130,61,124,20,246,48,83,216,90,183,8,246,112,42,236,33,73,114,239,172,203,178,135,6,235,227,165,65,210,102,238,135,115,212,25,47,64,16,75,12,175,148,239,225,169,63,72,13,207,56,38,13,108,
+12,104,9,130,215,173,201,153,233,252,211,171,167,6,142,213,82,193,194,30,194,13,119,174,116,246,112,38,236,33,245,89,75,150,22,182,54,60,4,123,184,8,246,144,242,199,130,209,176,135,55,150,247,61,140,43,
+161,226,150,21,215,211,44,123,24,190,135,45,154,55,73,125,155,28,147,11,212,103,16,65,119,171,243,61,130,117,114,58,46,53,226,177,27,55,61,7,246,240,28,216,195,134,7,139,61,164,24,109,125,118,227,98,216,
+195,7,96,15,41,108,89,235,89,57,29,246,112,44,236,225,13,176,135,228,141,71,12,45,100,15,29,131,122,159,57,150,131,59,252,58,246,240,146,54,13,240,53,60,49,23,236,64,120,195,62,23,85,35,216,227,233,206,
+39,166,6,96,240,6,109,176,237,47,60,216,236,225,76,216,195,39,96,15,239,134,61,44,42,108,173,0,197,123,106,10,236,33,21,1,147,228,51,251,157,149,70,245,128,61,36,187,216,229,91,176,135,181,207,57,35,245,
+97,252,14,128,53,52,224,214,231,30,75,43,67,149,50,35,55,59,243,104,12,210,207,205,178,135,219,169,43,127,89,4,109,85,178,239,225,13,176,135,212,103,45,89,174,152,6,123,72,176,214,122,44,127,44,29,103,
+85,0,56,139,188,177,169,212,126,29,96,15,73,184,181,174,11,123,88,27,246,240,220,189,179,135,13,97,19,175,172,119,76,234,15,100,217,254,188,99,82,195,51,143,75,109,88,142,58,181,106,156,67,104,165,74,
+15,13,123,72,49,218,250,236,218,219,97,15,241,60,180,176,101,249,195,96,23,227,110,105,146,220,188,241,76,82,169,163,187,193,30,114,217,87,191,2,216,195,250,223,204,30,214,59,239,204,212,143,22,238,93,
+255,168,212,178,86,141,212,169,77,115,111,62,212,152,245,103,34,180,135,150,61,188,17,246,144,146,165,85,60,11,91,203,0,45,31,4,169,181,34,96,146,124,30,8,158,169,212,155,175,130,61,236,126,92,186,162,
+229,41,185,148,107,204,220,49,177,153,119,118,103,229,186,237,204,126,73,243,11,210,13,45,127,144,10,154,212,253,15,190,247,255,60,188,124,15,101,15,41,89,46,157,0,123,8,112,105,173,199,242,199,253,152,
+60,222,51,136,160,201,27,207,237,13,123,56,0,246,176,107,33,123,232,149,111,38,230,156,196,188,47,192,143,46,93,30,240,221,163,51,225,253,87,227,70,13,127,207,11,249,21,223,191,135,251,66,118,31,190,190,
+135,20,182,172,245,172,26,11,123,56,10,246,144,36,249,18,174,112,123,98,24,236,225,213,165,217,67,47,70,176,64,231,246,210,199,234,63,245,164,255,69,47,216,205,75,217,12,231,244,9,159,211,95,120,39,14,
+155,143,177,115,26,92,68,169,233,85,170,125,167,84,169,252,212,247,246,134,28,124,107,4,64,77,35,79,117,158,150,64,85,227,73,189,172,101,103,182,135,235,40,118,113,178,217,197,159,63,164,219,109,246,186,
+84,198,219,63,177,28,253,111,74,171,255,175,87,47,90,17,48,73,62,251,6,216,195,27,170,216,195,42,223,195,42,223,195,42,246,176,202,247,240,27,39,225,111,252,134,3,161,202,138,102,116,77,31,171,216,195,
+3,121,145,7,242,111,43,181,133,15,228,23,171,172,127,123,80,2,174,98,15,171,216,195,42,246,240,59,204,30,142,191,132,186,84,215,255,164,84,243,39,175,135,229,249,3,167,166,175,172,109,81,170,217,66,69,
+114,23,50,137,29,223,13,246,240,139,254,233,87,95,244,73,191,249,197,181,233,87,159,193,30,190,12,123,56,253,187,202,30,254,12,223,195,15,241,61,220,136,239,225,187,176,135,239,194,30,110,132,61,220,12,
+123,248,9,236,225,74,216,195,137,176,135,87,127,23,216,195,47,166,164,47,127,114,115,218,186,105,112,250,248,61,112,188,13,176,135,111,193,30,190,1,123,248,58,236,225,54,216,195,55,96,15,95,131,61,92,
+1,123,56,25,246,240,146,35,149,61,220,6,123,72,176,95,236,129,61,124,191,48,216,45,235,97,15,215,194,30,174,129,61,124,27,246,144,207,125,240,60,236,225,179,176,135,207,193,30,190,8,123,248,56,236,97,
+207,35,129,61,252,100,98,250,201,14,216,195,15,96,15,223,128,61,92,13,123,184,6,246,240,199,176,135,79,195,30,174,130,61,124,1,246,240,21,36,21,47,194,30,190,15,123,248,99,216,195,103,97,15,41,198,191,
+247,20,236,225,99,176,135,43,96,15,159,134,61,28,114,56,250,30,202,30,126,4,123,248,51,216,195,87,96,15,167,146,171,234,215,51,151,179,178,148,106,13,217,27,74,85,14,120,173,235,13,3,122,165,217,227,97,
+15,31,130,61,124,1,246,112,25,236,225,83,69,193,62,14,123,184,20,246,240,17,216,195,229,176,135,47,194,30,222,10,123,216,166,225,191,83,109,220,141,58,96,43,210,138,191,32,195,185,206,203,205,138,238,
+4,250,90,180,118,175,91,75,36,68,141,53,102,253,151,127,249,151,143,68,104,89,30,118,206,154,53,229,207,79,62,57,20,41,194,116,228,132,247,33,51,122,20,121,239,108,100,10,179,248,8,74,187,21,246,112,45,
+236,225,237,176,135,99,135,228,18,114,234,171,13,214,224,212,133,236,213,247,80,246,112,28,236,225,124,216,195,7,97,15,151,194,30,18,236,219,15,193,30,62,13,123,184,12,246,240,81,216,195,89,176,135,205,
+235,253,59,154,45,131,222,78,149,211,43,227,188,69,173,91,81,206,173,194,100,222,215,6,140,176,243,135,168,104,230,232,66,139,42,118,163,188,48,133,237,63,221,127,255,128,92,176,59,118,204,68,150,48,27,
+165,205,195,60,15,164,159,124,54,61,109,123,31,246,240,1,216,195,238,87,230,152,8,91,80,201,130,100,74,92,179,28,190,135,89,246,144,155,11,43,246,61,188,25,246,112,46,236,225,131,176,135,180,244,150,101,
+176,135,119,195,30,226,136,183,235,65,216,195,155,15,21,123,248,223,241,61,220,12,123,216,183,180,239,161,226,149,80,239,196,101,218,154,97,100,217,67,21,125,190,20,187,184,236,97,164,105,139,217,67,84,
+117,171,110,135,61,92,2,123,72,176,235,230,195,30,222,9,123,120,39,236,225,125,176,135,3,15,54,123,248,9,190,135,111,194,30,78,31,159,235,178,62,225,123,152,149,42,169,179,84,147,165,172,73,165,143,85,
+127,101,77,22,197,109,253,96,15,43,244,61,148,61,156,0,123,56,11,246,144,96,215,204,133,61,196,47,109,237,109,176,135,119,192,30,246,56,88,236,225,238,25,220,27,95,154,61,12,195,56,171,250,193,37,249,
+103,229,73,17,176,129,134,20,209,239,241,177,133,67,247,165,76,169,28,123,56,124,72,90,56,26,246,240,86,216,195,89,176,135,51,96,15,41,237,188,57,11,246,112,6,236,97,171,134,127,164,20,179,147,158,241,
+137,121,114,180,153,115,25,203,181,77,206,239,245,14,0,84,111,167,163,132,123,30,37,251,38,148,174,239,233,28,253,192,3,195,208,60,223,135,242,117,30,82,224,194,9,202,49,187,105,45,236,33,246,157,225,
+123,168,76,41,148,178,42,235,20,152,42,88,81,68,170,238,82,133,78,120,32,6,99,104,176,190,16,199,182,99,89,225,185,63,195,238,93,142,61,28,49,48,45,28,5,123,56,29,246,240,22,216,195,201,176,135,147,97,
+15,111,131,61,28,86,217,236,33,19,84,140,89,5,45,193,30,42,65,82,7,29,56,158,242,35,101,254,74,146,190,14,199,51,224,120,194,36,210,23,162,116,162,66,246,240,70,216,195,201,176,135,211,224,14,167,242,
+112,105,232,170,137,176,135,23,87,150,239,225,95,195,30,254,168,52,123,104,171,40,0,85,33,175,54,82,53,157,52,138,226,50,21,182,42,237,252,186,122,76,101,137,142,93,95,82,89,254,208,192,29,22,225,114,
+105,171,107,98,161,58,168,152,61,28,9,123,56,17,246,240,102,216,195,49,176,135,128,90,207,143,135,61,28,84,89,236,33,14,209,55,14,27,146,131,155,99,130,82,118,168,46,50,107,82,99,208,62,202,9,5,174,52,
+148,50,232,112,185,244,37,5,221,22,162,83,255,174,74,47,92,46,213,109,58,99,135,20,170,152,61,28,0,123,200,53,176,75,71,192,30,82,131,126,122,20,236,225,200,202,96,15,217,65,185,169,8,246,48,196,103,182,
+172,202,87,245,206,194,25,114,14,42,228,21,138,42,30,183,149,181,52,80,63,109,16,202,149,130,59,204,226,180,190,192,192,105,21,159,58,7,248,130,202,249,30,246,129,61,28,160,131,22,236,225,16,10,240,67,
+96,15,71,87,6,123,200,37,37,3,251,22,178,135,177,206,250,209,73,42,156,181,164,90,84,182,219,226,202,129,149,249,203,60,168,165,84,87,105,16,206,212,89,43,207,44,59,28,234,60,39,184,32,217,130,61,180,
+150,156,99,15,7,193,30,98,27,246,208,13,62,176,135,131,96,15,135,195,30,14,205,39,123,200,65,96,3,155,127,103,101,215,205,88,103,253,197,85,196,134,245,151,42,246,112,214,10,147,25,33,43,21,243,210,226,
+89,105,113,92,140,239,120,246,37,184,94,251,245,208,95,58,12,84,243,89,44,87,5,100,192,22,210,115,236,97,55,216,195,222,20,220,7,194,30,210,218,203,6,195,30,14,205,39,123,200,169,199,131,128,123,99,183,
+139,89,223,21,103,230,44,130,231,159,5,181,236,218,118,113,91,90,169,191,221,58,84,242,225,67,236,4,21,70,173,182,170,19,155,75,152,192,165,147,157,107,248,69,23,93,148,19,184,249,81,69,95,142,61,236,
+2,123,120,57,236,97,31,216,195,254,176,135,92,231,188,114,72,62,217,195,159,148,176,135,97,145,45,235,16,112,165,31,179,40,158,1,11,106,56,182,85,183,171,125,118,109,118,183,21,134,53,138,76,157,160,236,
+230,118,119,91,212,151,98,176,162,1,193,81,216,131,156,193,213,130,168,11,41,102,15,219,128,237,208,181,231,93,7,123,8,153,246,204,32,216,195,126,249,242,61,220,80,194,30,26,176,251,99,187,108,140,93,
+39,172,112,182,203,162,120,97,9,230,12,238,250,108,96,193,13,43,36,119,18,115,115,98,107,6,108,233,36,167,18,222,239,119,210,115,121,243,239,101,217,195,139,27,192,30,118,57,37,205,236,113,90,154,119,
+45,236,33,100,218,228,193,249,96,15,201,84,120,120,47,203,30,134,73,156,99,214,128,109,77,91,58,220,240,162,149,125,1,2,88,118,111,65,16,3,86,57,239,152,54,80,39,61,187,188,193,5,108,233,184,119,194,243,
+9,30,74,177,106,41,246,240,130,26,233,250,150,213,211,248,75,96,15,123,48,107,107,18,55,248,64,217,195,109,35,184,76,104,104,122,243,71,229,217,67,151,30,161,12,199,170,68,138,45,158,53,108,180,43,27,
+188,47,194,224,157,216,252,186,203,146,173,168,204,223,159,97,119,247,229,197,35,186,231,184,15,132,207,207,187,145,49,224,82,190,135,231,225,123,8,235,48,184,29,236,225,229,176,135,61,97,15,7,30,8,123,
+248,241,141,100,47,134,194,46,13,74,107,159,42,207,30,218,26,97,191,25,191,164,191,104,60,126,205,53,218,95,214,239,117,204,171,130,15,42,213,86,119,220,251,194,162,151,248,146,2,192,12,24,211,225,224,
+75,113,182,46,197,30,158,139,239,97,61,216,195,230,63,72,99,187,192,30,118,135,61,28,184,191,236,33,121,99,83,169,102,23,77,184,153,131,42,203,30,138,219,5,212,108,215,51,168,160,212,236,162,142,59,91,
+82,32,203,165,198,49,107,119,182,91,27,180,1,203,30,134,237,103,24,59,6,177,26,252,146,61,196,158,80,142,61,196,138,168,160,246,9,233,10,80,188,27,218,49,121,117,163,75,15,218,31,246,144,138,128,73,114,
+243,198,166,82,183,241,108,121,177,60,123,232,216,115,235,232,198,194,64,195,227,80,88,195,32,13,204,37,198,29,86,152,180,58,51,187,197,116,34,114,56,132,205,103,89,216,50,44,62,3,207,181,91,75,168,217,
+194,197,236,225,15,97,150,206,135,61,188,16,246,176,37,236,97,87,216,195,193,251,203,30,254,186,95,250,197,167,176,135,63,133,61,252,12,246,112,67,9,123,232,102,192,211,140,107,170,51,172,75,136,75,142,
+129,186,164,136,226,69,160,110,36,92,103,3,250,48,112,215,91,103,100,187,122,224,244,182,106,76,110,97,244,24,230,143,78,132,174,199,202,18,207,58,235,172,66,212,0,165,188,114,98,173,76,10,206,135,61,
+108,128,239,97,193,241,105,228,192,253,101,15,191,128,61,252,8,246,240,29,216,67,242,198,166,82,205,46,102,217,67,119,92,62,97,133,237,26,234,154,233,90,235,218,234,76,236,58,107,171,198,190,219,195,129,
+251,99,91,223,30,225,166,37,96,75,91,51,220,109,227,163,189,40,152,67,63,170,195,204,177,135,13,96,15,33,90,90,162,178,45,192,112,234,170,139,96,15,91,31,8,123,72,173,199,242,135,21,1,147,228,230,141,
+95,90,88,200,30,122,64,55,221,234,73,198,76,133,44,131,231,93,3,15,251,63,199,107,152,43,103,185,67,91,216,128,93,146,236,21,142,117,41,52,91,218,25,188,172,151,177,47,148,43,216,139,225,15,245,152,57,
+223,67,36,200,205,129,62,12,184,237,249,160,120,23,225,123,216,225,64,216,67,10,91,214,122,62,124,13,246,144,228,248,7,47,194,30,62,82,49,123,104,142,42,220,240,12,198,101,199,115,109,92,80,226,11,9,154,
+197,214,246,123,124,57,114,135,38,9,92,158,12,218,137,204,25,57,198,173,221,220,89,93,218,37,92,182,138,125,15,207,40,12,182,133,12,113,45,2,190,16,246,240,202,3,101,15,223,135,61,124,13,246,144,139,53,
+45,127,152,36,55,111,156,245,61,84,230,111,192,142,103,91,53,139,225,121,56,8,191,67,63,26,108,150,59,52,19,226,184,119,226,11,11,109,3,143,163,102,184,90,202,69,148,98,15,47,132,61,132,114,49,216,230,
+210,45,0,32,87,95,152,15,246,240,49,216,195,55,96,15,9,214,242,135,21,129,213,247,192,30,222,196,85,79,164,87,13,214,221,151,73,184,24,175,118,89,159,112,178,116,11,234,86,52,2,246,107,193,15,187,119,
+118,54,119,233,114,2,11,208,50,28,111,93,195,229,161,74,249,30,98,107,82,255,76,124,15,129,61,12,182,57,129,23,208,210,215,52,203,7,123,72,201,210,42,158,133,45,107,61,219,105,233,29,171,97,15,103,151,
+176,135,158,158,100,15,13,58,38,40,91,209,0,179,94,135,101,173,255,2,180,116,86,119,44,59,129,5,93,26,91,74,87,3,1,174,82,190,135,181,97,15,107,194,30,226,161,102,176,205,126,120,82,234,72,11,247,236,
+216,194,67,197,255,226,217,68,2,112,155,90,205,34,235,132,66,163,86,96,173,114,149,7,90,109,32,19,205,199,86,222,57,247,238,177,62,107,201,114,215,143,97,15,153,188,118,190,4,123,248,24,236,33,21,129,
+161,36,201,195,68,61,216,67,187,186,103,219,0,163,179,6,143,1,105,153,209,240,236,235,161,193,113,156,117,180,148,33,118,35,227,68,102,114,48,224,173,98,223,195,118,248,30,158,1,123,8,229,210,24,14,162,
+225,105,248,30,158,121,124,234,90,23,223,195,142,249,242,61,156,9,123,248,14,236,225,10,216,195,162,194,150,229,143,229,211,96,15,135,86,204,30,26,168,9,56,147,5,86,23,108,233,44,74,235,56,119,8,120,114,
+138,164,128,180,185,51,188,45,238,142,46,76,30,75,177,135,103,193,30,18,108,174,101,121,26,159,129,239,225,233,176,135,77,11,217,67,197,228,252,159,219,181,59,161,69,175,46,50,197,240,238,218,92,126,186,
+92,11,147,171,58,150,236,255,88,53,21,108,22,118,210,53,246,88,140,182,62,107,201,50,10,91,235,239,135,61,188,11,246,112,28,236,33,73,242,178,236,161,59,33,211,50,238,125,125,98,12,187,173,180,7,56,134,
+13,218,0,109,113,47,52,112,233,113,54,118,99,17,8,109,180,108,142,61,60,3,246,144,157,85,4,107,87,110,113,38,236,225,5,167,164,182,45,155,255,153,10,98,30,217,67,138,209,214,103,55,63,10,123,72,176,235,
+23,192,30,82,235,177,252,177,104,12,236,225,212,177,185,43,27,77,165,10,90,70,14,202,180,140,153,10,187,190,107,177,179,180,135,127,3,142,153,221,127,19,23,26,24,104,184,72,135,87,105,219,214,173,8,22,
+246,240,44,38,169,162,150,53,216,102,176,76,109,248,123,231,54,57,223,195,191,199,6,101,27,70,146,59,104,221,55,104,81,141,108,180,60,209,238,164,122,84,31,42,172,30,146,51,250,62,44,240,0,42,124,219,
+104,229,221,94,113,204,47,254,123,47,205,20,206,122,255,126,216,195,76,97,107,221,221,176,135,19,74,216,67,185,95,171,6,230,159,124,164,83,176,253,202,101,43,4,56,220,41,249,81,130,69,246,48,130,52,80,
+175,172,184,180,246,177,233,202,214,117,114,155,139,2,238,234,48,216,134,167,99,157,93,38,216,86,16,107,157,90,22,251,30,238,166,43,203,68,124,2,142,59,163,136,135,104,202,199,51,121,142,221,107,192,126,
+145,46,121,62,65,47,100,220,109,247,62,103,90,109,119,179,102,77,254,180,244,22,216,67,234,179,150,44,45,108,109,184,15,246,240,46,216,67,202,31,11,134,193,30,14,129,61,28,59,58,215,210,102,54,109,237,
+8,216,224,28,151,101,217,195,179,206,168,201,120,164,107,158,119,116,26,0,152,53,24,4,175,71,179,179,82,253,90,103,167,11,79,119,172,22,78,80,141,206,128,61,164,101,155,210,210,45,153,168,218,215,175,
+149,154,84,186,239,33,149,119,139,209,214,103,55,222,7,123,120,15,236,33,133,45,107,61,43,39,193,30,142,128,61,236,7,123,216,187,109,26,49,100,223,217,195,190,216,97,223,64,160,6,59,24,4,239,226,90,199,
+164,122,167,225,100,73,183,141,150,109,192,140,220,232,52,216,67,130,45,168,11,123,216,184,225,65,242,61,164,242,254,216,45,176,135,143,192,30,206,133,61,164,138,103,97,107,197,68,216,195,113,176,135,
+84,4,76,146,207,236,5,123,120,57,236,33,217,197,46,29,247,238,123,216,177,121,189,212,179,193,113,185,96,7,209,202,61,235,30,197,242,3,100,73,192,206,198,185,49,203,4,213,180,230,209,169,221,133,176,135,
+4,123,240,125,15,169,229,88,159,181,100,185,130,130,150,193,90,235,177,252,177,116,132,85,1,224,44,242,198,166,82,251,181,173,145,46,105,8,123,88,27,246,16,227,198,186,231,148,103,15,229,13,251,224,81,
+58,144,128,123,212,57,10,142,152,117,246,76,2,46,154,141,219,18,120,167,22,141,115,221,248,208,177,135,20,163,173,207,174,157,14,123,8,119,104,97,203,242,135,193,46,30,2,123,72,146,220,188,241,204,171,
+97,15,47,134,61,108,13,123,216,6,246,176,94,121,246,80,23,203,182,181,78,72,3,8,250,186,122,213,88,99,143,99,236,158,144,218,49,134,59,93,112,106,186,184,109,203,28,123,72,154,246,139,67,203,30,82,140,
+158,115,3,236,33,37,75,171,120,22,182,150,221,8,123,56,24,246,144,174,109,146,124,222,117,176,135,61,96,15,47,171,153,166,92,14,123,216,172,98,223,195,122,231,159,157,174,170,115,76,26,5,48,221,142,179,
+110,135,243,79,73,151,183,108,144,10,90,183,252,51,233,157,191,61,188,216,67,234,179,150,44,151,142,134,61,28,3,123,72,173,199,242,199,253,253,96,15,123,19,52,121,227,185,220,106,182,160,55,236,97,231,
+210,190,135,46,95,193,30,54,168,125,94,154,210,246,248,52,144,139,72,58,180,110,145,219,65,149,241,61,212,114,108,53,203,205,97,230,123,72,97,203,90,207,170,161,176,135,131,97,15,73,146,47,185,30,246,
+112,0,236,225,229,229,217,67,183,147,33,106,233,223,173,157,53,164,127,102,253,254,25,1,127,164,207,26,187,192,237,174,179,71,6,123,72,249,195,138,128,73,242,217,253,97,15,7,150,103,15,169,23,253,49,124,
+15,233,190,91,56,245,108,134,48,221,67,160,238,3,118,186,131,42,218,84,184,139,242,126,29,55,22,234,56,78,225,249,62,207,81,223,196,74,236,23,243,192,15,254,30,207,9,60,103,243,116,82,64,194,132,179,129,
+137,100,55,251,240,79,40,180,125,206,86,114,39,39,168,143,104,145,45,116,199,157,108,62,190,160,165,190,98,203,249,91,182,128,127,13,132,249,215,108,110,126,75,32,95,241,249,47,232,210,95,199,30,26,104,
+149,239,33,47,90,124,246,68,158,125,114,240,248,198,173,229,55,117,141,226,31,80,136,215,86,249,30,242,18,234,242,120,45,76,203,162,115,233,68,62,206,231,121,152,231,113,30,161,103,255,236,231,252,154,
+227,178,19,79,135,162,241,233,73,199,76,133,22,187,158,103,189,94,70,110,249,216,125,25,171,7,108,199,251,45,91,92,252,174,6,207,105,60,231,240,120,68,243,23,247,5,24,68,243,162,23,225,203,240,241,239,
+126,190,49,143,206,152,94,246,117,62,143,105,153,31,240,216,131,114,119,233,28,232,115,192,63,96,175,248,121,149,239,225,129,183,208,97,221,194,7,250,203,85,198,191,175,212,46,29,191,112,21,123,88,197,
+30,86,177,135,223,65,246,112,65,207,52,247,182,203,211,4,10,115,253,251,125,215,217,195,175,198,166,223,252,106,84,250,249,231,176,135,159,195,30,254,20,246,112,39,236,225,11,176,135,183,124,215,216,195,
+173,163,211,151,63,157,154,190,252,28,246,112,35,236,225,187,176,135,235,97,15,223,134,61,124,23,246,240,125,216,195,173,176,135,63,130,61,28,127,164,179,135,219,199,166,29,91,105,217,159,192,30,126,10,
+123,248,30,236,225,59,40,133,222,130,61,92,11,123,248,26,236,225,171,176,135,104,194,118,189,10,123,248,50,236,225,147,176,135,55,31,137,236,225,39,248,30,110,195,247,112,11,236,225,30,216,195,79,96,15,
+55,16,236,122,216,195,181,176,135,107,96,15,127,12,123,184,14,246,144,23,240,193,74,216,195,21,176,135,207,192,30,62,7,123,8,160,117,228,176,135,219,96,15,223,131,61,92,3,123,248,28,236,225,171,176,135,
+47,193,30,62,9,123,184,2,246,240,57,216,195,23,145,84,60,15,123,184,1,246,240,37,216,195,21,176,135,226,120,143,193,30,46,133,61,124,18,246,240,113,216,67,174,165,179,2,194,21,145,187,209,153,108,69,251,
+245,21,53,168,13,164,125,38,147,13,57,215,211,212,126,95,47,133,236,224,24,132,222,87,32,50,89,169,163,37,242,131,247,81,230,236,22,199,123,244,209,161,200,18,22,162,205,184,13,215,202,217,57,218,101,
+207,158,153,60,51,210,46,217,195,205,176,135,63,133,61,124,17,246,112,202,62,176,135,55,193,30,62,0,123,248,28,236,225,18,216,195,199,35,88,216,195,71,96,15,31,132,61,124,4,246,240,57,216,195,233,176,
+135,173,15,23,246,240,99,216,195,215,97,15,231,238,39,123,120,19,236,225,77,176,135,119,194,30,46,130,61,124,24,246,240,33,216,195,69,176,135,143,195,30,62,2,123,184,24,246,112,58,236,97,179,67,205,30,
+190,7,123,120,127,105,246,80,89,83,212,134,45,138,127,43,246,112,34,236,225,108,216,195,133,176,135,203,96,15,151,192,30,206,131,61,196,17,111,215,66,216,195,241,135,146,61,220,84,158,61,84,246,16,22,
+69,42,2,228,14,131,61,20,182,212,247,80,13,71,150,61,84,5,16,4,106,206,247,80,246,112,14,236,225,98,216,67,130,93,119,7,236,225,28,216,195,57,176,135,119,193,30,246,63,216,236,225,14,216,195,55,42,102,
+15,203,74,150,108,233,64,121,148,35,42,115,10,73,226,184,113,227,114,34,183,184,115,222,235,155,45,162,43,155,152,61,29,246,240,38,216,195,25,176,135,4,187,134,34,252,43,51,40,215,206,132,61,188,13,246,
+176,251,193,98,15,177,221,253,96,77,197,236,161,193,138,223,41,58,51,40,165,75,126,84,127,169,170,86,152,67,197,79,88,6,42,101,10,217,132,210,70,147,242,165,124,15,101,15,71,192,30,78,131,61,164,60,251,
+226,45,176,135,208,105,111,78,135,61,228,2,209,130,150,7,131,61,124,163,98,246,80,149,157,50,226,192,241,2,212,82,91,169,106,71,33,139,223,19,215,166,135,232,116,210,164,73,57,29,167,193,90,76,175,144,
+61,28,1,123,56,21,246,144,96,87,77,132,61,156,8,123,120,43,236,225,144,202,102,15,153,160,42,98,15,13,72,37,157,143,202,186,8,60,139,227,133,233,163,173,27,176,135,26,46,31,97,75,199,181,247,79,171,251,
+42,199,30,14,197,247,112,8,236,33,133,187,213,83,224,14,39,241,112,45,236,170,155,42,155,61,124,170,52,123,168,58,71,21,173,90,73,5,162,97,80,161,186,206,199,174,173,17,149,18,165,192,241,12,54,248,67,
+39,183,8,58,4,108,170,123,20,150,170,156,213,6,48,199,30,142,25,147,110,27,1,123,56,14,246,112,60,236,33,117,232,229,148,103,159,31,13,123,56,160,178,216,67,28,162,179,236,161,179,177,234,156,240,70,18,
+246,8,94,73,69,157,242,96,149,243,97,7,24,93,218,128,194,255,48,75,152,26,176,74,190,128,183,84,239,150,99,15,251,194,30,82,146,93,58,12,246,16,20,239,233,97,176,135,55,86,6,123,200,14,202,77,133,236,
+33,23,13,228,20,119,241,11,218,109,203,250,36,5,7,33,161,162,238,57,248,67,199,176,106,60,39,183,88,190,12,58,254,238,36,230,24,15,184,90,87,60,1,15,255,95,133,233,99,122,195,30,246,69,101,64,176,139,
+185,236,119,9,183,28,63,71,121,54,255,190,135,239,84,204,30,218,165,109,201,192,241,252,168,138,61,204,165,162,149,69,118,20,163,133,59,79,232,168,35,208,80,219,218,250,10,215,212,114,73,174,122,111,128,
+1,135,239,225,176,193,125,211,84,108,195,12,246,161,1,176,135,92,246,251,204,16,216,195,27,242,205,30,178,249,87,78,232,154,25,106,89,3,144,121,40,75,166,69,240,146,41,170,99,213,81,42,251,183,75,75,142,
+58,134,35,208,172,225,163,193,134,15,162,193,42,66,245,163,34,55,37,80,10,214,114,236,225,101,176,135,189,44,184,195,30,210,218,203,250,195,30,14,202,39,123,200,169,199,131,128,235,163,170,59,91,71,129,
+168,240,85,216,5,101,81,188,160,211,2,197,115,60,219,173,157,220,212,89,42,32,15,126,216,63,219,133,109,85,215,104,123,128,12,162,19,156,143,255,103,92,176,175,192,77,246,176,71,103,216,195,203,96,15,
+193,240,22,162,48,88,196,117,206,43,7,228,139,61,252,221,189,233,183,159,194,30,142,47,241,61,116,51,225,178,99,192,142,221,112,183,52,248,8,86,68,71,73,191,95,183,165,37,95,220,109,101,221,62,108,93,
+91,212,86,183,37,13,212,94,32,60,162,210,214,239,87,189,103,160,182,176,10,190,98,246,176,53,216,206,21,90,135,193,30,246,132,61,236,155,15,246,144,76,197,174,29,99,211,238,245,229,217,67,215,90,151,160,
+48,134,114,73,10,148,54,8,83,9,21,255,236,139,16,224,114,3,18,119,6,132,215,67,220,2,225,178,165,111,139,74,121,241,0,117,212,14,3,183,152,6,106,224,58,243,132,239,225,197,245,97,15,59,194,30,94,9,123,
+200,21,206,143,95,7,123,56,240,64,216,67,114,80,166,101,204,84,120,120,207,178,135,158,126,92,99,229,137,194,155,48,139,226,249,18,4,167,13,216,22,214,3,209,151,33,157,230,228,100,43,75,191,8,135,56,123,
+187,78,27,160,68,169,75,152,179,190,115,131,194,113,255,141,127,23,167,45,197,30,162,249,186,190,5,236,97,151,83,211,109,87,50,107,107,18,55,112,127,217,195,159,221,144,182,109,129,59,252,136,231,67,216,
+195,167,74,179,135,30,245,156,136,28,155,182,180,129,135,132,95,233,126,112,131,182,186,47,194,224,13,92,100,199,125,180,65,186,237,116,141,54,48,151,46,127,94,124,180,251,7,194,231,231,13,92,181,79,41,
+246,240,220,26,169,91,3,216,195,54,63,72,83,47,57,61,221,223,29,246,176,255,254,178,135,159,131,224,125,8,123,184,9,246,240,125,216,195,39,74,179,135,110,3,253,133,253,101,124,148,239,251,209,95,212,143,
+238,165,125,252,179,59,45,91,200,238,236,218,234,184,247,5,216,226,190,0,95,142,99,220,45,169,47,206,23,230,82,150,181,20,244,231,184,44,149,98,15,207,134,61,172,115,98,186,22,135,129,49,29,106,166,123,
+47,135,61,236,191,63,236,33,73,114,243,198,166,82,205,46,154,112,51,7,149,101,15,61,207,26,132,143,1,133,237,159,99,78,82,205,155,29,228,254,109,73,79,73,206,190,193,49,57,91,59,123,219,205,229,14,13,
+220,201,45,92,44,125,33,246,138,176,242,12,147,72,249,225,82,190,135,63,132,61,4,197,187,28,102,233,134,214,76,94,93,233,210,3,246,135,61,164,34,96,146,220,188,177,169,212,109,60,91,86,151,176,135,110,
+240,189,98,194,143,174,167,142,63,3,53,64,39,156,112,197,115,198,117,233,50,216,112,149,54,104,91,218,238,239,100,230,76,158,165,209,2,192,142,237,169,47,198,97,97,247,118,194,42,197,30,42,18,71,174,216,
+181,30,236,97,179,83,211,220,78,53,210,212,193,221,149,45,127,5,13,179,19,197,208,86,18,123,202,42,84,26,156,83,92,46,5,172,186,148,25,242,61,198,146,246,97,191,180,252,241,187,95,194,30,238,130,61,252,
+12,246,112,55,236,225,122,216,67,236,120,205,74,24,172,153,10,31,55,245,46,33,6,233,227,186,233,172,107,160,89,135,173,240,60,20,226,242,251,5,57,108,69,103,239,96,139,179,174,150,110,100,2,192,182,197,
+157,200,108,93,131,46,102,15,209,99,54,199,104,170,0,59,192,238,245,241,61,108,131,239,225,128,253,101,15,63,135,61,252,0,246,240,45,216,67,242,198,166,82,103,147,93,244,204,234,126,214,64,61,205,76,153,
+50,37,23,164,7,251,240,9,119,3,225,129,63,136,210,56,243,250,209,151,96,23,119,54,150,96,9,159,67,3,52,224,108,208,209,213,93,5,204,128,24,176,119,0,20,179,135,168,226,91,2,107,21,96,67,116,213,133,176,
+135,45,15,132,61,164,214,99,249,195,138,128,73,114,243,198,47,221,87,222,247,208,205,66,92,48,18,150,217,113,245,76,220,228,16,6,143,118,107,83,59,190,32,199,184,72,173,173,28,206,180,89,87,75,255,236,
+75,240,103,122,104,144,93,18,23,40,246,61,68,130,220,28,165,109,203,28,153,86,61,117,167,91,143,42,56,16,246,144,194,150,181,158,15,95,134,61,52,81,254,28,236,225,67,176,135,131,74,124,15,189,158,198,
+45,166,187,36,91,213,29,83,192,90,113,147,146,193,134,165,152,235,175,223,235,216,118,99,225,44,239,178,22,174,182,174,221,217,3,136,189,64,75,177,96,15,13,186,20,123,72,176,45,8,186,13,166,173,61,152,
+173,135,93,126,160,236,225,59,176,135,47,195,30,62,15,123,184,10,246,144,36,185,121,227,44,123,232,165,97,113,127,78,22,195,203,94,32,102,192,102,49,130,59,52,96,39,46,103,115,151,49,151,162,184,199,39,
+11,90,250,242,142,58,234,168,98,16,196,221,86,231,206,157,83,51,217,67,216,7,131,181,149,219,128,229,93,93,7,246,144,179,243,129,249,30,62,10,123,8,149,102,173,199,242,135,21,129,213,243,203,179,135,158,
+158,178,24,94,120,29,198,229,38,246,130,112,132,247,224,96,192,238,147,237,214,46,81,182,178,107,177,79,128,150,182,182,235,112,208,105,142,95,51,31,29,101,15,33,93,100,33,12,182,57,138,249,2,90,250,154,
+38,231,166,75,177,34,67,219,249,49,13,178,135,127,183,133,153,185,23,143,34,55,117,95,39,148,18,181,240,137,239,145,47,94,193,86,239,99,47,194,69,178,251,15,150,44,173,226,89,216,178,214,179,253,57,216,
+195,103,97,15,103,149,103,15,101,138,35,101,19,198,142,241,49,152,37,103,104,39,51,3,246,80,224,50,22,147,151,187,53,31,91,218,199,86,247,70,152,114,236,225,5,176,135,167,22,177,135,57,126,9,246,144,22,
+238,217,33,31,190,135,178,135,148,44,119,189,8,123,200,228,181,243,121,216,195,71,97,15,169,8,148,101,15,77,184,217,213,157,168,156,193,61,66,102,205,29,109,225,8,216,217,220,153,58,28,45,93,162,100,136,
+221,93,185,62,27,184,107,188,251,102,3,46,197,30,226,161,38,164,213,24,150,169,33,208,101,179,211,97,15,107,195,30,118,200,23,123,56,3,246,112,29,236,225,83,176,135,22,182,168,245,88,254,88,62,181,98,
+246,80,192,42,80,60,151,18,187,117,220,132,102,235,250,4,89,234,46,204,177,236,110,45,246,208,110,98,92,250,194,228,177,152,61,36,205,211,64,246,80,180,167,168,101,27,159,14,123,88,19,246,176,73,190,217,
+67,234,179,150,44,173,226,89,216,90,15,160,245,250,157,176,135,99,203,179,135,206,162,102,37,92,62,24,22,197,137,58,39,45,247,209,142,225,32,75,101,131,53,83,246,251,237,222,246,2,97,143,175,101,15,51,
+193,218,149,91,0,91,118,60,175,178,216,67,234,179,155,31,134,61,92,0,123,120,55,236,33,181,30,203,31,139,70,149,102,15,109,93,31,175,129,242,116,99,208,58,91,70,22,210,101,41,156,105,101,14,5,45,253,152,
+37,215,108,221,82,236,225,233,176,135,103,48,73,21,181,172,193,54,3,137,111,195,199,202,99,15,7,193,30,46,131,61,132,72,203,22,182,214,205,131,61,28,7,123,72,146,220,188,177,236,161,59,33,83,50,110,246,
+229,12,101,15,227,0,111,23,13,246,48,144,89,103,224,156,191,240,233,53,115,47,201,97,145,243,42,133,23,190,144,96,27,66,164,149,13,182,21,32,151,28,19,223,175,173,88,37,177,135,147,97,15,169,207,90,178,
+180,176,181,225,46,216,195,59,96,15,41,127,44,24,2,123,56,184,52,123,104,42,198,0,13,248,235,216,195,147,107,212,72,167,85,63,33,117,191,224,232,116,101,211,179,115,47,171,19,79,147,58,181,82,253,152,
+160,216,51,139,225,217,178,77,105,233,150,76,84,237,47,60,24,190,135,84,222,45,70,91,159,221,120,55,236,225,124,216,67,10,91,214,122,86,142,135,61,28,10,123,216,7,246,240,250,111,102,15,91,52,105,152,
+250,92,88,45,13,197,8,110,8,112,214,13,252,185,91,131,51,82,253,243,207,73,245,78,175,81,212,133,75,38,168,6,204,200,141,106,194,30,18,108,65,109,217,195,70,7,137,61,164,242,254,216,100,216,195,7,96,15,
+103,193,30,22,21,182,86,220,4,123,56,6,246,144,138,128,73,242,153,61,97,15,187,213,74,87,147,93,236,210,169,112,34,211,240,209,199,150,247,239,87,55,57,163,56,216,193,4,220,250,140,163,83,93,32,203,198,
+57,200,178,36,216,194,49,11,123,120,10,236,97,93,217,195,70,135,128,61,164,150,99,125,214,146,229,10,92,240,12,214,90,143,229,143,165,24,61,46,25,2,156,69,222,216,84,106,255,86,176,135,92,246,213,250,
+2,118,72,92,9,85,175,136,61,172,143,213,95,159,122,71,37,131,29,88,183,90,234,116,246,209,169,62,93,55,71,149,198,4,117,102,225,108,220,150,160,59,53,63,212,236,33,197,104,235,179,107,167,192,30,142,129,
+61,148,59,204,93,187,8,123,56,232,140,92,69,224,110,242,198,179,176,255,27,211,249,148,212,175,85,117,130,135,61,172,91,194,30,22,112,233,72,127,130,29,196,211,153,128,235,209,117,35,224,150,4,222,142,
+167,83,173,83,83,23,216,67,39,168,67,207,30,82,140,158,51,24,246,144,146,165,85,60,11,91,203,0,45,31,236,15,123,72,215,54,73,62,255,218,211,211,236,171,96,15,185,217,108,202,165,176,135,77,74,124,15,27,
+112,77,197,245,245,143,75,99,160,74,187,156,115,108,186,168,230,49,169,237,15,79,72,157,57,242,93,90,167,102,142,61,108,215,42,199,30,254,157,179,49,179,247,118,0,174,221,69,246,157,119,178,37,238,193,
+35,184,37,87,33,222,243,253,3,134,60,132,44,138,116,80,195,188,169,219,244,9,91,191,61,172,177,91,88,110,118,146,36,255,27,239,134,181,100,185,148,162,245,234,17,176,135,212,122,44,127,220,79,69,224,158,
+94,116,111,242,198,115,9,122,97,207,227,211,224,14,37,190,135,214,140,58,53,169,147,230,183,98,226,170,127,76,234,130,99,244,85,13,206,74,215,117,110,149,186,117,234,224,233,231,31,9,246,167,172,237,91,
+197,222,15,95,223,67,10,91,214,122,86,13,132,61,236,7,123,72,146,124,9,87,184,61,209,27,246,240,178,210,236,161,71,190,71,47,173,145,110,187,248,156,212,157,195,254,37,172,193,225,123,72,192,31,30,153,
+236,33,21,1,147,228,179,251,86,204,30,246,234,218,238,223,218,181,105,253,127,83,78,249,45,27,150,237,222,184,66,150,116,135,247,114,124,103,217,67,206,187,91,168,110,124,138,154,231,115,175,151,161,187,
+123,77,197,119,154,61,220,206,30,124,171,135,247,42,223,195,42,223,195,111,15,126,229,157,91,98,249,146,54,173,98,15,121,9,39,243,212,228,241,170,152,31,230,202,30,37,143,224,181,96,165,112,230,41,60,
+130,154,2,217,199,152,103,203,39,161,150,247,22,206,231,47,87,25,63,171,42,224,202,120,171,85,236,97,21,123,88,197,30,126,135,216,195,217,87,165,133,247,244,74,11,239,134,61,188,21,246,112,12,236,97,223,
+239,34,123,248,213,168,244,203,47,71,164,159,127,118,99,250,171,47,96,15,127,2,161,182,3,246,112,7,236,225,39,176,135,155,97,15,87,192,30,78,250,46,176,135,219,199,35,127,26,7,203,52,54,109,255,0,246,
+112,23,236,225,39,176,135,235,97,15,223,132,61,92,3,123,248,58,236,225,90,216,195,117,176,135,239,195,30,62,6,123,56,6,246,176,251,145,230,123,184,99,18,8,222,196,244,201,150,241,233,19,2,222,241,1,45,
+187,19,246,112,59,236,225,91,176,135,111,160,20,122,13,246,240,21,216,195,23,96,15,87,195,30,190,15,123,248,60,236,225,179,176,135,143,194,30,142,131,61,236,122,36,248,30,254,197,157,72,22,39,165,157,
+91,39,164,157,31,193,30,110,66,213,247,62,236,225,54,216,195,143,96,15,215,18,236,26,216,195,87,96,15,95,132,61,124,30,246,240,85,216,67,62,247,193,19,176,135,143,193,30,62,14,123,248,20,236,225,131,176,
+135,87,31,206,190,135,95,204,73,127,253,223,22,164,221,31,225,123,184,9,246,112,29,236,225,75,176,135,43,96,15,95,132,61,124,30,246,112,25,236,225,227,176,135,63,130,61,92,137,164,226,71,176,135,107,97,
+15,87,193,30,62,6,123,184,20,28,239,17,216,195,7,97,15,151,192,30,62,12,123,56,240,112,100,15,63,129,61,220,8,123,184,7,246,240,89,216,195,73,176,135,125,247,226,123,216,31,223,195,49,176,135,247,193,
+30,254,8,246,240,1,216,195,71,34,88,216,195,69,148,104,239,133,61,92,4,123,248,36,236,225,228,195,137,61,252,8,57,34,174,149,247,206,134,61,28,83,218,247,80,8,43,110,29,87,34,161,222,75,81,140,76,67,72,
+161,110,150,61,28,13,123,56,27,246,240,46,216,195,5,176,135,247,81,162,189,27,246,240,17,216,195,69,176,135,247,194,30,78,58,212,236,225,167,248,30,190,13,123,184,160,60,123,24,74,0,113,188,176,0,220,
+39,223,195,155,96,15,167,83,124,191,11,246,240,33,216,195,251,97,15,103,195,30,226,136,183,235,78,216,195,49,135,138,61,252,45,190,135,239,195,30,246,41,237,123,24,126,74,234,59,130,61,180,78,44,144,101,
+192,66,34,21,177,135,94,19,87,236,123,200,141,254,171,110,133,61,92,8,123,72,176,235,102,194,30,78,135,61,156,14,123,56,27,246,176,207,193,102,15,183,195,30,190,6,123,56,173,188,239,161,60,131,106,30,
+245,91,234,162,21,184,40,57,54,120,133,224,10,91,84,3,40,117,178,23,24,164,93,220,238,237,205,228,118,249,98,246,112,20,236,225,100,216,67,130,93,51,21,246,112,18,229,218,201,176,135,183,192,30,94,121,
+176,216,195,157,176,135,47,151,102,15,149,53,40,62,51,88,181,27,74,126,21,172,168,180,85,177,103,240,6,26,30,136,138,92,226,241,223,170,208,13,28,79,49,186,129,231,52,157,178,135,67,97,15,49,134,123,101,
+18,236,225,4,216,67,74,59,111,78,132,61,228,2,209,202,103,15,25,179,155,94,133,61,196,190,51,235,123,104,176,234,55,244,85,81,243,172,244,72,177,74,112,75,234,56,108,221,172,233,163,202,120,131,245,37,
+169,241,80,232,102,176,254,92,175,98,151,52,53,232,177,195,241,61,28,2,123,56,30,246,144,96,87,141,134,61,28,13,123,200,157,184,183,15,172,108,246,144,9,42,198,172,19,145,191,168,114,37,3,81,99,165,250,
+213,143,74,10,179,56,94,184,227,249,125,182,184,34,151,32,76,29,235,42,246,156,181,185,39,58,23,172,87,177,91,134,81,252,34,125,170,172,98,193,0,216,195,209,176,135,227,224,14,199,242,12,135,61,188,17,
+246,176,115,101,249,30,254,22,223,195,39,10,217,67,197,104,6,27,90,104,165,252,97,18,23,122,103,181,87,42,237,148,240,43,1,86,98,156,53,139,11,71,204,208,100,170,237,82,39,162,74,215,9,76,9,68,177,239,
+161,236,225,48,216,195,145,176,135,35,97,15,111,128,61,4,212,122,126,8,236,97,223,202,96,15,217,84,232,16,93,150,61,52,96,187,165,45,152,197,241,148,15,218,181,21,155,169,156,85,117,167,228,48,132,227,
+89,33,106,192,150,182,178,143,63,211,9,205,46,94,142,61,236,5,123,56,144,226,251,0,216,67,64,173,167,7,192,30,14,202,55,123,184,171,112,7,229,166,34,124,15,29,179,254,162,254,98,170,222,195,104,38,192,
+45,229,191,118,107,199,178,218,104,233,20,21,243,10,211,164,196,13,56,152,195,44,93,26,174,31,190,68,85,185,202,36,74,177,135,215,193,30,194,41,25,236,226,222,20,224,175,135,61,28,144,79,246,144,19,206,
+238,29,147,211,142,55,97,15,251,148,248,30,218,10,182,170,130,208,224,13,179,114,126,63,167,0,92,77,116,116,107,213,119,142,95,117,211,170,112,131,44,141,128,227,5,216,213,29,223,142,115,215,235,184,191,
+214,153,59,199,30,82,92,127,232,122,30,20,6,15,244,130,61,236,3,123,56,32,31,236,33,39,30,79,61,30,4,54,176,249,207,178,135,118,61,21,175,65,159,57,126,3,199,11,191,52,131,118,2,83,41,107,183,214,214,
+32,156,122,12,42,2,116,150,14,6,209,121,193,64,179,203,22,150,6,57,221,151,164,105,142,61,236,2,123,216,157,130,251,181,176,135,180,246,178,107,97,15,123,31,40,123,248,249,45,105,15,173,235,17,207,83,
+143,7,129,240,61,180,69,100,4,109,61,199,106,76,86,225,155,20,158,73,74,250,237,1,118,119,209,61,151,38,151,46,53,151,14,137,240,42,246,207,190,0,151,41,31,81,1,21,123,118,125,55,46,46,79,10,218,196,241,
+114,236,97,39,216,67,160,142,187,187,195,30,94,13,123,200,117,206,43,175,61,16,246,240,191,79,72,191,254,229,188,244,127,252,230,190,244,63,127,3,123,200,174,42,216,195,144,5,59,243,218,114,182,160,93,
+55,120,164,44,105,42,170,19,78,121,170,100,165,95,124,81,129,195,27,112,4,234,75,112,46,176,187,219,11,36,87,85,222,250,81,68,222,22,206,178,135,3,154,131,237,208,181,231,131,226,221,125,5,236,97,15,216,
+195,62,251,235,123,72,14,202,180,140,153,138,93,60,187,223,40,205,30,186,124,184,147,10,42,205,201,41,56,35,91,83,6,201,64,179,196,138,56,142,130,112,91,207,22,13,94,88,116,192,150,140,32,13,48,92,62,
+194,206,147,251,119,138,161,75,239,162,86,231,213,181,46,236,97,219,83,210,172,174,167,227,151,6,123,120,37,236,97,191,253,97,15,201,46,154,112,51,7,101,90,198,76,133,135,247,178,236,97,152,196,133,169,
+140,107,110,188,128,8,222,192,237,210,242,73,142,111,55,34,78,86,6,235,86,211,214,14,253,180,193,9,91,186,86,135,135,139,108,132,59,45,121,7,9,83,91,88,179,56,103,238,86,104,190,122,55,134,61,108,143,
+239,97,87,102,109,77,226,250,236,15,123,120,103,247,244,197,46,216,195,247,105,101,110,74,218,190,1,246,240,177,210,236,161,183,174,184,204,184,217,112,50,138,27,29,252,179,91,201,112,203,243,5,40,254,
+118,172,219,237,13,222,128,93,139,21,136,171,143,246,145,127,8,251,78,161,75,31,123,131,90,106,151,178,240,139,16,9,80,48,110,192,141,207,198,247,176,30,236,97,243,83,210,212,14,248,30,98,18,55,187,247,
+254,176,135,183,95,153,190,220,33,130,71,43,191,3,123,248,22,236,225,210,18,246,208,35,158,242,124,79,62,182,128,27,10,113,60,63,6,138,231,47,239,206,202,199,239,241,151,182,155,58,33,25,120,220,6,17,
+107,180,47,197,151,20,86,130,30,58,130,101,244,165,26,184,65,151,98,15,207,130,61,60,31,223,195,6,248,30,182,193,247,176,11,236,97,239,253,97,15,73,146,155,55,54,149,106,118,209,132,155,57,40,151,3,183,
+147,30,231,188,78,198,160,13,192,150,10,219,63,169,51,187,165,135,4,105,240,184,213,193,77,134,251,109,63,26,148,227,59,186,185,147,158,47,192,97,224,11,136,94,17,31,237,49,34,63,242,195,165,216,195,51,
+97,15,49,151,186,2,102,105,72,115,216,195,2,187,244,254,176,135,84,4,76,146,155,55,54,149,186,141,103,203,51,133,236,161,251,219,96,15,181,22,114,151,229,53,52,142,59,15,5,238,162,156,116,156,128,92,86,
+156,144,156,145,3,244,112,6,182,171,26,156,75,150,179,120,120,157,58,222,157,240,98,221,118,24,248,2,156,27,28,42,229,124,15,21,137,159,115,66,186,4,15,211,126,141,96,15,209,116,78,237,191,63,236,33,229,
+143,223,125,6,123,248,49,236,33,155,142,95,179,14,127,249,122,9,123,152,59,185,48,145,216,98,17,160,19,143,235,165,1,57,11,187,105,48,208,152,141,13,216,151,227,139,176,219,187,243,114,195,18,174,150,
+129,224,217,242,6,110,139,251,24,188,251,113,215,111,187,115,192,90,57,223,67,132,168,45,240,113,41,192,34,161,123,29,216,195,38,176,135,253,247,151,61,220,6,123,248,14,236,225,107,176,135,228,141,77,
+165,154,93,204,250,30,122,162,49,72,151,20,91,51,204,148,157,148,188,200,32,203,28,186,81,241,37,232,158,103,247,183,155,102,77,30,179,220,161,47,34,248,37,63,26,176,25,144,82,190,135,245,241,61,68,21,
+223,18,15,166,2,48,158,171,104,229,137,13,14,132,61,164,214,99,249,195,138,128,73,114,243,198,47,205,47,205,30,218,189,237,178,62,177,21,12,190,63,46,36,137,171,102,220,58,154,210,177,71,56,230,93,210,
+220,180,196,46,45,203,29,186,124,197,37,10,182,184,47,71,170,180,20,123,248,67,216,67,148,182,42,110,219,226,97,218,29,239,195,81,45,15,132,61,164,176,101,173,231,195,103,97,15,115,137,114,216,195,5,229,
+217,67,19,0,238,144,98,179,31,102,234,113,190,13,55,60,91,219,93,84,216,132,57,171,155,25,177,203,6,54,155,61,120,24,168,65,219,173,93,175,115,76,4,22,70,197,236,97,205,194,96,91,200,16,3,78,247,56,239,
+132,52,236,210,3,101,15,95,135,61,92,5,123,200,197,154,31,60,9,123,72,146,220,188,113,150,61,116,143,235,102,63,118,77,113,75,90,156,107,253,187,199,60,31,187,188,99,221,19,147,203,140,203,142,244,183,
+91,82,187,119,214,213,210,73,205,3,3,138,188,98,159,38,79,76,57,246,176,30,236,33,94,76,6,219,188,136,110,233,113,110,62,216,195,7,97,15,159,131,61,164,214,99,249,195,138,192,234,185,229,217,67,187,118,
+100,46,130,55,140,143,118,101,191,230,184,54,96,151,169,48,120,116,47,238,105,43,110,137,200,130,150,190,40,100,75,185,128,109,93,159,98,246,240,52,148,245,40,229,13,182,57,208,71,1,174,61,215,52,200,
+7,123,72,201,210,42,158,133,45,107,61,219,159,134,61,124,26,246,112,70,121,246,208,52,171,147,152,16,181,187,176,178,198,112,97,123,111,192,110,27,157,169,3,180,180,149,179,160,165,179,180,179,185,16,
+87,88,140,217,186,93,186,116,73,141,106,193,30,158,12,123,8,27,97,176,205,104,233,142,224,1,61,219,229,195,247,144,250,172,37,203,93,43,97,15,153,188,118,174,128,61,124,0,246,144,138,192,80,146,228,89,
+223,67,217,67,108,199,114,57,168,203,46,187,44,23,112,100,46,108,97,39,44,151,43,97,105,215,108,103,106,119,102,89,71,75,187,182,99,214,224,221,220,4,142,231,193,33,199,49,1,135,212,175,9,123,72,203,54,
+134,112,105,120,10,236,225,169,176,135,120,53,93,210,62,95,236,225,84,216,195,87,96,15,151,194,30,90,216,162,214,99,249,99,249,132,210,236,161,193,250,216,237,60,201,196,146,228,216,118,253,53,88,39,173,
+8,216,117,213,237,103,152,163,187,181,52,247,101,55,55,75,89,33,123,120,6,236,225,233,133,221,216,150,109,92,19,246,240,228,99,83,151,134,117,77,1,253,83,126,124,15,41,70,91,159,181,100,105,21,207,194,
+214,250,59,97,15,103,194,30,14,47,97,15,77,12,72,148,57,139,138,233,216,181,29,135,142,93,31,131,141,128,93,187,237,29,238,216,12,208,93,148,93,220,141,74,248,30,58,35,151,242,61,60,13,223,195,76,176,
+205,78,99,210,58,21,246,240,135,133,236,33,64,88,30,125,15,41,70,91,159,221,188,0,246,112,30,236,225,92,216,67,106,61,150,63,22,13,131,61,156,82,232,123,104,133,80,39,188,184,251,202,113,103,194,207,25,
+59,14,246,142,97,47,46,144,55,116,140,250,98,204,69,27,168,173,90,161,239,97,77,216,67,2,140,150,53,216,102,44,75,109,248,216,185,85,101,249,30,114,105,166,112,214,251,119,194,30,102,10,91,235,102,195,
+30,142,42,205,30,122,99,97,89,246,208,141,191,25,11,209,60,55,17,110,17,203,177,135,180,106,41,246,80,148,143,96,27,158,2,123,88,212,141,35,216,86,140,221,78,205,42,155,61,28,15,123,72,125,214,146,165,
+133,173,13,115,96,15,103,194,30,82,254,88,208,31,246,112,64,9,123,232,201,42,216,67,55,253,89,246,208,64,61,215,218,154,103,158,90,35,53,172,117,58,248,109,179,220,112,112,157,245,105,82,27,246,208,9,
+138,110,236,4,213,232,84,216,67,90,180,105,77,216,67,130,109,95,247,96,177,135,20,163,173,207,110,156,11,123,120,27,236,33,133,45,107,61,43,71,194,30,14,128,61,188,22,246,240,218,118,105,196,208,129,185,
+36,186,179,171,129,123,37,148,99,178,213,69,231,179,13,60,58,93,114,246,247,82,143,115,65,119,48,132,187,170,217,121,185,137,78,219,78,55,21,23,177,206,22,118,225,146,9,170,1,75,81,163,31,192,30,18,108,
+65,173,131,233,123,40,123,56,30,246,240,110,216,67,168,82,171,120,22,182,86,12,135,61,28,6,123,72,69,192,36,249,204,43,97,15,47,134,61,36,187,216,165,99,9,123,216,174,117,203,212,167,97,245,52,84,208,
+146,96,7,67,164,21,156,127,106,170,67,144,181,79,198,9,143,217,55,183,169,96,51,81,186,27,195,30,86,63,26,208,242,80,249,30,82,203,177,62,107,201,114,5,5,45,131,181,214,99,249,99,41,110,120,75,250,1,103,
+145,55,190,165,115,141,52,160,25,236,97,61,216,195,243,116,134,174,1,90,119,98,46,216,33,4,123,3,79,99,176,246,139,236,182,96,120,205,225,12,179,45,27,179,113,91,90,220,49,219,180,180,239,225,95,50,92,
+54,176,35,147,80,235,198,211,138,167,118,145,200,188,156,249,212,55,234,165,85,164,115,6,173,197,110,103,154,55,117,179,91,250,11,102,212,237,204,168,59,73,166,253,222,98,180,245,217,181,99,97,15,135,
+193,30,82,216,178,252,97,176,139,123,227,123,72,146,220,188,241,172,75,107,166,177,5,176,135,88,118,246,111,118,44,173,84,61,13,187,240,168,52,140,160,251,94,80,45,53,224,92,219,80,235,206,211,142,231,
+41,156,160,154,211,210,45,79,131,61,100,12,119,58,27,246,144,158,161,239,33,147,223,207,14,173,239,161,236,97,127,216,67,74,150,86,241,44,108,45,235,7,123,216,11,246,144,174,109,146,124,254,149,176,135,
+151,194,30,118,132,61,236,12,123,216,232,20,188,74,171,167,25,248,27,14,169,251,189,212,10,67,71,187,112,91,93,44,105,229,14,252,185,51,39,160,75,107,193,30,54,43,197,30,238,58,124,216,67,234,179,150,
+44,151,14,134,61,28,8,123,72,173,199,242,199,253,120,29,222,115,21,221,155,188,241,92,110,53,91,120,37,236,97,187,51,83,247,214,245,211,138,142,213,210,204,166,199,176,53,60,41,117,227,185,150,174,126,
+53,183,39,93,83,255,236,212,171,67,203,212,141,177,127,228,176,135,20,182,172,245,172,162,252,177,242,106,216,67,146,228,75,186,193,30,246,128,61,236,114,70,234,220,169,99,90,223,237,232,244,84,251,239,
+165,161,117,25,211,224,240,35,46,111,159,6,145,217,184,156,189,248,145,205,30,82,254,176,34,96,146,124,246,117,176,135,253,10,125,15,151,15,104,157,22,244,108,106,165,255,207,140,203,63,133,239,33,155,
+147,143,190,179,236,33,101,147,95,80,73,248,25,59,179,29,236,197,55,179,97,217,238,93,58,223,89,246,144,189,244,103,200,147,190,36,223,253,83,74,177,219,96,15,63,174,98,15,11,29,245,116,215,19,244,202,
+217,1,238,15,129,243,141,235,240,190,254,208,34,4,79,154,76,250,76,234,172,202,247,144,151,80,229,123,88,212,27,170,216,195,125,29,74,223,246,251,242,54,134,191,237,127,124,168,190,255,160,4,92,197,30,
+86,177,135,85,236,225,119,132,61,156,112,85,154,51,19,246,240,46,216,195,249,176,135,211,138,216,195,62,223,53,246,240,203,49,233,215,191,128,61,252,28,246,112,39,236,225,231,176,135,123,32,212,182,192,
+30,110,129,61,252,24,246,240,125,216,67,234,86,115,38,30,233,236,33,215,52,239,64,54,177,109,19,236,225,70,216,195,247,96,15,119,192,30,110,133,61,124,19,246,112,13,236,225,143,97,15,95,129,61,124,13,
+246,240,117,216,195,119,96,15,151,194,30,142,58,210,216,195,79,166,165,79,62,134,61,220,2,123,248,33,236,33,1,239,120,151,150,221,14,123,184,5,246,240,13,216,195,87,81,10,189,2,123,248,2,236,225,115,176,
+135,207,194,30,162,9,219,181,10,246,112,5,236,225,98,216,195,177,176,135,23,31,238,236,225,175,23,164,95,125,9,123,72,192,59,55,195,30,126,0,123,72,235,238,120,7,246,144,96,191,160,197,183,190,86,24,236,
+150,23,97,15,159,131,61,92,9,123,248,50,236,33,159,251,96,57,236,225,82,216,195,71,97,15,31,131,61,92,8,123,216,253,112,101,15,119,77,79,95,254,4,246,144,160,119,111,130,61,124,31,246,240,13,216,195,213,
+176,135,79,193,30,174,134,61,124,22,246,240,81,216,195,229,176,135,79,192,30,62,141,164,226,73,216,67,186,248,214,21,176,135,75,97,15,31,6,199,123,16,246,112,17,236,225,98,216,195,251,97,15,185,175,235,
+240,242,61,196,86,108,215,54,148,243,239,194,30,238,132,61,92,9,123,56,113,31,216,195,209,176,135,119,195,30,62,9,123,184,16,246,240,161,8,22,246,240,94,74,180,119,193,30,222,11,123,184,28,246,240,230,
+195,133,61,164,101,119,125,0,123,248,50,236,225,172,242,236,161,101,23,181,33,234,187,132,56,42,100,15,199,194,30,142,130,61,156,9,123,56,15,246,240,30,216,67,130,125,251,78,216,195,135,96,15,239,131,
+61,156,15,123,56,241,80,179,135,4,187,109,29,236,225,189,21,179,135,106,50,213,88,43,133,80,22,161,86,211,242,170,245,97,233,51,181,208,1,96,250,82,6,246,239,147,238,30,11,123,56,149,226,251,29,176,135,
+152,62,110,185,15,246,240,86,216,195,233,176,135,115,96,15,71,30,42,246,240,55,176,135,27,202,179,135,89,243,40,229,15,234,171,131,61,84,163,169,86,115,159,216,195,105,176,135,247,194,30,18,236,186,105,
+176,135,160,120,111,77,129,61,156,1,123,120,253,193,102,15,63,134,61,124,229,235,217,67,11,225,170,244,84,212,170,136,85,137,23,65,251,66,44,142,171,241,18,193,43,203,30,22,251,30,78,195,247,112,56,236,
+225,68,216,67,130,93,51,9,246,112,2,229,218,9,176,135,55,195,30,94,113,176,216,67,76,30,63,120,177,98,246,80,169,131,26,14,117,27,202,146,148,5,171,201,82,155,21,174,120,97,147,160,64,92,193,139,42,91,
+187,187,210,70,133,232,229,124,15,7,195,30,98,12,247,202,120,216,195,177,176,135,208,105,111,142,133,61,28,125,48,216,67,198,236,166,151,75,216,67,5,44,138,87,148,27,218,162,161,189,82,127,229,163,226,
+206,160,109,101,133,223,10,211,20,183,168,202,83,163,169,6,36,46,212,183,229,29,199,74,37,84,18,136,228,21,179,135,131,96,15,199,192,30,142,162,68,59,28,246,112,56,236,33,197,188,219,251,87,38,123,248,
+249,236,220,4,21,236,161,202,218,8,214,192,21,143,102,113,60,101,72,161,123,86,244,109,247,14,177,184,186,75,181,31,6,171,24,53,16,92,181,34,6,234,221,212,202,161,138,217,195,33,176,135,125,97,15,71,192,
+30,142,134,59,28,201,195,165,161,171,134,84,22,123,248,171,123,210,223,255,6,246,240,177,18,223,67,53,88,193,30,42,47,84,131,21,28,83,24,79,133,187,78,224,120,6,44,2,160,154,71,29,165,193,42,95,12,171,
+4,199,115,232,190,20,163,149,98,15,135,192,30,222,8,123,56,12,246,144,58,244,242,190,176,135,20,239,102,244,206,55,123,232,58,203,166,66,135,232,44,123,104,235,58,14,237,158,42,236,20,133,134,57,69,88,
+139,41,244,182,155,59,142,21,163,25,176,99,88,181,157,19,153,63,67,81,170,147,92,72,22,237,214,234,68,184,150,181,60,123,216,19,246,144,146,236,210,190,176,135,215,195,30,246,129,61,236,159,79,246,144,
+131,192,238,29,133,59,40,55,21,89,246,208,9,202,96,12,206,150,53,224,80,197,42,3,246,115,161,112,119,28,43,55,44,203,31,134,89,92,8,82,35,240,112,184,85,35,82,138,61,68,67,114,23,87,191,26,236,226,94,
+20,224,41,203,62,215,59,95,236,225,182,41,105,23,39,156,221,28,233,118,224,30,157,101,15,253,133,156,141,157,152,108,213,104,209,8,56,232,52,229,193,126,143,179,182,36,140,221,94,254,80,117,158,227,215,
+174,28,118,158,217,160,125,17,14,25,119,102,10,98,228,149,108,245,97,131,96,15,187,224,123,136,194,224,33,12,226,30,160,6,253,204,181,176,135,253,15,148,61,228,60,235,17,207,83,143,7,129,13,108,254,203,
+178,135,106,37,13,198,137,202,49,27,126,43,89,20,207,175,41,15,118,242,18,214,16,4,113,24,4,142,151,13,56,192,233,172,236,216,185,161,44,123,56,186,51,236,225,229,167,230,130,93,212,29,246,176,7,236,225,
+181,7,194,30,254,229,196,244,211,221,176,135,180,176,71,60,79,61,30,4,178,190,135,202,129,93,114,84,195,6,32,29,206,120,118,101,131,150,92,177,245,13,90,209,168,75,147,196,139,173,235,114,20,130,242,128,
+46,253,187,79,24,201,133,241,163,255,111,41,246,176,99,179,116,75,7,216,195,203,97,15,81,24,44,186,2,246,176,251,129,176,135,127,5,123,248,115,216,195,175,96,15,255,18,246,112,107,9,123,24,19,75,168,97,
+165,78,156,152,66,6,172,42,214,110,28,16,71,16,167,126,222,153,90,188,199,141,134,45,23,168,128,1,250,119,187,184,154,75,3,13,5,174,75,151,95,11,55,129,240,61,28,208,244,228,52,147,174,61,255,50,196,51,
+220,104,252,204,229,176,135,189,247,135,61,36,225,102,14,202,180,140,153,138,93,60,187,95,43,207,30,42,12,117,109,13,69,172,173,237,56,21,189,81,209,110,128,6,29,129,59,198,157,184,156,161,13,208,117,
+59,54,45,190,0,103,108,131,244,49,72,199,121,246,81,190,168,162,79,145,91,142,61,172,115,114,26,221,6,246,176,11,236,33,40,222,227,92,207,62,185,207,254,176,135,100,23,77,184,153,131,50,45,99,166,194,
+195,123,176,135,158,122,220,19,251,11,42,1,54,112,29,240,226,10,11,65,44,121,68,199,172,45,47,136,25,65,251,50,220,93,217,178,182,164,227,216,181,88,196,214,117,217,205,136,155,151,48,127,116,71,230,223,
+221,136,216,165,213,105,58,129,137,201,183,194,6,176,55,34,183,9,109,96,15,59,49,107,107,18,119,253,254,176,135,183,195,30,110,131,61,124,135,86,246,121,11,246,112,89,33,123,232,54,47,142,120,6,237,250,
+43,37,238,62,217,93,84,252,217,229,199,9,42,94,130,45,107,176,78,106,6,26,206,90,66,94,26,213,132,231,154,31,133,46,125,220,130,186,132,249,114,212,103,218,165,21,139,27,120,142,61,252,33,236,33,62,75,
+131,155,158,146,110,41,128,61,132,39,158,125,221,254,176,135,115,97,15,63,6,193,91,79,43,19,236,182,55,96,15,151,20,178,135,46,17,193,30,250,209,217,214,95,44,248,66,127,81,55,32,254,226,97,30,151,245,
+14,119,108,58,190,93,187,237,254,26,76,185,84,249,114,124,105,206,11,190,52,1,204,120,129,142,223,48,136,83,102,44,101,234,56,110,40,123,8,138,215,235,34,216,195,86,176,135,237,97,15,123,237,15,123,72,
+146,220,188,177,169,84,179,139,38,220,204,65,133,239,97,176,135,190,121,91,216,128,108,41,183,139,209,29,237,158,118,83,15,19,6,233,246,209,217,215,23,228,86,211,181,218,201,204,113,110,240,118,127,151,
+56,231,3,123,69,204,15,126,244,5,216,165,237,206,106,170,99,12,55,60,3,246,16,115,169,43,80,246,13,105,2,123,168,121,235,245,251,203,30,146,36,55,111,108,42,117,27,207,150,167,75,124,15,227,240,110,176,
+49,169,56,230,226,168,231,164,227,216,52,208,240,25,54,88,55,17,30,15,29,227,130,28,114,135,46,93,129,204,59,222,125,25,65,154,58,15,196,11,176,229,237,206,165,124,15,145,38,182,193,49,160,43,214,9,125,
+47,58,53,205,105,94,35,77,233,123,213,126,248,30,82,254,248,221,46,216,195,205,176,135,108,58,126,205,58,252,229,143,97,15,177,227,205,250,30,58,105,5,107,232,71,131,52,192,56,253,4,119,232,142,204,63,
+251,117,215,96,91,208,205,74,224,119,49,147,27,184,45,238,242,102,171,7,104,233,11,146,88,53,88,187,116,177,239,33,130,212,22,248,184,20,96,7,120,21,65,79,171,127,124,26,217,111,127,217,195,143,96,15,
+215,193,30,190,2,123,72,222,216,84,234,108,178,139,89,246,208,43,162,194,204,209,224,13,212,150,116,169,137,245,213,191,27,176,95,115,118,118,92,219,77,109,201,178,38,143,6,238,6,197,160,157,217,221,131,
+135,141,167,71,198,82,190,135,178,135,136,81,115,230,23,104,52,175,172,85,35,77,168,119,32,236,33,181,30,203,31,86,4,76,146,155,55,126,233,142,210,236,161,199,56,91,212,241,25,151,24,184,23,142,125,177,
+31,35,120,185,37,187,191,19,154,24,158,116,105,214,246,47,232,82,95,66,56,205,199,30,220,23,20,198,83,197,190,135,103,193,30,34,32,111,169,40,245,44,216,67,140,48,70,54,59,16,246,144,194,150,181,158,15,
+159,129,61,252,17,137,242,39,96,15,239,129,61,28,88,232,123,24,105,86,47,3,179,245,60,207,198,62,216,160,99,127,28,136,94,128,150,46,51,46,89,46,83,89,131,230,184,247,195,201,44,246,229,158,188,220,142,
+218,123,202,177,135,167,22,6,219,130,160,91,3,78,119,135,35,30,218,181,173,24,209,31,84,244,41,114,59,230,152,99,94,67,56,211,129,167,97,238,178,238,172,214,130,205,196,77,76,60,155,232,114,187,88,126,
+190,234,208,161,32,253,236,21,216,67,224,172,77,79,194,30,82,254,48,73,110,222,56,203,30,218,197,35,1,16,199,186,56,241,4,134,231,11,9,12,207,123,182,156,128,60,27,187,27,19,143,183,69,179,254,227,89,
+139,110,151,45,91,215,238,92,204,30,214,133,61,20,227,17,17,64,79,221,6,125,117,15,108,1,251,22,250,30,254,165,242,69,21,125,184,143,44,32,80,109,77,46,204,137,198,179,1,147,50,173,197,47,254,46,199,61,
+13,91,183,95,118,217,37,233,149,69,176,135,80,105,6,107,249,195,138,192,234,217,229,217,67,95,128,143,93,60,16,188,160,210,60,32,56,91,59,131,187,124,133,193,163,123,234,48,120,12,31,242,72,28,216,178,
+110,112,132,61,92,251,109,93,151,163,98,246,16,210,69,1,185,193,54,39,240,2,62,94,93,255,156,116,41,160,216,129,249,30,82,178,180,138,103,97,203,90,207,246,39,96,15,159,128,61,156,86,154,61,52,33,224,
+58,25,86,128,49,142,237,230,177,71,118,252,138,204,71,192,242,195,146,104,46,69,206,216,225,64,237,196,101,176,130,150,193,30,138,252,132,135,90,142,61,172,1,123,8,149,102,176,205,160,92,58,210,194,215,
+180,201,23,123,72,201,114,215,83,176,135,24,60,238,124,18,246,144,11,249,172,8,100,217,67,179,139,38,220,68,241,108,17,199,178,221,220,201,204,165,72,160,218,13,137,167,36,3,54,115,233,49,209,137,203,
+86,142,43,47,226,60,45,225,102,176,225,165,86,236,123,40,123,120,42,104,15,235,111,99,88,166,134,144,46,205,126,0,123,136,127,211,37,5,249,98,15,39,195,30,190,0,123,248,48,236,97,81,97,203,242,199,242,
+113,176,135,67,250,228,46,66,136,214,53,225,102,14,202,22,142,180,171,193,186,116,185,49,113,207,236,229,67,98,119,110,37,131,55,116,137,138,52,144,99,214,159,17,8,173,31,69,129,58,234,123,120,26,236,
+33,193,218,157,133,63,26,159,2,123,88,29,246,240,162,124,178,135,20,163,173,207,90,178,140,194,214,250,185,176,135,211,97,15,135,149,247,61,244,20,227,62,87,1,120,172,189,65,134,187,245,12,248,210,160,
+221,80,196,174,202,46,238,108,252,181,190,135,53,97,15,51,193,218,149,91,16,112,135,51,43,131,61,164,24,109,125,118,243,221,176,135,4,187,126,54,236,33,181,30,203,31,139,110,40,97,15,109,237,44,123,104,
+90,198,19,150,65,198,17,207,83,143,93,213,94,225,161,193,117,217,235,29,35,208,114,236,97,171,86,120,149,2,110,17,96,180,172,193,54,59,133,217,249,84,216,67,110,123,0,241,251,123,236,179,183,113,151,158,
+102,54,111,48,254,175,229,209,164,85,201,113,245,152,156,43,84,226,49,157,127,159,177,56,128,245,117,27,227,111,55,191,216,54,166,250,223,223,220,23,246,112,1,236,33,68,90,182,176,181,238,86,216,195,17,
+176,135,36,201,245,61,180,101,191,142,61,12,15,68,15,1,62,113,47,71,140,85,241,188,10,217,67,0,174,82,193,178,6,183,98,236,118,106,218,216,179,113,37,250,30,142,133,61,164,62,107,201,210,194,214,134,89,
+176,135,211,97,15,41,127,44,232,3,123,216,127,239,236,161,65,122,0,8,146,212,189,177,25,12,105,83,119,80,229,216,195,152,160,224,14,197,240,108,217,166,180,106,75,130,109,15,155,216,4,104,139,151,248,
+165,104,15,160,246,142,227,143,63,254,177,76,235,10,108,41,38,63,106,175,45,236,23,253,38,222,116,91,90,250,25,182,140,123,56,14,110,231,23,221,221,65,223,67,138,209,214,103,55,206,130,61,164,117,45,108,
+89,235,89,121,35,236,97,95,216,195,107,96,15,175,105,199,149,140,165,217,195,139,27,215,74,189,206,255,94,106,119,230,49,60,71,167,158,181,190,151,186,52,170,149,27,239,185,245,21,178,188,160,109,155,
+212,140,77,69,142,61,204,117,225,146,9,170,1,75,81,35,90,218,96,11,206,131,61,108,212,240,32,250,30,142,133,61,188,19,246,112,34,236,33,85,60,11,91,43,134,194,30,14,134,61,164,34,96,146,124,102,183,179,
+210,232,206,176,135,29,155,231,216,195,203,90,55,74,67,46,250,126,26,14,141,54,12,252,174,127,221,99,83,187,6,181,83,19,210,53,77,8,178,17,123,227,122,178,135,66,150,153,77,69,33,62,235,152,133,61,60,
+17,223,195,243,97,15,9,150,49,255,75,38,200,29,176,18,63,47,50,140,155,76,67,117,230,105,90,164,195,62,177,172,106,247,27,213,180,116,189,211,248,193,19,104,233,183,73,188,125,5,134,183,245,228,147,79,
+222,93,167,206,5,127,156,68,45,199,250,172,37,203,21,248,28,26,172,181,30,203,31,75,251,156,145,30,237,125,86,46,111,108,42,181,127,147,26,233,42,46,8,26,126,209,209,105,12,46,150,55,18,240,53,231,29,
+197,154,122,92,186,144,245,180,9,199,60,15,2,205,196,240,176,216,141,29,84,4,235,108,220,150,174,236,152,181,27,51,52,254,194,96,81,15,28,100,246,144,98,180,245,217,181,35,97,15,7,195,30,82,216,178,252,
+177,4,235,191,197,215,226,123,72,146,220,188,241,172,139,97,15,219,252,32,205,110,121,76,186,189,105,181,52,9,251,206,107,232,210,222,165,211,4,107,206,56,245,52,147,63,228,37,228,90,88,78,24,10,188,29,
+79,167,179,74,216,195,195,195,247,176,15,236,33,37,75,171,120,22,182,150,1,90,62,120,13,236,33,21,1,147,228,243,187,193,30,146,74,93,212,233,164,244,124,167,106,233,161,214,213,82,159,218,223,135,53,44,
+60,203,118,224,106,153,246,176,134,186,87,182,192,46,187,3,173,221,153,244,205,165,231,194,30,54,109,144,10,90,231,124,15,255,150,52,237,97,198,30,210,205,151,14,128,61,236,11,123,72,173,199,242,199,253,
+84,4,238,233,6,123,72,222,120,97,215,83,210,214,43,171,165,117,93,113,178,188,168,122,186,178,246,201,233,154,58,63,72,61,107,243,112,151,78,79,110,91,185,250,44,216,195,186,103,167,235,10,240,61,236,
+80,200,30,114,32,248,201,225,239,123,72,97,203,90,207,170,30,176,135,87,192,30,146,36,95,210,181,122,218,217,163,90,218,124,69,181,52,174,225,9,105,124,131,19,211,12,110,72,154,214,160,122,186,169,197,
+121,105,100,183,14,105,32,167,174,35,159,61,164,252,97,69,192,36,249,11,61,207,77,171,186,159,157,110,188,180,77,26,209,163,107,26,217,247,58,211,70,255,198,62,252,143,223,89,246,144,237,231,239,216,33,
+253,79,214,250,223,82,247,253,130,143,59,121,182,124,103,217,67,42,129,219,56,17,237,162,101,247,32,74,251,20,157,200,79,145,41,125,86,197,30,86,171,214,190,232,16,80,197,30,238,15,251,244,141,59,173,
+111,251,67,139,160,203,42,223,67,94,196,97,225,123,248,255,1,153,155,31,95,64,87,180,33,0,0,0,0,73,69,78,68,174,66,96,130,0,0};
+
+const char* CompressorAudioProcessorEditor::knobstrip_png = (const char*) resource_CompressorAudioProcessorEditor_knobstrip_png;
+const int CompressorAudioProcessorEditor::knobstrip_pngSize = 160459;
+
+// JUCER_RESOURCE: scaleLr_png, 18298, "../../../AutomaticFaders-Stuart-26July12/Source/Assets/scale LR.png"
+static const unsigned char resource_CompressorAudioProcessorEditor_scaleLr_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,1,158,8,6,0,0,0,36,42,7,53,0,0,0,1,115,82,71,66,0,174,206,
+28,233,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,194,0,0,14,194,1,21,40,74,128,0,0,71,15,73,68,65,84,120,94,173,157,121,219,102,85,117,230,247,91,154,196,124,131,104,205,
+152,254,2,198,40,131,130,154,63,18,165,138,2,170,138,166,40,40,32,26,7,2,50,53,224,16,211,157,56,225,128,8,18,6,59,105,6,153,41,100,212,255,84,208,48,148,77,236,47,208,17,168,1,190,65,46,99,148,234,179,
+206,243,220,231,253,157,251,89,235,60,15,166,235,186,222,122,206,217,103,159,189,215,94,235,94,247,90,123,159,105,237,130,11,46,56,222,236,223,218,218,218,168,68,251,241,155,109,31,63,62,107,34,142,109,
+216,176,161,255,141,50,214,215,113,53,172,115,180,255,171,95,253,106,161,109,157,255,155,223,252,102,104,95,101,148,81,219,111,125,235,91,71,114,103,50,176,66,47,175,55,36,225,41,104,52,20,127,111,188,
+241,70,251,237,111,127,59,252,198,182,246,117,76,245,52,64,157,235,237,113,32,153,98,51,35,184,66,189,205,80,126,252,189,229,45,111,25,253,201,40,50,144,234,245,191,33,56,7,200,253,227,199,79,106,151,
+223,115,121,59,105,222,83,52,176,117,239,245,237,174,187,238,234,255,46,235,14,84,3,140,83,116,140,237,171,60,250,81,95,180,138,203,18,117,216,150,206,227,47,251,97,93,181,235,202,102,127,27,92,200,117,
+203,157,212,174,184,231,147,237,79,26,220,97,203,158,246,169,29,175,183,219,47,188,176,93,248,133,167,218,219,63,126,217,160,156,108,176,21,58,178,1,187,98,136,52,161,202,17,56,54,214,216,147,53,232,12,
+145,116,199,30,1,180,196,12,122,91,218,57,95,63,179,29,251,155,219,219,191,180,245,134,143,191,227,29,173,61,245,88,59,20,208,57,250,253,246,212,47,222,213,254,244,228,25,47,140,96,53,135,162,151,17,178,
+225,215,255,241,31,255,49,252,197,49,193,55,126,195,159,227,47,224,92,149,235,152,250,143,246,254,253,223,255,189,255,83,219,209,143,254,162,44,182,105,152,13,78,128,179,253,195,237,225,107,175,109,15,
+189,50,135,223,220,77,54,111,124,123,123,237,216,171,189,194,226,239,200,177,215,91,183,49,236,83,153,132,114,116,170,99,226,13,89,65,254,201,193,56,39,208,135,51,18,22,122,164,196,168,239,178,16,97,82,
+64,79,146,231,157,119,222,113,54,58,102,201,83,58,14,248,211,246,191,15,220,212,158,15,92,236,253,90,59,235,216,117,237,230,23,102,110,177,101,207,245,237,146,181,219,218,103,15,30,30,78,11,110,88,229,
+223,197,23,95,220,91,86,255,228,235,126,174,147,50,253,154,136,138,237,223,251,189,223,27,34,201,29,119,220,177,138,24,109,144,128,74,88,215,120,23,218,192,1,49,108,237,207,172,212,218,235,175,29,25,194,
+157,51,247,148,4,89,93,39,84,13,190,42,103,251,81,135,81,105,165,209,199,120,246,237,219,215,59,121,22,87,215,214,78,105,87,124,239,61,237,208,249,55,182,23,98,192,167,92,209,190,182,241,177,118,221,35,
+51,139,159,124,249,61,237,61,47,93,212,110,122,126,61,230,75,121,108,83,241,88,101,209,87,196,253,49,218,198,185,199,42,3,144,204,204,41,196,7,191,255,251,191,63,26,147,35,71,202,237,228,157,197,77,18,
+153,39,27,27,230,113,117,195,107,175,183,181,157,103,183,247,197,254,182,115,218,153,127,242,127,218,75,135,102,177,87,231,112,91,3,86,25,149,195,88,237,62,238,228,201,182,121,204,195,27,121,36,139,110,
+140,38,34,254,62,12,122,56,113,200,117,1,125,150,8,189,242,112,187,246,246,227,237,227,119,222,217,238,252,251,29,237,181,219,191,221,158,155,39,70,78,114,34,26,103,97,177,51,5,140,129,100,241,157,108,
+205,227,30,94,117,204,19,165,58,196,207,16,219,43,254,220,115,207,29,226,156,147,97,230,22,21,108,85,55,172,64,168,135,176,241,207,97,170,125,17,97,212,203,120,97,21,18,12,5,68,61,33,57,250,163,28,153,
+59,41,109,94,32,193,140,101,87,241,71,213,17,180,29,158,114,53,197,119,161,206,173,231,231,81,153,238,154,149,11,72,134,232,171,74,131,37,111,175,0,111,200,99,109,197,238,180,170,224,166,68,67,140,236,
+48,142,253,168,227,126,78,133,176,93,161,103,89,218,76,184,123,154,172,193,58,10,123,55,224,65,38,47,36,140,138,80,50,254,136,246,56,152,42,67,244,190,100,45,39,196,138,156,73,140,58,55,75,199,179,228,
+140,33,179,87,64,54,192,108,146,228,68,85,41,198,217,159,33,145,104,226,249,62,179,116,82,245,190,157,8,99,159,237,85,145,196,17,63,154,13,86,190,78,23,241,48,148,165,169,83,136,201,98,118,150,240,48,
+18,85,219,142,94,161,37,56,128,6,116,18,166,12,253,122,128,135,143,41,34,34,73,86,172,157,149,187,82,124,34,147,41,95,3,242,99,67,8,195,2,205,50,87,118,164,15,121,64,6,107,229,229,174,121,135,15,161,46,
+100,40,28,137,137,179,248,30,101,132,188,224,235,131,208,185,85,185,218,145,69,213,38,103,154,191,254,245,175,251,153,97,252,102,255,186,36,111,54,221,204,166,174,68,134,172,170,206,60,2,100,141,103,172,
+91,33,40,35,212,41,34,118,166,207,140,38,3,73,14,159,10,135,194,74,18,36,155,211,71,9,37,213,241,44,77,217,159,146,155,44,204,82,161,203,56,99,234,184,67,59,67,139,206,23,42,149,147,244,198,207,66,135,
+52,239,49,152,86,210,49,13,142,237,16,13,12,67,30,203,227,28,33,79,109,175,146,254,102,161,77,217,32,195,99,54,111,160,108,209,231,218,57,231,156,51,154,13,10,46,28,152,147,26,19,37,50,108,148,223,119,
+223,125,35,111,136,121,191,187,143,246,3,41,218,22,132,51,194,163,43,101,46,164,115,185,190,192,62,181,157,173,85,172,237,221,187,119,97,89,156,157,80,160,42,35,164,66,98,81,66,190,231,225,199,219,149,
+213,228,74,89,52,226,177,76,174,56,71,138,244,243,189,126,76,145,89,214,35,144,204,201,52,214,153,218,73,199,221,100,202,149,220,61,180,239,72,202,20,150,145,110,229,247,83,92,35,30,115,131,246,235,1,
+34,5,37,53,85,100,240,14,178,137,6,93,40,139,12,110,1,42,114,42,219,115,162,37,235,147,140,157,167,50,82,100,146,52,10,131,217,76,46,91,224,240,16,40,139,186,144,85,200,148,144,92,20,233,9,105,158,216,
+168,61,247,119,47,231,64,226,220,169,249,68,22,117,162,253,62,10,172,250,175,34,63,66,55,99,253,42,198,51,25,242,40,64,183,145,59,114,192,84,46,207,205,162,8,203,136,136,104,111,20,6,69,94,132,186,251,
+12,143,209,85,60,252,104,113,194,133,118,174,112,225,125,224,177,239,19,29,181,41,101,75,145,21,215,104,12,92,154,27,220,222,45,86,205,202,42,18,172,224,74,197,85,49,158,117,60,147,211,57,83,229,84,68,
+133,226,48,140,6,206,171,77,74,214,70,147,161,169,5,71,197,216,44,84,177,140,161,146,25,23,175,244,200,247,41,116,181,114,67,196,185,124,142,192,140,155,104,56,95,33,234,149,35,13,101,194,74,104,157,232,
+151,170,4,115,182,65,33,24,231,89,71,125,85,144,101,100,240,144,199,132,73,131,99,157,204,229,88,207,137,117,152,11,68,37,191,134,150,45,111,77,45,92,244,164,50,95,34,239,25,182,219,118,171,56,236,233,
+130,36,40,14,170,42,247,115,51,126,97,25,47,137,137,88,135,139,163,174,57,250,203,212,118,181,68,237,194,101,49,158,252,145,17,170,19,107,150,135,48,135,169,184,198,73,147,70,25,133,65,29,96,184,115,255,
+206,210,225,44,148,178,94,21,227,153,7,208,0,78,104,78,180,68,68,244,163,115,163,189,140,107,84,70,153,6,101,158,121,230,153,105,34,32,161,233,51,46,88,150,202,242,54,21,18,39,115,5,15,179,177,31,11,22,
+156,204,188,153,220,164,159,215,227,10,151,15,84,109,253,193,31,252,193,168,217,94,142,80,64,166,25,71,131,231,3,204,25,120,236,161,135,30,26,117,210,93,120,25,246,93,97,228,11,146,155,163,108,153,44,
+58,151,237,177,47,157,127,247,221,119,47,232,117,237,172,179,206,234,21,224,22,95,197,2,89,72,212,21,25,41,72,73,140,79,85,163,63,162,69,87,144,28,113,130,120,86,174,50,41,32,218,171,148,229,41,189,228,
+25,162,128,163,128,49,215,111,58,138,41,111,252,49,76,50,15,231,93,29,76,68,60,20,202,119,99,32,30,93,42,114,245,84,87,153,162,20,45,163,56,111,120,72,22,41,15,36,232,154,171,194,151,208,162,14,156,237,
+9,61,194,218,83,92,143,221,30,234,50,34,204,80,233,114,42,188,121,84,83,88,150,124,50,240,2,7,8,186,21,9,170,60,131,90,52,30,72,32,154,36,72,70,76,20,62,86,110,213,183,195,157,214,243,58,180,180,47,198,
+56,231,104,65,36,206,25,92,160,74,30,42,14,88,150,165,233,56,7,94,197,120,90,73,33,204,239,27,152,42,103,221,80,188,16,231,104,99,14,34,165,171,206,48,23,200,72,198,45,233,144,206,98,183,20,224,66,100,
+177,156,225,208,19,37,119,49,186,26,149,28,114,15,254,108,55,106,12,48,159,95,58,39,17,14,220,180,123,247,238,52,15,144,175,87,177,191,66,136,179,189,234,101,49,222,221,195,147,39,135,187,120,131,33,56,
+206,209,242,59,93,106,213,28,101,3,239,224,240,11,7,25,145,176,147,74,9,234,60,234,250,42,19,163,11,7,232,174,227,36,201,136,145,161,139,199,169,40,34,201,101,239,81,80,105,153,36,232,161,133,2,176,51,
+183,76,12,54,155,3,168,140,46,224,115,117,133,197,169,114,46,132,68,223,203,230,19,89,100,25,110,150,166,48,76,112,104,77,134,42,215,44,125,92,202,19,60,167,98,188,206,99,63,36,90,39,173,140,232,116,238,
+178,249,68,134,170,206,72,139,215,5,185,116,36,101,84,137,17,103,99,78,50,203,98,185,43,218,121,135,138,36,124,137,78,14,202,17,200,254,221,192,131,172,187,118,237,42,73,48,131,119,22,135,57,16,166,194,
+209,73,76,114,50,66,138,50,94,168,168,174,222,174,74,198,161,20,191,240,225,6,240,52,61,142,143,86,132,24,54,24,22,93,123,174,245,44,244,169,140,55,44,121,140,167,107,84,132,90,145,174,135,213,144,145,
+124,195,148,153,156,229,4,218,79,134,56,88,193,43,99,204,74,72,114,195,247,191,255,253,81,181,46,204,150,79,142,16,202,255,153,217,160,203,229,89,167,246,31,120,224,129,133,33,172,209,5,120,34,149,226,
+219,94,175,234,208,203,169,168,216,230,160,229,90,188,96,42,248,7,114,178,114,71,169,251,60,57,33,182,57,251,28,184,141,240,205,178,173,108,246,229,19,32,198,112,247,119,207,232,200,234,204,65,52,137,
+241,80,22,110,25,50,100,229,158,99,208,165,24,70,213,15,93,89,110,188,118,198,25,103,44,220,41,234,68,151,33,163,98,248,152,144,196,32,149,249,241,129,39,119,53,246,195,245,0,87,162,144,82,145,169,6,195,
+5,145,12,13,154,168,209,189,135,48,152,17,93,198,248,21,161,168,174,98,113,150,153,17,13,18,218,147,162,12,145,114,5,182,173,243,166,46,228,100,232,99,250,29,237,246,151,199,189,49,135,207,42,157,56,43,
+51,97,169,38,77,1,97,45,174,240,246,21,174,37,134,144,132,63,253,154,70,139,115,166,22,104,180,90,228,9,220,218,206,157,59,39,243,128,12,74,21,217,68,185,98,109,116,196,184,235,104,10,165,208,181,120,
+147,131,147,174,215,173,92,50,35,93,38,83,204,87,134,62,180,42,92,49,54,5,95,22,26,101,45,65,182,138,22,209,78,44,128,168,189,168,167,25,93,88,210,251,17,167,100,253,51,148,50,19,205,148,207,254,116,222,
+232,94,97,247,75,143,10,132,31,211,101,166,201,156,160,48,58,208,205,232,30,3,27,207,23,102,125,242,148,249,61,235,144,51,164,240,40,203,238,118,161,12,58,111,193,5,168,165,41,246,119,70,102,204,118,63,
+205,52,175,37,48,89,74,139,154,14,127,41,104,170,92,208,166,213,201,248,85,126,211,159,167,48,168,1,120,71,199,143,111,107,7,110,253,118,219,189,81,71,142,181,71,175,188,180,221,251,202,250,115,70,244,
+179,97,173,13,215,8,221,255,99,63,20,64,193,228,2,10,135,84,176,92,132,237,184,188,113,76,33,88,174,72,174,90,28,215,252,142,20,101,130,53,7,156,214,174,251,254,137,237,197,179,191,214,126,26,143,137,
+205,255,177,62,147,27,101,91,203,114,135,108,160,153,98,162,44,218,116,133,185,50,98,159,171,78,206,1,148,123,100,48,15,11,11,177,115,235,166,182,233,216,209,246,202,252,217,34,159,112,248,194,197,42,
+241,153,97,145,196,166,200,161,41,182,22,68,171,114,191,94,225,198,113,214,39,170,6,14,115,150,39,169,196,177,55,182,108,106,27,55,238,110,55,62,246,88,123,172,251,187,229,252,173,195,147,228,236,176,
+79,42,230,12,206,54,60,63,32,107,203,106,113,174,30,107,245,245,137,80,86,245,132,137,30,192,138,169,116,252,73,153,78,156,146,129,202,150,225,70,147,33,135,73,175,156,15,124,182,61,118,210,11,237,172,
+235,159,237,246,78,107,159,121,108,111,59,58,231,0,41,143,154,61,120,240,96,230,122,11,101,221,13,154,125,153,98,60,35,67,198,71,82,28,7,225,33,83,196,23,231,63,248,224,131,43,201,49,122,120,58,211,212,
+241,103,190,218,206,252,234,51,243,167,49,158,105,15,62,218,218,137,239,223,62,52,206,80,231,215,247,166,36,208,4,69,231,203,242,58,135,49,157,190,205,242,33,150,207,87,181,98,63,100,208,252,99,21,13,
+172,237,216,177,99,225,201,81,158,184,253,192,109,237,218,246,245,118,201,247,94,233,139,183,31,184,181,237,59,114,105,11,64,44,35,58,247,73,79,100,120,92,8,208,96,73,84,49,168,172,220,39,90,30,57,178,
+68,140,74,235,93,80,190,235,26,151,69,94,249,231,23,91,59,233,212,54,179,249,7,218,190,221,173,29,125,117,81,183,26,156,238,35,90,229,102,5,133,171,168,43,194,202,166,180,10,131,92,33,150,82,124,29,82,
+251,68,115,182,61,76,138,170,27,36,52,196,56,121,219,5,255,208,190,61,79,4,14,221,184,171,93,255,211,226,169,251,208,232,252,137,112,13,200,147,32,241,70,182,24,18,231,100,211,103,45,136,232,92,186,9,
+81,180,74,226,38,121,6,57,79,63,253,244,222,5,156,80,60,47,32,124,69,82,30,102,216,142,142,177,46,113,227,87,115,170,144,21,231,120,223,106,135,185,132,159,175,60,160,82,138,202,251,245,0,78,55,185,47,
+247,160,155,120,166,231,126,39,215,81,185,135,61,231,5,10,238,132,42,200,87,229,217,185,153,178,104,12,110,247,178,178,113,143,159,210,62,27,93,214,1,7,236,40,114,129,233,155,149,144,130,189,31,39,154,
+220,250,149,255,115,114,55,44,196,132,11,8,166,85,216,240,129,120,61,143,205,244,209,10,130,130,111,150,178,186,18,213,190,151,251,58,1,229,208,13,81,222,63,17,219,43,87,147,161,202,207,156,120,178,1,
+101,68,87,157,199,193,68,29,221,212,144,197,110,186,145,91,60,246,69,164,170,151,93,248,112,57,220,5,71,79,143,179,67,193,136,110,16,29,250,42,177,220,134,2,101,72,82,123,226,147,106,9,140,240,229,250,
+93,85,206,1,249,220,192,47,196,136,159,70,229,238,99,158,15,56,105,100,144,82,29,18,160,19,167,242,2,17,174,250,85,30,79,55,204,124,154,114,114,208,140,251,156,19,112,194,53,181,72,179,240,220,32,45,154,
+161,128,97,41,179,138,159,31,245,37,128,86,105,244,90,29,37,51,49,96,77,134,50,133,251,67,81,26,52,223,67,196,58,106,75,10,209,190,20,55,226,172,169,140,137,81,129,209,130,16,167,146,124,170,44,151,145,
+192,78,142,178,122,252,10,25,124,236,85,3,140,243,179,114,102,157,156,69,102,253,16,97,163,185,5,161,154,109,47,11,79,132,189,114,8,191,95,151,194,113,208,81,238,188,146,93,76,141,58,85,121,182,62,65,
+183,112,87,116,126,234,215,4,43,182,205,152,151,48,202,248,224,241,199,31,95,224,192,238,2,108,95,70,232,185,79,43,196,49,67,84,253,80,104,86,94,177,126,150,102,71,127,177,158,145,42,96,161,112,190,244,
+37,161,24,127,25,242,220,167,178,124,33,234,19,114,30,150,116,140,139,162,174,216,172,79,42,84,168,210,122,64,54,159,136,250,84,216,144,209,122,20,112,18,170,152,61,171,39,95,166,11,112,141,144,174,160,
+109,191,234,36,174,113,110,169,202,179,101,244,172,31,206,56,71,110,43,77,86,100,152,197,253,172,83,157,47,159,150,69,153,248,100,235,133,174,72,213,103,31,156,168,121,57,67,176,198,146,245,195,21,39,
+42,179,159,12,185,149,221,247,43,34,20,193,240,56,7,172,142,166,136,148,49,61,182,69,96,204,71,86,41,159,66,50,21,19,219,204,17,22,174,12,45,176,68,87,192,1,120,71,18,206,7,146,181,227,68,200,208,196,
+137,138,148,40,37,80,96,42,131,161,217,235,144,112,137,18,55,218,144,8,101,3,35,201,169,51,186,76,150,39,100,201,17,203,168,4,186,141,4,243,243,163,15,185,0,235,107,34,196,193,45,235,39,51,228,104,81,
+148,254,229,214,34,123,171,161,106,29,129,203,97,186,137,217,57,134,121,62,209,226,238,168,136,144,149,147,40,137,192,85,140,160,241,245,8,112,127,163,159,80,17,26,184,15,134,3,112,43,209,82,68,25,5,86,
+72,138,246,9,101,134,191,170,92,10,162,108,85,63,148,77,253,247,36,232,76,204,112,198,89,27,225,230,231,57,209,209,85,92,72,250,161,210,93,42,196,161,154,17,92,198,49,83,243,9,26,109,196,9,188,71,168,
+34,46,146,149,147,139,159,195,188,95,29,233,38,72,158,171,243,120,231,134,208,232,245,98,159,161,80,231,42,180,81,193,228,42,151,237,109,111,123,219,194,16,135,55,73,209,98,94,75,218,115,6,245,122,25,
+10,162,142,207,211,57,137,17,239,200,199,73,172,218,214,156,129,172,31,219,190,166,160,182,178,121,131,27,70,243,150,225,102,105,106,221,201,37,246,137,130,106,160,82,34,253,149,196,170,62,60,153,241,
+20,85,194,113,237,64,10,226,160,221,0,113,76,151,200,197,99,78,236,238,142,253,27,36,170,139,24,236,148,44,60,5,123,29,243,144,228,60,163,126,85,143,22,202,144,149,185,167,199,119,13,154,229,234,71,138,
+241,8,177,112,131,132,44,237,126,239,44,91,185,201,83,79,61,181,32,107,199,51,197,75,91,103,247,6,137,228,228,46,108,32,250,141,201,141,47,158,170,60,147,131,86,86,219,49,240,108,166,90,222,37,86,17,34,
+203,51,82,83,72,147,59,100,214,100,120,115,215,202,218,100,29,87,142,250,209,160,137,2,246,19,219,188,155,92,10,29,189,64,129,141,76,65,78,199,220,47,51,178,211,20,117,52,3,67,232,141,182,50,248,11,113,
+21,209,102,138,144,252,217,124,34,11,219,125,223,180,84,166,125,63,94,213,145,64,244,117,41,68,109,144,92,37,16,195,214,239,98,125,114,206,212,124,66,138,150,33,228,26,11,79,142,234,128,66,94,150,130,
+78,205,30,221,69,184,58,227,4,196,44,81,211,231,12,13,202,3,28,161,188,61,71,145,170,154,55,248,188,69,70,73,223,35,164,1,102,81,32,203,255,179,197,73,214,155,202,32,137,10,134,172,101,247,30,137,60,25,
+90,221,53,61,242,56,90,122,197,78,249,58,133,171,248,97,42,243,202,226,126,21,30,21,138,101,41,186,30,39,84,44,231,181,6,174,60,101,243,6,186,33,81,57,122,173,174,87,210,0,40,116,181,237,214,211,218,191,
+96,94,145,16,13,192,4,72,131,203,136,86,79,170,251,185,25,15,121,154,44,23,31,208,146,33,192,53,72,171,120,125,183,40,137,72,219,100,103,63,159,245,179,123,140,226,220,170,220,147,51,161,145,161,184,82,
+176,214,45,23,94,168,56,176,163,221,55,64,127,242,16,228,164,232,60,145,45,156,168,76,145,162,10,123,110,49,39,89,26,96,106,62,33,69,147,91,250,165,118,94,29,206,252,156,101,218,246,112,229,117,188,29,
+250,92,134,56,70,30,79,140,228,150,89,185,183,181,236,46,181,236,58,194,144,8,101,176,225,128,29,234,213,64,4,67,159,4,85,249,3,45,95,17,234,20,209,82,217,83,243,9,34,123,20,229,28,206,25,212,167,178,
+56,89,198,99,188,246,25,235,217,182,242,12,191,114,59,165,64,42,213,33,29,251,186,248,154,245,227,168,148,124,11,207,14,79,249,28,67,144,39,76,234,212,103,150,10,97,33,160,251,159,63,37,226,40,203,34,
+14,35,149,231,16,146,41,235,199,243,134,33,10,248,133,15,89,128,141,211,42,46,148,167,159,171,64,127,42,207,119,102,207,146,40,26,201,243,254,12,209,153,81,7,148,44,35,193,202,215,25,115,181,29,202,121,
+226,137,39,22,78,233,238,69,236,203,196,3,85,82,229,130,210,189,156,104,201,41,238,134,153,108,81,150,78,135,171,135,167,167,6,78,114,92,54,24,198,113,50,185,218,247,155,165,50,95,205,44,72,101,198,118,
+156,39,151,10,55,116,210,141,125,190,73,74,253,76,166,194,78,38,14,93,53,82,213,115,203,100,177,216,145,225,46,166,193,103,229,206,7,177,95,205,39,168,48,202,149,42,128,218,171,194,87,85,238,62,28,251,
+217,186,160,206,23,105,210,215,169,80,93,213,245,84,154,107,15,126,127,114,54,159,80,52,162,123,244,253,196,189,194,238,79,203,224,191,74,76,207,136,142,231,101,239,13,202,250,205,220,134,168,240,227,
+82,120,214,150,148,57,138,96,177,67,237,146,208,184,157,133,36,143,253,140,40,177,173,103,2,60,44,241,210,57,163,8,133,150,178,60,139,100,185,162,147,147,30,199,195,164,71,46,162,54,226,183,191,46,224,
+161,48,11,141,84,70,70,124,83,22,119,65,71,22,152,95,158,207,146,23,55,78,212,81,198,202,153,35,87,151,100,20,202,195,182,221,149,134,201,16,9,37,131,143,91,219,243,4,237,83,227,244,77,247,89,13,160,138,
+251,28,44,21,230,229,146,53,218,81,127,252,213,54,243,5,166,253,221,246,250,167,178,252,26,1,231,226,217,188,92,179,62,14,142,73,147,144,196,95,185,195,20,207,240,88,21,102,61,2,185,251,72,14,26,138,231,
+12,134,98,33,97,46,38,221,122,254,45,45,94,139,17,119,88,125,230,212,245,207,115,86,156,144,101,134,89,76,94,22,214,220,175,57,16,34,130,200,165,235,58,106,232,6,84,214,240,200,12,53,61,84,222,126,65,
+187,102,247,209,246,237,238,54,183,179,174,124,180,109,186,242,115,237,212,249,199,23,179,148,55,132,20,68,245,59,154,121,225,118,28,71,64,69,168,78,152,25,170,168,28,201,165,85,35,202,145,145,236,194,
+99,115,26,68,175,217,211,62,219,110,221,242,64,251,235,249,3,83,167,125,246,241,118,242,243,187,218,87,159,157,61,65,234,150,141,206,178,116,51,131,123,220,59,200,16,86,133,214,85,92,133,57,133,234,251,
+203,92,170,118,134,27,36,124,82,17,194,157,208,61,52,121,244,200,171,131,85,143,28,59,214,221,48,52,254,180,30,45,92,249,107,213,121,230,6,203,92,35,243,233,204,255,87,81,92,31,101,86,21,122,214,113,107,
+155,54,111,43,219,126,51,86,116,159,206,8,149,75,107,126,213,73,76,78,136,175,178,242,228,194,247,81,128,105,232,200,103,251,111,108,174,127,136,41,110,32,61,218,61,51,231,49,155,231,175,170,121,114,133,
+92,33,35,86,95,160,85,29,114,16,201,59,203,57,166,100,26,45,138,250,138,238,47,15,31,109,155,54,109,29,206,223,186,113,120,134,190,47,203,146,159,85,21,224,28,226,209,195,137,45,115,13,55,4,227,255,170,
+114,140,190,56,73,77,246,219,175,30,109,109,247,185,237,212,120,36,117,203,254,182,231,189,135,218,243,63,158,189,116,133,241,158,194,173,218,177,91,214,173,232,237,184,203,176,190,20,193,148,123,85,57,
+70,147,33,242,129,252,57,34,193,19,87,190,183,111,47,30,154,252,202,51,179,166,151,37,40,11,202,156,159,163,40,227,254,202,236,204,7,151,41,67,253,143,162,214,252,107,25,81,198,183,70,85,242,246,138,211,
+147,163,36,176,55,67,102,18,142,2,177,76,2,186,192,234,163,82,36,101,200,12,147,89,56,148,152,133,102,214,93,200,119,248,22,153,76,155,110,73,17,22,99,56,53,44,33,156,31,188,99,77,135,93,129,20,182,82,
+146,15,82,104,210,116,151,8,80,191,149,18,135,59,69,61,195,242,37,104,247,115,183,80,229,163,82,78,21,223,227,184,163,196,173,59,21,170,157,8,213,159,102,185,90,42,247,231,139,196,23,11,175,213,173,252,
+141,29,121,232,100,72,115,20,137,44,169,0,191,47,40,206,175,162,64,118,254,20,33,50,76,122,200,204,20,59,204,6,153,104,112,174,173,156,58,155,182,102,13,114,221,79,23,43,178,47,85,56,34,170,125,33,36,
+67,144,202,100,128,170,13,206,15,22,94,183,149,49,164,195,42,107,120,42,20,202,39,229,38,217,77,21,190,10,229,46,166,129,51,92,146,143,178,68,104,42,151,112,146,214,138,213,112,135,72,150,106,50,195,243,
+108,209,7,229,36,71,2,91,102,25,114,0,149,239,87,142,117,204,209,42,55,161,130,156,40,227,24,13,163,227,163,111,140,84,47,89,230,0,170,105,176,234,100,249,251,50,203,248,85,219,12,13,158,46,211,253,170,
+41,55,35,128,19,233,32,103,149,83,103,137,76,21,178,212,184,96,77,38,102,194,51,69,94,36,82,119,143,108,166,234,185,70,102,113,149,145,12,197,254,26,247,240,185,189,108,229,86,161,68,139,18,238,247,78,
+120,10,165,14,121,183,144,91,38,155,197,121,30,193,1,87,49,221,185,203,23,64,53,30,242,202,218,217,103,159,221,201,187,252,131,107,14,33,250,56,225,248,232,163,221,123,118,236,159,30,156,156,66,85,150,
+173,185,92,78,100,34,74,157,171,244,151,231,113,59,125,112,82,175,213,157,130,80,22,238,88,159,214,98,104,202,34,76,165,132,74,193,222,70,54,56,89,58,67,18,13,197,249,134,234,142,158,23,80,103,14,37,14,
+48,35,150,42,132,69,121,127,31,206,124,77,97,1,26,40,200,34,133,228,241,99,42,151,107,9,218,85,180,17,82,40,251,112,23,154,199,91,50,182,147,94,166,24,18,95,86,63,142,79,101,121,110,97,18,42,45,150,149,
+83,30,141,195,137,86,33,50,100,112,162,237,21,88,133,10,158,232,151,188,156,48,61,146,168,163,202,130,20,82,16,205,8,149,228,235,215,22,132,46,33,204,9,47,203,25,136,64,201,48,186,87,56,131,90,230,255,
+78,88,206,202,98,89,146,214,148,101,226,24,111,173,225,179,199,49,48,79,95,61,215,240,139,45,85,206,192,241,13,97,144,240,148,224,85,188,119,95,202,20,145,197,222,204,117,178,171,73,89,24,205,66,151,163,
+147,220,53,149,51,232,60,162,169,159,12,101,215,237,216,144,199,241,12,74,206,254,153,18,167,44,147,161,197,25,223,201,214,35,71,134,86,175,67,215,152,143,107,252,129,133,169,8,224,22,207,82,80,198,102,
+42,101,202,50,126,140,161,50,218,112,162,165,59,185,226,156,112,153,244,164,33,148,215,241,253,122,190,191,154,118,170,113,90,156,236,157,133,62,15,139,36,52,18,170,132,247,203,245,158,145,102,134,152,
+34,247,145,203,100,179,192,204,90,203,144,177,44,142,79,41,175,18,118,89,185,148,235,86,206,92,133,74,18,137,246,209,170,138,245,149,18,166,44,74,127,163,149,217,121,54,168,202,79,25,78,61,73,83,155,89,
+146,85,229,12,60,71,227,24,94,174,238,19,30,103,115,70,128,12,194,30,230,60,52,78,101,115,74,75,171,76,110,89,57,145,192,168,161,240,40,23,115,247,138,253,62,10,112,64,153,224,25,177,177,177,41,1,153,
+159,87,150,241,197,21,183,84,53,155,140,126,41,239,84,46,193,140,148,225,126,233,162,168,67,79,251,12,159,238,95,158,168,76,101,121,36,184,12,69,12,157,116,87,185,71,252,210,24,85,46,81,165,227,195,253,
+1,212,166,163,128,97,137,233,45,243,120,185,76,118,171,108,55,229,46,175,36,57,97,101,28,51,85,230,252,33,57,178,28,33,157,14,251,227,243,82,4,57,160,74,56,178,114,198,218,129,104,236,61,163,30,231,43,
+229,179,222,84,210,195,137,14,221,149,219,149,155,143,30,155,35,172,178,40,144,249,162,135,71,222,104,197,187,64,37,76,22,162,184,38,152,229,235,126,174,195,89,199,125,185,203,211,252,76,241,61,9,234,
+207,115,130,169,149,226,44,252,16,170,142,160,169,108,174,34,212,42,206,251,64,220,186,30,142,167,92,104,244,141,145,108,226,225,39,79,197,236,168,155,133,154,101,150,137,54,165,236,44,171,155,138,18,
+174,88,39,74,161,218,179,211,161,188,18,152,239,254,211,0,226,250,26,215,2,200,238,98,95,39,76,23,136,251,220,102,54,87,33,34,43,87,152,149,97,166,66,178,135,215,249,60,99,241,37,42,204,13,152,185,121,
+185,103,117,14,189,42,75,83,185,4,210,181,66,15,131,66,84,85,238,190,63,53,39,16,209,18,17,125,253,101,154,247,137,7,247,153,105,101,66,178,108,202,50,158,107,144,88,117,201,59,35,91,31,12,199,146,229,
+12,146,129,72,26,221,37,230,157,48,42,104,219,33,236,190,85,133,193,169,108,142,249,4,57,103,89,248,205,228,205,152,94,3,103,253,65,30,10,156,229,235,25,179,103,68,195,198,253,248,50,203,100,237,101,49,
+156,126,94,133,213,41,52,233,61,67,124,174,121,244,6,9,183,230,178,8,16,10,243,52,87,101,252,165,37,51,87,136,227,25,161,122,251,76,115,51,215,204,172,207,92,128,74,85,249,232,201,81,15,71,89,252,172,
+220,68,161,138,112,86,39,203,16,227,153,224,50,242,100,123,36,230,44,223,167,82,56,127,25,66,235,84,66,147,177,170,39,78,220,119,82,242,199,220,179,44,79,131,207,8,85,245,53,85,119,244,112,86,23,3,157,
+202,37,220,125,6,89,9,85,79,83,25,58,150,37,64,89,124,151,114,150,89,70,231,86,46,88,149,187,236,203,34,26,209,160,164,111,120,141,78,198,222,132,38,161,77,109,186,127,63,249,228,147,11,158,227,23,71,
+157,88,163,13,93,224,200,220,174,42,115,153,171,168,161,113,100,51,213,225,62,65,106,103,21,33,162,51,9,224,9,144,11,166,217,26,73,72,10,85,93,101,116,170,163,246,93,193,85,121,156,231,55,71,18,149,12,
+133,52,230,112,175,112,54,195,90,69,17,12,71,177,77,24,102,33,150,109,106,208,36,50,17,21,127,229,175,34,174,236,158,35,37,76,85,228,18,193,251,220,97,52,27,100,174,236,164,225,13,187,191,101,203,235,
+131,159,141,238,56,95,191,251,92,66,71,189,236,158,35,39,213,74,81,146,91,150,37,177,203,8,52,6,81,53,92,27,228,73,170,32,1,124,240,108,84,208,202,208,34,84,101,190,201,62,72,182,89,95,217,249,25,121,
+251,68,205,73,221,39,83,209,215,240,220,96,53,101,245,44,206,53,41,37,17,166,178,236,170,150,137,122,204,206,92,80,238,87,17,37,228,242,16,157,161,138,185,64,95,223,111,57,19,204,60,7,168,38,37,66,142,
+66,149,180,78,184,186,114,37,44,33,235,253,50,166,211,21,170,88,175,119,150,73,30,34,51,219,30,228,228,229,48,249,44,253,217,215,2,170,188,193,179,62,135,95,230,34,21,180,171,144,156,149,139,120,61,89,
+34,57,103,110,170,182,122,18,244,48,70,107,208,194,110,237,140,113,179,89,159,206,227,175,47,174,72,72,25,129,215,37,165,116,25,134,190,158,93,191,100,120,102,159,12,245,3,146,92,171,21,116,164,209,42,
+92,146,68,25,127,51,1,122,242,177,183,217,102,136,97,89,22,82,93,118,135,63,207,119,35,104,60,163,48,72,95,203,172,157,205,13,50,235,58,162,216,86,150,30,43,81,114,66,101,219,25,42,189,190,43,222,115,
+14,42,100,120,5,111,246,217,221,12,21,51,141,213,223,31,37,236,164,221,169,68,202,253,210,243,125,143,54,132,111,214,174,215,207,198,224,134,233,73,56,20,64,11,76,17,77,107,31,108,159,127,242,228,246,
+252,174,175,180,103,18,41,170,115,167,20,65,171,113,144,140,20,85,121,212,209,160,92,1,206,109,52,144,218,158,255,206,110,145,113,31,118,109,245,164,241,206,45,253,247,71,227,107,123,83,62,95,89,200,125,
+114,74,49,209,126,198,222,85,185,162,65,150,39,56,58,53,182,126,12,113,167,104,165,73,157,168,227,124,130,44,58,60,246,232,21,237,146,123,94,30,69,145,85,159,29,238,222,94,51,26,63,101,160,197,171,80,
+41,69,100,199,227,252,108,230,151,41,124,88,21,206,214,251,61,34,244,13,28,186,177,197,123,129,118,237,186,177,29,221,125,77,59,112,194,248,30,163,85,224,30,117,86,33,84,143,20,30,146,253,56,219,92,85,
+142,254,109,114,149,22,227,105,241,217,35,131,221,199,150,175,184,164,125,239,149,25,44,85,63,62,196,120,77,251,198,240,116,121,79,42,128,174,251,39,161,72,210,211,57,78,116,46,151,67,153,131,244,48,57,
+133,28,242,78,255,205,81,10,42,171,103,62,126,194,133,183,245,3,254,212,221,191,236,7,26,223,35,61,239,200,167,218,151,127,50,107,146,157,58,164,43,130,172,148,191,106,20,112,174,82,191,154,106,103,36,
+73,89,123,23,80,54,229,107,108,209,24,73,229,255,62,251,66,247,201,217,247,181,237,253,147,228,31,104,231,237,57,222,142,188,18,219,179,63,46,106,100,164,202,233,182,111,187,34,152,3,208,210,44,247,115,
+162,77,190,56,97,138,48,7,52,197,135,150,220,95,168,53,239,100,219,5,183,182,155,246,204,30,162,62,244,173,157,237,75,115,235,19,86,222,94,22,163,121,73,60,115,27,135,247,20,82,86,65,145,203,55,40,114,
+138,3,86,37,146,140,193,227,92,135,61,125,56,115,151,204,237,42,191,207,92,132,79,163,82,193,142,160,145,11,16,230,114,1,206,10,171,155,20,9,123,181,225,81,131,112,245,121,184,19,158,20,230,115,127,246,
+227,235,4,126,204,7,90,185,220,8,113,122,155,156,179,104,166,181,140,117,57,104,13,66,214,117,43,51,74,232,203,18,153,34,88,207,35,132,246,151,145,155,178,219,33,135,73,30,11,234,13,196,119,137,177,51,
+194,218,33,30,154,149,194,28,162,92,1,166,27,72,81,92,56,137,227,218,215,37,242,85,221,142,74,210,57,148,203,87,136,41,167,198,19,227,93,248,228,38,147,9,65,184,90,176,236,27,176,87,97,105,208,142,12,
+10,76,229,121,228,113,148,49,178,16,45,190,0,227,231,41,177,211,130,15,207,37,215,140,30,152,80,163,238,247,83,251,126,204,253,158,236,235,174,33,5,70,29,46,117,113,153,142,175,194,242,114,63,198,190,
+166,248,136,70,170,191,161,61,111,205,137,134,3,206,8,146,121,3,103,153,82,140,175,253,113,209,149,36,156,161,132,104,201,72,88,40,203,20,237,92,163,246,23,22,68,28,214,153,75,168,163,12,254,142,34,15,
+109,158,200,168,141,76,209,188,96,202,118,9,111,70,49,71,31,199,162,246,25,177,122,3,77,125,103,200,73,145,16,91,70,86,25,75,123,94,32,232,187,117,60,177,121,51,185,64,85,183,146,119,164,0,105,208,5,245,
+16,201,193,145,81,163,19,159,134,250,180,183,18,36,75,92,60,114,80,81,128,240,208,36,111,182,242,126,178,139,182,61,146,253,173,178,85,124,165,18,170,58,206,180,174,156,101,168,241,112,235,237,101,231,
+123,184,174,250,240,37,55,133,204,129,3,200,200,209,136,47,66,102,92,192,249,184,179,189,4,91,54,239,215,121,83,132,154,93,25,82,182,202,99,206,47,220,167,98,232,218,11,183,200,100,179,180,140,236,124,
+192,170,147,133,162,42,189,37,170,170,62,100,152,138,76,105,4,87,118,70,138,140,16,163,68,136,44,73,166,36,203,106,155,113,180,10,147,26,156,231,239,12,123,25,41,186,98,29,210,84,132,147,229,148,162,25,
+86,57,214,133,119,138,58,211,211,143,29,98,153,191,121,24,172,194,143,202,179,59,191,188,221,169,108,145,199,60,7,97,223,204,67,70,168,89,101,134,197,134,104,125,247,171,216,143,111,122,13,159,175,152,
+63,39,192,122,68,20,209,64,168,187,2,36,112,166,112,30,35,26,29,197,142,100,181,85,126,105,202,125,206,7,225,251,25,156,53,5,230,84,88,207,16,80,73,149,159,47,115,135,62,140,21,143,230,187,162,157,100,
+53,71,232,151,197,213,144,172,59,181,95,133,25,149,123,206,192,89,30,195,231,84,186,186,172,15,246,69,30,224,76,84,114,232,184,194,30,93,33,218,41,159,30,167,63,17,78,78,98,78,60,46,60,45,225,87,117,195,
+10,78,190,89,253,140,104,201,29,153,124,78,212,110,84,201,157,126,101,198,125,201,247,253,26,130,132,113,152,69,167,130,124,112,131,254,226,171,111,218,38,234,166,24,223,249,198,35,64,28,175,230,11,84,
+52,39,92,177,61,124,108,141,90,172,252,157,176,162,0,206,176,217,93,28,244,85,186,137,234,102,132,154,41,164,170,23,237,7,175,84,138,86,63,11,111,154,102,131,158,46,102,201,71,38,128,50,43,134,182,10,
+21,78,150,222,135,218,112,100,84,229,132,186,103,166,83,121,198,64,160,49,23,160,53,171,147,50,200,101,66,74,25,250,37,49,101,200,210,36,40,155,12,49,101,117,197,103,114,78,45,171,209,184,202,109,122,
+37,84,223,23,88,69,41,25,243,251,197,81,206,6,233,66,62,0,95,36,93,53,18,176,94,166,0,245,147,125,10,180,87,64,245,34,37,87,128,135,55,65,40,179,132,135,166,106,48,81,207,17,34,235,120,24,171,202,133,
+194,204,96,68,144,95,136,145,76,11,81,192,195,156,19,31,211,225,101,86,210,0,43,183,34,20,213,22,9,149,252,144,149,11,214,25,87,49,207,136,122,254,234,253,129,168,99,192,85,136,89,133,15,50,33,169,164,
+169,52,150,237,83,96,17,158,71,26,47,151,236,36,225,204,40,138,112,126,44,202,71,107,130,46,172,179,59,153,120,42,46,171,67,193,187,34,80,42,202,21,89,69,155,170,95,71,129,19,174,100,208,24,164,252,94,
+1,83,8,200,184,128,110,194,48,196,92,34,182,131,148,8,221,108,81,165,26,56,17,225,72,16,255,240,215,183,125,76,85,198,58,124,95,32,91,76,240,50,174,203,123,178,195,219,213,161,221,209,165,115,173,226,
+48,71,200,66,163,151,101,174,168,50,119,163,106,81,68,229,186,200,51,34,193,138,248,100,93,183,178,91,154,190,201,239,138,56,186,100,37,90,151,125,44,35,213,101,199,233,122,188,63,153,219,62,214,209,23,
+38,168,189,236,42,12,95,113,21,41,167,35,194,153,150,10,112,30,136,125,207,220,50,66,205,148,230,46,145,113,140,183,149,241,91,47,131,135,53,146,132,19,6,145,144,161,198,23,87,100,49,146,167,231,19,78,
+172,89,72,115,37,76,41,165,82,116,25,206,119,239,222,221,29,91,191,73,164,98,122,117,154,9,156,49,118,69,74,138,44,82,38,195,48,153,58,107,51,227,2,103,119,42,157,202,8,196,82,166,33,135,56,231,156,115,
+6,5,84,2,40,97,169,44,153,249,166,16,82,133,192,129,132,146,101,179,56,198,24,207,54,60,246,103,60,67,99,57,199,56,226,135,24,88,65,95,90,119,129,178,24,46,191,214,18,88,104,93,204,239,17,192,23,92,188,
+127,181,63,85,46,52,169,14,93,144,107,19,50,32,151,222,71,81,32,243,85,250,59,161,83,197,117,15,51,34,76,250,235,104,53,118,126,187,188,24,58,35,84,205,239,51,66,230,226,171,250,98,120,245,197,25,95,60,
+149,92,195,35,51,124,105,33,23,15,188,156,131,200,80,192,21,151,88,137,113,238,16,156,29,81,110,105,39,212,101,86,102,214,153,41,218,203,6,52,236,221,187,119,129,3,136,8,247,111,193,41,43,143,99,254,90,
+93,125,110,83,136,154,226,132,236,216,84,127,25,247,144,237,217,103,117,15,243,90,144,96,214,208,42,44,76,114,116,165,201,63,181,30,231,237,185,160,21,153,45,147,141,36,39,84,101,74,83,20,240,72,82,126,
+114,147,28,64,194,34,196,149,121,49,58,136,8,157,137,57,144,42,156,185,75,145,180,120,172,74,209,213,135,103,154,131,191,207,239,103,162,139,15,203,226,180,224,20,227,79,113,128,147,229,50,171,210,239,
+125,80,191,203,126,230,150,94,198,80,223,175,10,107,114,64,118,167,6,151,133,59,23,52,179,130,183,55,132,32,123,112,202,251,98,91,30,191,137,208,169,228,77,245,34,42,248,219,243,227,206,210,97,89,60,75,
+130,60,221,165,43,100,2,84,25,101,150,222,58,76,61,134,103,143,195,105,16,62,185,241,164,203,251,83,94,66,99,41,196,174,41,21,118,6,118,63,205,246,117,14,215,219,162,19,213,141,95,133,194,204,239,67,137,
+170,31,36,37,226,204,96,91,241,6,251,10,197,84,253,132,140,60,38,217,255,191,205,6,53,19,100,54,232,179,75,119,179,216,39,202,124,161,69,138,168,202,25,73,60,43,244,188,34,100,201,114,157,94,1,241,69,
+230,248,227,85,21,101,90,226,8,78,133,57,237,229,43,237,181,40,50,76,52,240,244,136,66,147,4,149,50,196,200,111,214,255,171,136,33,25,100,8,119,7,15,199,163,79,108,120,182,117,252,248,201,237,234,7,174,
+110,167,204,207,138,227,91,206,189,161,61,240,192,3,253,223,213,243,3,206,31,132,90,92,7,228,181,192,80,88,236,123,212,249,93,88,223,231,248,146,95,131,166,210,153,47,104,123,136,2,121,168,56,165,27,252,
+165,237,221,109,150,39,245,131,218,122,110,187,124,215,107,237,150,125,251,218,190,207,60,209,222,113,233,186,114,4,103,39,74,194,222,73,72,72,10,180,57,100,165,196,106,181,42,35,104,161,52,218,115,197,
+211,72,228,141,209,23,39,215,5,220,214,246,125,107,119,123,237,179,183,182,151,218,250,13,209,27,182,108,108,107,79,62,218,94,136,132,226,200,195,237,241,151,222,221,61,65,179,254,70,8,79,56,170,112,74,
+235,123,50,197,104,160,1,169,142,142,241,230,10,38,53,58,206,57,8,13,144,205,113,250,68,200,225,183,182,118,164,61,114,237,181,237,225,35,115,81,227,75,139,221,191,45,155,54,182,99,71,15,15,128,57,242,
+218,235,246,65,198,153,50,248,143,3,164,213,60,38,235,50,58,127,21,238,124,169,45,11,131,140,243,213,37,50,185,132,126,123,23,58,247,220,115,143,51,140,141,147,138,83,218,85,247,191,183,189,184,239,134,
+246,207,157,162,182,238,251,86,219,115,228,170,118,195,63,207,134,24,251,151,183,155,218,85,15,196,179,164,179,144,118,255,253,247,187,71,165,251,221,36,108,20,46,117,109,48,160,75,248,199,201,49,160,
+172,220,243,14,62,50,179,242,71,87,163,241,147,175,184,183,221,123,111,252,125,163,253,215,45,139,115,163,33,145,232,239,199,193,251,7,59,225,94,59,114,120,244,9,206,149,70,63,0,107,236,62,209,79,22,242,
+170,114,70,2,201,152,221,111,48,37,83,63,27,204,102,74,179,112,117,114,187,242,190,247,180,159,239,191,177,71,64,59,229,170,246,205,205,143,118,228,248,74,223,230,41,87,63,208,78,124,113,95,187,225,185,
+245,46,178,68,196,203,162,109,93,52,209,153,66,33,235,42,156,142,81,185,254,148,137,15,76,208,87,251,226,36,70,7,149,13,137,80,20,68,5,101,81,36,33,77,138,222,232,80,210,151,31,238,62,187,123,198,238,
+89,88,236,34,194,217,239,126,169,189,216,13,158,2,102,147,37,15,87,113,186,207,65,156,59,92,80,14,214,115,0,134,61,113,142,207,36,41,151,198,220,243,95,252,23,194,248,18,211,12,74,29,220,35,10,116,177,
+187,103,222,99,143,180,107,110,109,237,210,200,3,174,223,213,94,187,245,198,89,68,152,255,169,97,183,140,199,103,249,53,223,28,19,131,96,18,35,43,134,97,170,114,46,123,241,166,41,25,78,74,156,202,49,122,
+18,140,44,80,255,24,35,57,144,12,218,62,208,24,144,79,129,179,76,44,218,242,47,78,102,119,136,168,207,44,178,100,74,230,164,40,12,150,161,202,199,215,231,1,217,44,79,218,163,85,189,65,66,81,245,221,133,
+194,50,254,181,71,173,18,113,113,37,131,181,6,89,165,201,46,27,149,237,185,67,244,229,11,165,131,11,208,250,30,90,120,44,203,202,152,193,201,175,233,111,21,252,60,87,151,226,40,164,6,232,194,211,135,157,
+27,200,55,84,136,247,55,35,249,249,253,1,149,2,42,226,161,96,82,138,16,32,37,48,161,25,45,65,205,63,234,226,33,44,35,61,39,50,201,179,152,184,141,19,176,138,36,57,158,161,141,170,178,11,184,172,94,102,
+149,169,52,215,221,78,174,72,88,43,182,139,212,132,78,143,249,82,48,97,175,200,230,200,34,98,163,175,126,73,140,190,189,10,225,56,156,100,61,165,152,14,61,42,207,167,191,18,154,131,112,223,207,22,51,36,
+167,183,237,23,100,250,65,206,81,231,200,233,143,69,3,132,113,182,64,81,205,200,50,150,117,141,51,191,96,190,206,171,61,228,14,194,94,214,162,224,242,93,90,146,150,207,230,9,254,126,4,134,229,209,23,38,
+50,162,200,18,27,10,225,60,65,8,235,88,53,121,241,235,119,81,159,138,161,97,170,114,207,18,41,79,198,25,30,41,70,159,219,251,207,90,95,131,207,92,42,67,11,133,117,50,37,180,153,15,120,232,205,162,128,
+67,158,134,93,136,80,89,140,93,150,244,120,110,205,40,226,131,207,246,37,16,5,37,137,122,251,14,247,204,255,25,69,252,56,57,197,235,173,93,124,241,197,93,251,179,119,128,8,218,28,16,53,236,138,201,178,
+198,152,85,250,191,243,206,59,47,67,230,168,76,150,97,31,84,94,85,78,89,61,135,161,34,50,185,122,101,28,56,112,96,152,255,74,9,210,82,230,207,83,10,201,234,47,243,81,70,14,215,82,40,37,59,95,229,110,40,
+17,110,230,130,225,98,110,224,62,10,84,2,78,9,46,183,201,178,60,103,244,216,23,9,78,77,94,136,66,181,79,132,101,156,64,25,51,180,100,238,173,178,97,89,141,254,152,77,91,221,127,100,229,42,45,166,143,241,
+92,178,175,91,174,34,182,101,229,52,128,203,41,229,40,44,231,179,221,183,172,95,26,227,128,166,136,81,49,151,177,151,19,32,95,235,211,2,101,54,104,18,159,43,40,218,103,78,192,243,43,228,169,142,27,50,
+131,190,228,92,120,108,110,89,184,202,16,227,137,138,187,8,7,74,63,167,160,106,131,176,102,34,148,149,103,209,129,196,167,190,52,153,146,43,106,29,162,87,50,137,43,10,178,164,197,201,137,214,226,96,151,
+41,39,155,220,184,194,169,76,33,171,39,43,44,188,248,148,91,3,100,178,84,205,23,212,206,112,41,47,194,160,51,59,33,83,33,194,195,146,172,161,117,185,101,97,203,93,66,245,181,62,73,212,68,155,89,185,203,
+150,133,101,141,133,171,68,140,114,11,119,136,100,185,0,27,246,92,192,67,95,53,85,245,228,196,247,57,25,114,118,215,100,200,203,133,56,70,13,102,148,83,97,124,112,47,103,203,138,221,9,59,95,89,225,212,
+150,36,233,138,163,207,186,160,156,250,170,61,41,51,20,192,254,51,246,247,193,170,125,253,58,177,15,174,91,29,200,66,144,251,176,115,129,135,61,146,80,133,162,76,17,234,199,9,211,203,51,52,82,6,207,35,
+216,222,160,0,65,111,138,52,124,117,135,151,202,179,137,71,22,255,43,46,161,203,133,192,132,53,145,149,149,59,242,220,173,20,101,226,151,249,73,212,27,80,70,166,37,241,100,240,117,246,165,5,180,205,72,
+224,40,170,246,67,64,194,222,21,24,199,52,8,79,180,50,197,146,43,52,166,44,114,244,237,102,126,73,94,32,140,171,70,220,223,60,73,242,48,202,8,64,197,185,31,43,173,174,202,61,237,118,151,32,159,177,174,
+16,29,72,94,80,64,150,7,100,196,152,149,249,64,57,247,246,80,203,125,133,40,34,129,86,172,202,51,150,95,149,211,6,62,243,60,160,178,86,21,82,60,108,222,121,231,157,11,77,92,112,193,5,125,89,149,27,68,
+185,226,124,40,67,109,210,167,179,114,34,137,238,235,50,197,177,239,125,239,123,233,208,250,245,0,249,149,72,136,194,102,101,18,204,19,143,106,191,242,83,10,170,43,67,242,117,185,145,100,203,202,125,68,
+85,98,20,245,252,14,178,33,15,168,22,39,61,173,140,198,25,49,200,254,172,75,18,244,250,140,223,188,126,16,229,132,188,20,169,62,92,177,30,121,178,121,132,20,39,37,121,148,27,100,145,166,121,113,145,36,
+230,36,69,216,121,122,73,134,38,74,72,180,220,86,91,84,26,9,85,72,20,7,16,21,78,222,34,232,234,82,28,215,36,120,3,119,239,2,130,226,84,98,145,113,64,229,211,206,242,89,187,30,170,116,187,29,97,173,155,
+167,124,74,173,114,231,0,191,53,134,253,186,11,12,200,112,43,76,197,213,202,146,154,141,233,151,159,237,136,115,152,144,48,189,245,132,202,231,17,140,14,60,150,33,207,209,151,185,34,159,105,28,50,65,54,
+204,147,188,60,59,198,107,126,188,145,201,87,95,40,28,67,35,132,24,12,207,28,68,23,82,200,240,84,178,62,146,32,120,211,152,76,211,167,148,211,201,51,254,230,40,83,78,54,152,109,123,194,83,37,68,84,38,
+33,206,152,77,82,116,2,206,210,244,140,8,43,215,11,57,121,117,136,147,185,62,17,242,156,218,39,40,180,20,133,166,96,82,164,51,54,7,236,92,224,68,150,5,234,204,37,51,178,117,148,120,214,202,118,152,95,
+12,87,134,120,130,11,198,65,57,121,101,177,216,81,148,205,33,28,61,188,110,232,211,109,255,20,144,27,172,146,193,221,192,35,80,207,79,217,128,220,202,14,219,108,118,165,65,103,131,165,32,110,9,29,115,
+223,151,175,251,197,85,150,19,214,154,48,13,41,46,94,177,69,226,245,171,211,61,7,120,130,226,176,227,190,44,231,17,65,16,228,96,85,199,147,158,140,96,51,66,229,29,235,254,224,118,22,65,178,136,70,215,
+244,176,221,27,205,99,169,35,130,254,146,69,2,71,139,43,211,175,237,187,16,20,208,209,83,173,60,101,73,219,178,85,170,42,129,27,221,46,191,202,76,48,131,184,243,7,103,138,203,234,235,120,70,168,82,56,
+83,234,44,116,170,158,71,1,18,99,229,214,107,23,93,116,209,104,50,84,49,113,197,21,158,33,222,117,215,93,11,77,92,120,225,133,89,179,163,50,77,134,40,244,144,173,205,87,116,86,33,224,170,163,108,150,218,
+71,19,78,135,163,3,65,222,161,90,117,158,165,185,46,132,135,200,76,72,17,43,21,170,182,117,172,10,177,89,57,199,18,109,250,133,83,29,95,32,65,66,140,140,154,93,116,16,108,249,44,142,147,42,133,39,211,
+115,242,226,139,43,142,42,42,159,10,119,163,248,250,102,69,240,36,234,209,7,23,221,95,185,239,36,35,141,50,158,103,249,67,148,77,101,121,92,170,114,63,229,126,149,140,177,14,163,64,150,3,100,249,195,104,
+73,140,254,231,97,174,130,153,91,132,49,87,66,172,50,121,97,26,45,65,171,236,206,17,162,125,94,251,227,244,87,179,68,166,207,114,245,209,247,5,122,82,176,15,164,210,95,229,55,158,39,120,134,229,86,33,
+74,52,80,135,103,166,112,119,13,186,80,150,135,80,249,62,22,114,204,40,156,123,232,112,75,103,10,201,96,167,14,51,22,119,133,57,9,86,3,83,189,140,35,166,194,10,137,124,138,164,123,131,122,20,240,129,80,
+65,209,240,170,209,33,131,41,133,166,69,162,156,233,181,163,142,50,81,30,250,124,108,203,213,66,70,173,250,84,202,215,88,250,40,224,228,145,105,119,202,138,36,168,12,154,25,188,171,50,18,85,150,80,201,
+157,156,112,179,217,223,148,171,170,237,20,1,161,128,205,187,191,218,254,126,199,31,205,116,241,139,59,218,69,55,119,95,153,234,254,109,217,19,229,111,239,183,255,229,246,3,237,166,231,103,85,180,164,
+229,132,231,161,74,154,103,226,67,180,100,138,246,152,78,3,101,121,139,16,32,228,56,114,169,188,254,14,17,191,194,242,150,109,123,219,37,59,94,111,255,248,177,143,181,143,126,244,127,180,31,188,227,19,
+237,242,83,186,251,105,182,206,202,239,184,232,162,118,209,223,62,221,222,241,201,43,218,201,115,210,244,16,67,75,57,84,171,125,41,34,139,251,78,180,25,241,106,166,232,232,242,16,46,55,158,147,225,134,
+133,7,9,126,251,246,206,242,79,63,214,158,235,159,21,122,181,29,122,233,245,246,71,111,223,216,222,120,199,219,219,241,167,30,107,207,199,34,202,43,15,183,39,254,229,93,237,79,79,90,255,206,88,182,166,
+224,254,172,206,149,29,46,35,84,71,132,246,25,231,53,96,177,59,127,71,140,143,213,175,33,10,177,131,97,251,133,239,180,207,28,92,127,64,114,99,55,240,215,143,29,110,91,54,118,191,175,29,25,66,229,177,
+238,193,201,120,140,206,211,88,89,223,45,90,249,125,166,36,250,63,219,201,120,129,46,68,116,57,209,122,63,209,214,218,71,63,250,209,126,50,228,9,205,80,249,196,203,218,255,58,227,181,246,223,63,247,104,
+107,187,191,210,206,60,246,185,246,157,23,103,71,55,119,251,159,106,183,181,207,118,202,82,178,113,207,61,247,176,159,114,251,47,255,242,47,211,121,7,173,201,193,100,229,132,178,203,127,247,221,119,175,
+36,71,159,10,191,231,175,255,177,253,211,63,253,83,247,247,229,118,214,198,55,214,175,210,196,224,63,222,218,119,187,193,31,238,111,167,157,181,185,158,43,116,15,78,118,200,136,125,101,89,43,245,58,175,
+228,60,193,104,226,249,135,195,154,208,214,246,155,233,123,80,110,103,137,254,171,179,11,255,78,186,172,221,25,131,191,248,59,45,248,191,31,244,73,159,110,215,111,124,188,119,143,232,244,164,203,238,108,
+239,126,233,226,118,203,139,179,7,33,125,214,38,101,209,205,164,60,61,213,165,125,191,168,241,102,6,35,62,225,56,178,104,196,136,161,237,225,233,241,17,23,108,217,211,190,250,241,181,241,224,67,162,99,
+175,181,227,59,206,108,39,133,66,54,239,110,59,223,245,139,246,243,231,242,167,177,60,158,139,161,201,212,83,147,175,55,123,140,119,167,133,82,125,113,71,104,243,57,199,218,199,62,246,177,227,124,134,
+47,20,49,202,1,230,166,120,253,233,191,109,159,121,228,213,182,118,242,229,237,174,79,188,171,47,253,197,29,23,181,72,15,228,2,81,86,77,124,220,162,89,146,66,247,98,125,143,227,21,58,72,122,254,92,162,
+183,61,112,202,95,253,213,95,29,255,245,175,127,221,183,201,16,67,82,201,58,244,227,218,151,134,179,1,176,125,103,232,85,21,151,201,194,118,117,188,146,67,138,24,38,101,236,88,90,113,248,41,145,224,20,
+147,117,162,156,215,247,179,203,226,62,239,175,22,47,184,118,224,47,74,200,22,96,244,216,125,200,206,69,27,15,151,114,1,174,99,132,50,134,23,40,44,100,131,253,179,195,227,63,127,11,11,95,89,33,4,101,236,
+157,89,205,21,40,34,35,18,135,124,125,254,82,6,89,154,126,44,247,139,243,213,166,248,192,145,193,104,161,254,70,95,152,112,216,50,44,249,49,206,222,84,79,4,87,173,46,115,208,149,79,146,44,157,72,179,165,
+111,69,31,102,134,218,14,229,48,92,106,12,52,210,194,154,160,96,230,36,229,161,140,16,203,146,20,34,130,151,165,117,135,150,35,166,135,35,94,118,22,219,58,175,42,215,133,19,245,79,244,172,231,42,235,215,
+62,41,179,148,185,112,183,184,44,67,146,35,148,60,183,102,78,207,84,87,218,246,12,141,201,15,67,19,209,35,203,243,154,32,173,175,114,93,30,151,242,168,8,146,29,9,81,109,75,190,209,133,145,76,8,194,176,
+34,73,13,68,232,225,245,183,193,215,240,105,206,108,34,228,136,35,66,156,67,12,194,195,123,75,105,60,189,175,72,47,137,210,107,117,232,30,49,182,158,3,20,103,51,33,232,171,158,76,208,226,106,199,9,74,
+8,32,159,248,0,156,79,42,66,205,202,9,123,162,174,66,154,220,105,64,114,22,67,73,40,25,131,179,204,59,162,21,156,233,151,101,119,217,210,187,95,1,22,74,249,104,14,21,227,3,244,168,68,190,154,215,29,95,
+29,38,60,135,57,243,124,30,189,236,226,136,35,66,138,90,54,240,30,138,118,149,90,130,123,120,246,242,216,151,82,92,17,25,210,124,76,27,124,253,124,74,216,101,23,71,66,128,44,9,90,5,81,174,60,178,120,166,
+88,186,150,6,149,133,80,31,143,218,210,184,215,186,11,151,163,71,102,196,7,21,244,171,227,42,207,46,142,118,15,103,46,243,164,133,153,164,243,17,7,236,141,57,251,79,117,230,235,21,189,2,86,37,65,38,18,
+36,71,231,4,90,143,217,23,251,169,8,215,219,85,166,151,149,171,76,109,177,223,74,9,124,207,88,31,62,3,34,34,26,191,23,199,111,68,16,225,185,219,196,126,117,31,143,222,44,227,100,235,209,34,11,183,26,80,
+150,116,113,128,114,129,85,144,224,215,41,211,47,76,100,33,203,73,138,251,202,238,180,200,193,193,70,61,230,15,85,58,171,65,114,178,194,8,147,149,83,137,36,210,108,66,165,121,139,218,145,17,187,119,36,
+189,117,97,210,147,37,42,132,127,197,216,14,69,194,124,89,58,75,198,166,117,167,202,197,250,82,196,212,132,138,217,32,145,220,71,129,44,3,244,114,79,63,249,214,87,90,85,66,49,3,156,74,115,153,206,122,
+204,166,210,51,69,184,161,86,65,154,163,115,225,171,179,67,134,52,143,253,28,136,132,96,88,146,239,250,12,144,60,145,17,158,199,104,70,23,207,30,157,220,178,176,170,62,150,33,77,25,171,148,187,240,78,
+209,108,42,43,1,28,154,61,139,218,173,182,66,128,71,12,10,157,89,218,137,213,17,166,227,89,185,148,183,10,210,156,140,71,211,97,23,204,43,79,161,195,145,66,158,200,18,20,70,14,69,10,77,166,178,123,0,73,
+180,158,29,14,73,141,189,205,146,153,33,195,113,148,15,188,33,75,101,33,36,83,8,45,73,100,8,90,241,75,20,105,193,194,83,208,104,71,3,113,197,58,196,51,148,101,97,144,3,246,193,103,4,221,203,196,248,171,
+196,194,227,47,73,142,131,19,155,122,76,207,184,98,89,58,75,23,96,250,234,10,165,188,218,158,74,133,29,105,36,202,62,116,86,108,94,13,52,83,24,19,21,159,11,172,154,83,80,153,25,15,101,254,237,4,188,108,
+66,149,33,58,253,190,128,19,88,150,86,74,147,14,45,127,117,30,93,128,144,103,100,16,226,170,133,146,169,114,37,90,89,182,152,69,15,166,212,125,154,77,216,19,30,206,13,76,36,252,24,149,64,139,19,154,171,
+164,179,21,23,84,229,106,159,209,168,154,206,171,174,203,183,118,254,249,231,15,87,135,125,32,217,228,130,241,90,68,67,50,188,239,190,251,22,0,19,179,65,157,151,89,222,17,71,66,101,88,245,114,63,207,111,
+183,165,161,100,104,191,106,220,43,192,7,229,157,122,67,220,119,23,200,142,249,133,80,106,72,131,10,132,252,46,255,122,24,35,23,201,140,66,153,194,69,25,241,210,239,14,59,187,243,4,90,155,214,164,53,4,
+217,101,201,15,161,43,11,185,171,76,149,115,176,36,231,85,38,78,26,211,232,70,201,42,17,98,8,139,78,167,24,57,75,147,137,48,79,115,151,161,41,250,202,80,150,69,35,202,79,52,101,9,221,16,173,166,6,147,
+17,95,214,176,202,2,138,25,169,174,146,230,86,81,197,185,195,21,40,25,57,200,76,17,114,19,157,175,220,166,79,133,253,26,96,150,181,177,108,234,226,39,249,67,66,113,130,82,61,44,153,241,76,229,122,68,153,
+20,228,4,57,133,52,186,248,176,40,234,139,11,132,152,78,112,75,122,157,42,155,243,16,148,113,135,51,58,145,68,165,122,57,17,185,10,210,194,120,209,255,48,159,200,6,199,84,212,211,82,146,32,195,164,234,
+57,143,196,224,167,210,92,158,231,81,128,36,234,174,231,126,45,66,157,154,80,41,105,226,24,122,167,101,71,60,88,133,37,193,141,240,243,232,224,138,242,180,213,149,156,45,149,49,49,171,12,33,89,168,128,
+138,12,69,224,250,237,67,168,195,145,39,59,251,115,223,217,158,228,162,48,36,161,25,238,50,132,136,160,168,240,172,44,11,155,148,99,21,164,49,29,239,219,115,75,208,37,72,76,30,159,233,255,14,85,71,17,
+215,10,60,175,247,9,140,32,188,106,185,27,108,25,210,24,177,250,62,148,180,100,29,58,123,123,36,200,102,95,217,165,44,119,7,79,135,201,202,178,168,207,8,151,149,171,143,85,38,78,68,77,249,200,140,252,
+132,209,129,62,233,139,166,190,100,229,239,16,32,98,50,52,101,132,74,23,162,146,156,15,16,211,71,119,132,16,29,50,150,198,32,238,27,56,32,235,192,125,62,35,69,159,125,101,157,42,116,101,105,46,73,216,
+57,71,199,170,114,79,126,86,65,26,219,236,167,234,58,137,176,116,162,162,144,238,50,94,215,93,64,161,103,89,58,75,116,113,32,142,64,25,129,190,46,180,185,43,101,72,147,49,134,49,237,219,183,111,244,86,
+217,44,33,169,202,156,236,98,63,190,64,229,255,246,239,223,191,144,207,83,225,74,199,37,148,159,207,80,151,29,83,153,190,68,227,245,217,151,191,79,104,173,123,231,111,87,127,118,207,255,212,191,42,123,
+243,243,248,194,19,157,51,245,37,57,90,148,10,240,118,51,4,41,15,25,252,121,62,45,14,133,102,109,69,125,221,65,170,49,15,107,130,89,246,71,72,101,47,75,245,105,167,52,63,149,193,49,180,58,212,61,149,213,
+130,102,85,30,131,81,29,206,243,93,89,146,71,138,145,156,61,49,58,113,208,23,43,210,170,66,82,166,144,10,190,84,146,4,206,150,179,124,29,145,161,153,23,65,53,19,165,143,107,91,242,70,63,46,227,232,54,
+57,186,64,150,33,122,227,30,207,99,223,103,150,177,239,232,9,33,200,224,209,110,21,191,157,128,51,197,169,223,140,171,220,189,253,150,221,209,157,162,142,6,42,196,227,103,197,23,34,180,204,165,152,59,
+168,47,213,95,22,121,124,224,84,32,45,236,114,249,121,158,67,140,150,196,8,153,216,166,11,76,17,20,221,166,74,144,28,122,153,2,61,222,115,159,6,200,202,189,253,95,253,234,87,205,255,254,237,223,254,109,
+120,64,108,72,158,20,215,179,59,192,184,120,177,112,103,69,242,238,17,182,193,124,65,86,32,194,220,151,51,254,112,14,162,162,93,89,68,80,40,119,106,145,103,180,62,177,103,207,158,209,187,196,72,90,83,
+4,230,97,138,17,32,243,69,183,56,223,29,22,231,6,139,19,174,171,132,65,175,163,15,70,69,185,158,129,96,212,201,182,7,23,144,182,157,57,51,88,86,150,169,162,0,231,1,10,173,78,78,25,161,122,56,245,48,155,
+161,72,178,177,61,231,151,209,36,78,90,97,225,105,215,61,218,127,68,61,190,217,119,221,105,235,55,82,110,219,127,115,95,30,127,42,87,227,113,62,31,94,208,64,51,101,57,185,86,73,150,71,29,63,79,251,82,
+176,187,1,247,179,20,189,119,211,5,1,223,127,77,251,116,187,185,117,174,209,246,252,183,199,218,198,79,95,211,222,31,153,226,214,243,218,149,103,29,109,55,207,203,55,69,121,39,129,124,221,45,152,41,150,
+2,57,145,121,130,196,104,66,84,178,92,9,146,206,205,110,159,117,98,119,30,25,190,51,36,4,180,159,126,189,237,253,198,207,102,113,250,149,231,218,207,95,235,71,217,61,53,189,177,181,199,30,110,207,134,
+50,94,190,183,61,242,243,247,116,223,27,157,61,99,200,137,9,7,194,80,229,48,164,2,226,124,95,107,208,13,17,145,70,59,212,3,105,250,68,48,185,36,155,153,250,202,18,17,219,31,11,18,20,153,196,65,249,89,
+95,182,109,127,187,233,156,35,237,242,175,255,180,219,188,169,157,115,228,242,214,109,246,255,124,95,231,29,60,120,176,74,17,70,229,221,36,108,216,143,126,73,90,35,25,230,40,147,37,37,35,27,147,18,56,
+216,85,63,253,185,144,10,71,195,97,145,247,95,123,176,29,252,230,89,109,227,198,77,109,171,158,26,157,79,152,102,214,107,109,227,166,173,233,187,64,87,209,0,161,152,145,39,23,73,137,22,150,103,203,224,
+186,60,191,138,12,81,103,237,198,23,143,31,191,226,189,177,121,172,125,255,170,203,218,189,175,172,159,122,252,248,214,118,254,45,55,182,77,143,156,213,30,220,124,75,59,247,200,165,237,250,103,103,199,
+183,158,127,75,219,119,248,146,246,213,103,23,63,116,166,22,50,38,214,49,93,201,21,250,24,133,122,193,236,109,21,108,51,11,193,113,156,175,218,228,140,176,10,217,113,206,134,159,124,101,87,59,243,204,
+51,187,191,191,110,247,252,242,141,182,101,255,119,218,119,246,111,153,91,246,229,246,179,23,143,181,77,155,183,182,95,30,62,218,255,202,223,183,118,159,224,213,63,39,52,223,23,113,113,217,204,125,81,
+131,38,140,201,27,85,57,73,56,182,197,246,222,103,121,209,70,86,146,208,47,255,172,123,52,252,196,247,183,109,189,21,182,183,83,79,108,237,208,115,135,219,134,78,1,109,247,190,246,193,200,0,79,56,208,
+206,121,239,161,246,252,51,139,64,115,114,99,148,33,131,251,130,170,234,145,80,37,180,19,173,67,159,136,81,255,140,8,217,116,90,101,107,103,157,117,86,159,9,198,63,145,207,214,46,222,127,235,236,153,133,
+127,126,211,238,246,181,57,241,181,83,175,107,143,94,254,158,190,252,208,77,103,183,175,205,221,193,213,224,144,147,128,172,247,182,183,189,109,116,90,70,130,148,41,219,102,3,178,190,250,246,71,103,153,
+68,141,206,219,189,123,119,186,20,196,65,100,3,90,180,253,186,2,233,26,12,133,60,135,119,115,68,121,88,228,119,253,167,62,216,166,22,72,164,56,25,193,121,105,116,113,212,167,138,203,124,59,59,238,51,72,
+178,61,83,98,42,41,234,248,117,0,202,66,230,207,166,217,234,131,80,231,128,61,165,150,82,250,252,131,254,149,53,94,229,253,217,121,25,212,249,120,173,18,24,38,47,116,63,9,230,138,173,202,125,224,188,108,
+207,103,32,196,61,25,47,140,190,55,56,5,193,85,208,64,230,149,50,171,54,221,173,166,230,3,85,27,174,60,246,169,231,5,131,107,98,59,126,255,240,15,255,112,33,227,156,188,93,222,87,112,50,161,171,9,136,
+163,193,19,31,42,43,234,78,93,154,171,142,137,248,150,41,143,114,171,173,225,201,116,250,10,23,22,167,226,174,199,112,10,232,57,255,84,142,175,103,127,217,175,115,131,18,154,172,92,22,31,230,49,243,74,
+83,202,246,99,253,100,40,26,240,59,39,164,93,191,29,70,130,84,90,119,87,33,49,209,47,149,178,170,108,21,23,171,234,72,166,85,148,237,138,28,189,85,182,98,117,79,36,178,204,78,238,226,225,51,83,136,39,
+59,21,161,202,53,72,206,62,88,165,204,140,36,188,158,16,10,166,178,37,207,128,98,134,31,53,226,209,128,176,201,148,20,66,49,196,177,190,79,81,249,140,18,223,16,225,237,82,73,60,198,114,102,150,89,180,
+202,38,78,158,249,174,157,113,198,25,11,223,26,139,14,153,192,200,170,250,117,246,37,75,63,245,212,83,35,210,222,187,119,111,191,95,77,110,84,121,106,13,143,238,230,68,204,206,130,237,121,60,235,211,167,
+235,107,187,118,237,42,239,21,102,227,82,74,54,120,239,84,3,14,171,232,54,89,198,114,15,107,209,102,70,118,25,223,100,10,80,89,92,28,93,166,108,62,56,217,79,164,178,151,20,184,79,50,28,50,153,200,96,239,
+3,117,178,28,45,73,227,245,157,83,57,200,178,99,106,115,106,66,229,174,62,68,16,134,173,241,192,183,181,11,110,125,178,125,238,180,217,99,117,241,183,237,192,109,45,32,30,127,95,248,224,248,194,9,253,
+158,9,9,253,183,66,1,9,108,234,113,249,44,37,206,208,151,17,37,211,225,17,71,81,187,163,24,254,161,253,109,239,166,217,209,30,42,127,124,113,187,110,239,177,246,173,157,59,219,206,203,15,182,141,87,127,
+161,125,40,121,72,137,100,84,205,193,157,100,185,34,68,66,101,91,89,185,71,163,85,148,237,235,139,11,23,71,103,74,56,161,93,248,95,91,59,120,240,88,255,186,188,190,108,219,230,174,224,254,246,147,80,200,
+203,247,180,135,15,189,183,157,210,161,192,19,31,207,27,72,160,83,177,62,51,196,212,130,102,111,148,249,213,41,181,59,53,161,162,187,18,137,93,27,179,117,127,250,234,246,3,215,182,147,94,184,191,253,108,
+102,254,254,216,246,205,155,218,177,195,191,236,229,140,14,95,137,5,18,172,8,103,19,41,70,147,204,143,25,105,178,251,143,105,173,169,84,89,109,175,162,108,159,24,141,238,20,157,133,141,15,180,243,246,
+28,109,15,223,243,114,191,26,222,105,96,110,229,216,92,87,214,134,13,107,109,211,214,119,142,190,32,163,108,146,214,153,18,92,217,102,212,169,242,136,101,229,113,92,202,155,154,19,232,152,79,210,54,156,
+250,185,39,218,19,79,196,223,63,180,11,182,254,182,125,224,243,87,181,227,55,252,125,251,81,215,240,111,223,232,86,127,223,248,205,108,174,222,109,183,55,102,143,201,203,55,143,190,250,175,195,182,55,
+44,88,186,229,43,178,204,18,153,41,151,241,72,21,231,175,170,236,209,220,101,199,142,29,93,91,202,133,58,223,191,253,230,129,252,36,252,209,71,62,221,62,121,120,127,187,125,203,125,237,147,119,207,220,
+224,67,95,120,186,157,242,220,206,246,229,103,214,223,53,76,166,149,171,248,202,79,150,84,197,121,188,183,136,74,171,220,136,237,168,95,126,152,85,253,243,151,253,12,220,117,250,233,167,167,119,137,197,
+137,39,92,116,71,219,127,248,19,237,75,63,233,124,225,132,11,219,237,55,111,110,15,157,254,197,246,147,119,94,212,109,111,105,15,237,232,182,231,81,34,243,241,40,243,153,30,253,158,190,27,40,115,8,87,
+25,167,103,134,82,6,23,90,42,5,40,59,212,239,194,157,162,62,144,142,1,102,233,229,47,239,110,159,188,97,173,93,253,131,31,180,167,111,222,219,142,118,110,242,227,249,221,101,14,85,117,174,78,120,60,203,
+229,51,183,200,72,181,34,218,25,87,175,127,70,115,193,207,65,244,124,80,52,234,173,133,11,72,208,41,166,206,124,57,179,144,44,94,181,153,165,178,172,43,200,251,249,85,121,200,165,52,58,91,87,144,220,222,
+71,63,248,8,165,21,116,221,159,61,212,176,51,230,2,62,67,91,101,165,135,214,35,185,17,25,89,185,148,185,74,122,237,138,151,252,195,162,40,125,166,82,138,67,57,99,105,42,42,179,118,133,50,133,78,42,83,
+219,156,82,103,199,135,188,222,110,219,201,148,239,185,194,154,72,208,217,150,240,118,210,145,207,101,110,241,244,211,79,143,138,187,233,118,191,95,177,185,160,41,24,59,17,74,224,101,229,113,188,138,56,
+20,232,241,199,31,31,201,183,246,225,15,127,184,252,202,140,251,184,11,81,41,66,229,62,104,34,130,62,41,23,200,218,91,166,0,158,35,88,79,41,91,209,70,99,25,61,50,147,105,153,144,33,11,203,39,125,185,204,
+227,51,213,237,144,166,239,50,155,35,204,185,94,233,229,62,23,144,75,138,24,153,69,138,155,220,157,134,84,88,154,28,101,73,152,237,201,71,41,116,230,99,20,50,218,156,202,241,121,62,217,218,253,92,178,
+101,229,236,99,21,101,59,71,45,60,51,196,41,166,210,83,143,0,222,17,5,164,134,105,137,44,23,144,133,34,54,103,132,154,205,3,60,26,80,150,85,148,45,174,209,121,253,139,148,178,119,126,102,55,73,102,108,
+236,126,235,3,153,202,241,61,97,225,96,170,8,226,229,153,98,167,148,29,199,184,176,178,246,23,127,241,23,61,9,198,224,214,27,63,161,93,244,221,91,218,57,243,5,145,214,186,217,225,165,31,111,119,117,211,
+128,19,46,250,110,187,101,126,224,197,111,126,164,125,177,75,147,73,104,36,162,41,146,36,87,104,54,152,145,236,136,178,139,157,42,98,101,10,245,72,81,68,129,15,181,191,253,225,251,218,207,62,252,119,237,
+199,108,229,132,139,219,255,252,135,45,237,129,40,159,111,63,248,145,46,37,158,215,201,6,224,107,13,21,98,170,201,208,148,2,212,159,243,142,159,67,101,75,1,67,34,148,178,239,59,183,182,77,71,143,180,195,
+246,54,169,181,237,91,90,123,248,222,246,147,88,36,121,249,174,246,224,139,39,182,247,125,104,189,59,135,123,28,161,207,86,185,124,212,201,8,85,183,202,249,49,149,75,118,241,86,70,150,138,34,170,187,64,
+130,100,223,161,163,110,160,155,54,237,109,223,233,38,62,63,252,225,15,187,111,138,188,179,103,243,255,178,173,91,21,58,250,234,192,236,135,143,28,237,151,204,120,121,141,218,231,28,93,81,132,139,38,178,
+156,172,226,22,149,2,171,242,129,200,176,52,54,53,137,146,162,213,111,239,250,153,214,250,232,119,232,91,45,178,184,51,206,184,177,29,219,123,109,187,240,132,190,230,236,166,201,216,234,151,202,186,91,
+229,186,85,33,182,33,141,235,215,99,113,134,18,77,76,50,206,224,224,169,92,242,142,206,243,16,157,41,155,253,247,10,8,173,156,246,249,39,219,147,79,198,223,173,237,130,109,221,18,248,143,190,216,118,124,
+241,199,243,101,170,31,181,251,187,123,31,79,122,127,175,129,126,29,112,253,223,90,59,118,36,150,206,102,74,233,27,132,219,72,128,101,185,124,156,199,144,155,205,57,102,93,207,30,238,146,91,169,76,253,
+175,170,108,162,164,87,192,143,254,238,35,237,35,31,249,72,59,253,244,79,180,187,254,245,120,219,126,225,237,237,246,3,219,240,192,68,23,7,186,229,175,127,125,245,104,219,184,121,123,47,64,132,146,45,
+155,187,27,169,186,105,37,73,70,23,38,253,89,62,41,136,3,160,192,26,204,155,81,132,206,87,88,147,155,121,194,52,149,88,141,158,29,86,197,151,127,214,125,53,225,228,211,218,31,247,190,245,103,109,255,222,
+181,118,228,112,55,119,62,220,125,97,102,239,254,246,103,113,57,189,187,78,112,110,220,42,247,236,250,221,228,34,154,169,139,158,85,158,64,120,199,53,62,189,9,58,251,141,227,186,87,56,126,163,142,110,
+146,100,162,147,41,91,10,30,110,147,211,108,144,48,142,237,237,7,110,109,55,237,153,37,2,135,110,60,163,125,57,214,190,226,223,7,63,223,158,188,178,191,181,180,47,255,210,143,215,47,164,70,89,184,18,255,
+113,54,56,58,96,59,62,233,201,66,170,44,236,208,87,83,254,161,8,162,78,219,63,232,136,157,255,214,58,232,15,78,45,4,120,182,149,37,26,81,71,68,228,28,80,101,113,174,0,213,83,34,196,227,108,35,75,180,60,
+161,137,115,117,171,221,84,255,174,232,97,54,168,78,170,193,71,7,21,217,233,88,28,159,74,125,29,146,234,75,81,128,225,73,219,36,85,101,171,226,32,193,88,235,124,82,96,198,1,58,182,48,187,252,243,63,255,
+243,133,15,45,9,98,62,104,15,73,66,1,17,66,33,98,123,149,69,10,135,187,178,52,239,159,86,206,208,148,185,141,35,105,97,76,116,1,111,148,13,58,228,181,95,193,86,29,101,245,42,87,80,127,84,128,215,213,49,
+159,169,102,252,50,229,10,131,49,119,238,220,153,222,42,235,137,6,81,65,45,50,4,70,249,120,82,213,202,11,30,110,9,10,235,235,251,236,123,200,225,231,47,109,226,177,112,133,12,5,35,210,67,34,215,103,134,
+62,24,37,25,217,203,75,153,64,240,78,110,18,139,251,223,84,142,207,121,72,182,56,34,193,169,100,89,94,151,232,200,57,92,203,200,110,236,242,181,128,62,170,112,80,140,209,25,161,100,131,201,224,172,118,
+156,15,72,114,25,60,201,49,36,65,41,74,153,165,218,117,194,93,85,217,148,99,184,50,68,97,53,185,97,10,59,149,206,186,165,156,205,51,50,163,139,121,253,106,66,147,33,173,226,173,74,217,68,211,60,175,152,
+223,0,49,191,15,64,194,186,54,9,237,140,152,56,17,25,105,56,121,215,95,28,231,125,71,158,18,207,5,27,110,222,100,223,114,209,12,161,30,165,88,199,149,55,204,83,156,220,180,79,119,152,218,118,152,103,108,
+76,56,51,58,176,47,109,11,214,84,10,93,74,138,246,156,66,254,175,243,104,64,41,148,134,81,63,93,189,197,59,68,162,241,15,14,51,196,39,219,231,187,91,97,250,127,219,15,180,91,187,84,119,118,163,212,109,
+243,41,242,250,162,71,84,225,77,78,178,150,251,170,79,127,157,185,179,68,70,101,26,160,187,169,162,131,20,147,133,210,52,95,225,141,146,3,49,69,190,127,242,243,237,140,152,0,116,131,190,237,166,61,237,
+248,209,238,161,169,77,155,186,101,130,157,221,229,242,110,164,31,252,155,246,212,85,173,221,120,198,151,251,75,228,206,3,25,18,136,54,31,180,167,168,60,223,143,137,63,156,72,179,164,135,237,80,1,131,
+146,191,217,61,54,119,117,63,183,57,218,30,185,236,19,125,253,231,62,240,221,118,77,251,70,187,164,187,77,102,176,252,183,119,183,246,232,21,235,101,109,123,59,112,235,53,173,125,227,146,166,106,81,55,
+238,54,89,229,159,95,50,163,240,171,12,140,254,78,5,9,1,126,137,174,146,105,195,51,95,218,217,186,75,228,221,223,39,219,221,47,191,179,255,123,185,187,1,42,30,138,28,13,254,216,177,126,55,75,52,24,33,
+86,25,124,134,150,41,216,211,159,157,143,24,219,229,235,83,153,164,203,55,92,28,117,120,198,45,48,87,205,102,189,237,208,13,59,186,229,239,217,237,51,91,30,218,209,190,212,221,22,19,119,140,220,118,211,
+230,246,200,132,11,100,48,87,153,207,219,61,7,112,65,221,13,248,144,85,230,219,89,54,41,3,142,92,37,155,11,100,147,145,56,41,238,31,60,112,219,77,109,79,255,68,221,177,118,240,242,79,245,240,231,64,157,
+140,178,78,169,236,5,139,216,125,195,238,215,238,199,110,56,71,87,74,124,12,249,217,29,34,34,25,14,44,203,220,188,76,48,118,159,204,220,34,115,165,153,146,215,111,186,154,202,22,125,206,81,41,58,235,135,
+74,75,239,16,161,63,170,178,251,232,194,188,26,147,12,250,44,211,88,110,123,14,159,229,26,83,124,82,173,59,16,1,25,95,112,29,49,220,232,255,1,91,79,99,204,179,97,196,216,0,0,0,0,73,69,78,68,174,66,96,
+130,0,0};
+
+const char* CompressorAudioProcessorEditor::scaleLr_png = (const char*) resource_CompressorAudioProcessorEditor_scaleLr_png;
+const int CompressorAudioProcessorEditor::scaleLr_pngSize = 18298;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/compressor/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,124 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Compressor: dynamic range compression effect
+  See textbook Chapter 6: Dynamics Processing
+ 
+  Code by Joshua Reiss, Brecht de Man and Andrew McPherson
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __JUCER_HEADER_COMPRESSORAUDIOPROCESSOREDITOR_PLUGINEDITOR_75AA535A__
+#define __JUCER_HEADER_COMPRESSORAUDIOPROCESSOREDITOR_PLUGINEDITOR_75AA535A__
+
+//[Headers]     -- You can add your own extra header files here --
+//[/Headers]
+
+
+
+//==============================================================================
+/**
+                                                                    //[Comments]
+    An auto-generated component, created by the Jucer.
+
+    Describe your class and how it works here!
+                                                                    //[/Comments]
+*/
+class CompressorAudioProcessorEditor  : public AudioProcessorEditor,
+                                        public Timer,
+                                        public ButtonListener,
+                                        public SliderListener
+{
+public:
+    //==============================================================================
+    CompressorAudioProcessorEditor (CompressorAudioProcessor* ownerFilter);
+    ~CompressorAudioProcessorEditor();
+
+    //==============================================================================
+    //[UserMethods]     -- You can add your own custom methods in this section.
+	void timerCallback();
+    //[/UserMethods]
+
+    void paint (Graphics& g);
+    void resized();
+    void buttonClicked (Button* buttonThatWasClicked);
+    void sliderValueChanged (Slider* sliderThatWasMoved);
+
+    // Binary resources:
+    static const char* brushedMetalDark_jpg;
+    static const int brushedMetalDark_jpgSize;
+    static const char* c4dm_png2;
+    static const int c4dm_png2Size;
+    static const char* qmul_png2;
+    static const int qmul_png2Size;
+    static const char* knobstrip_png;
+    static const int knobstrip_pngSize;
+    static const char* scaleLr_png;
+    static const int scaleLr_pngSize;
+
+
+    //==============================================================================
+    juce_UseDebuggingNewOperator
+
+private:
+    //[UserVariables]   -- You can add your own custom variables in this section.
+
+    ScopedPointer<ResizableCornerComponent> resizer;
+    ComponentBoundsConstrainer resizeLimits;
+
+
+
+	AudioPlayHead::CurrentPositionInfo lastDisplayedPosition;
+
+    CompressorAudioProcessor* getProcessor() const
+    {
+        return static_cast <CompressorAudioProcessor*> (getAudioProcessor());
+    }
+
+    void displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos);
+
+    //[/UserVariables]
+
+    //==============================================================================
+    TextButton* buttonONOFF;
+    Label* label;
+    Slider* sliderThreshold;
+    Label* label2;
+    Slider* sliderRatio;
+    Label* label3;
+    Slider* sliderGain;
+    Label* label7;
+    Slider* sliderAttack;
+    Label* label5;
+    Slider* sliderRelease;
+    Label* label6;
+    Image cachedImage_brushedMetalDark_jpg;
+
+
+    //==============================================================================
+    // (prevent copy constructor and operator= being generated..)
+    CompressorAudioProcessorEditor (const CompressorAudioProcessorEditor&);
+    const CompressorAudioProcessorEditor& operator= (const CompressorAudioProcessorEditor&);
+};
+
+
+#endif   // __JUCER_HEADER_COMPRESSORAUDIOPROCESSOREDITOR_PLUGINEDITOR_75AA535A__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/compressor/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,293 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Compressor: dynamic range compression effect
+  See textbook Chapter 6: Dynamics Processing
+ 
+  Code by Joshua Reiss, Brecht de Man and Andrew McPherson
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+const float tau = 200;
+CompressorAudioProcessor::CompressorAudioProcessor()
+	// Initializer List
+	:
+	inputBuffer(1,1),
+	nhost(0)
+{
+	lastUIWidth = 850; 
+    lastUIHeight = 650;
+    lastPosInfo.resetToDefault();
+}
+CompressorAudioProcessor::~CompressorAudioProcessor()
+{
+}
+//==============================================================================
+void CompressorAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback initialisation that you need.
+	M = round(getNumInputChannels()/2);
+	samplerate = (float)getSampleRate();
+	bufferSize = getBlockSize();
+	// Allocate a lot of dynamic memory here
+	x_g					.allocate(bufferSize, true);
+	x_l					.allocate(bufferSize, true);			
+	y_g					.allocate(bufferSize, true);				
+	y_l					.allocate(bufferSize, true);	
+	c					.allocate(bufferSize, true);
+	yL_prev=0;
+	autoTime = false;
+	compressorONOFF = false;
+	resetAll();
+}
+void CompressorAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this to free up any spare memory, etc.
+}
+void CompressorAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+	if (compressorONOFF)
+	{
+		inputBuffer.setSize(M,bufferSize);
+		inputBuffer.clear();
+		for (int m = 0 ; m < M ; ++m)
+		{
+			if ( (threshold< 0) )
+			{
+				inputBuffer.clear(m,0,bufferSize);
+				// Mix down left-right to analyse the input		
+				inputBuffer.addFrom(m,0,buffer,m*2,0,bufferSize,0.5);
+				inputBuffer.addFrom(m,0,buffer,m*2+1,0,bufferSize,0.5);
+				// compression : calculates the control voltage
+				compressor(inputBuffer,m);
+				// apply control voltage to the audio signal
+				for (int i = 0 ; i < bufferSize ; ++i)
+				{
+					buffer.getSampleData(2*m+0)[i] *= c[i];			
+					buffer.getSampleData(2*m+1)[i] *= c[i];
+				}
+				inputBuffer.clear(m,0,bufferSize);
+				// Mix down left-right to analyse the output
+				inputBuffer.addFrom(m,0,buffer,m*2,0,bufferSize,0.5);
+				inputBuffer.addFrom(m,0,buffer,m*2+1,0,bufferSize,0.5);
+			}
+		}
+	}
+}
+// compressor functions
+void CompressorAudioProcessor::compressor(AudioSampleBuffer &buffer, int m)
+{
+	alphaAttack = exp(-1/(0.001 * samplerate * tauAttack));
+	alphaRelease= exp(-1/(0.001 * samplerate * tauRelease));
+	for (int i = 0 ; i < bufferSize ; ++i)
+	{
+		//Level detection- estimate level using peak detector
+		if (fabs(buffer.getSampleData(m)[i]) < 0.000001) x_g[i] =-120;
+		else x_g[i] =20*log10(fabs(buffer.getSampleData(m)[i]));
+		//Gain computer- static apply input/output curve
+		if (x_g[i] >= threshold) y_g[i] = threshold+ (x_g[i] - threshold) / ratio;
+		else y_g[i] = x_g[i];
+		x_l[i] = x_g[i] - y_g[i];
+		//Ballistics- smoothing of the gain 
+		if (x_l[0]>yL_prev)  y_l[i]=alphaAttack * yL_prev+(1 - alphaAttack ) * x_l[i] ; 
+		else				 y_l[i]=alphaRelease* yL_prev+(1 - alphaRelease) * x_l[i] ;
+		//find control
+		c[i] = pow(10,(makeUpGain - y_l[i])/20);
+		yL_prev=y_l[i];
+	}
+}
+template <class T> const T& CompressorAudioProcessor::max( const T& a, const T& b )
+{
+  return (a < b) ? b : a;
+}
+void CompressorAudioProcessor::resetAll()
+{
+		tauAttack=0;tauRelease = 0;
+		alphaAttack=0;alphaRelease = 0;
+		threshold = 0;
+		ratio= 1;
+		makeUpGain= 0;
+		yL_prev=0;
+	for (int i = 0 ; i < bufferSize ; ++i)
+	{
+		x_g[i] = 0;	y_g[i] = 0;
+		x_l[i] = 0;	y_l[i] = 0;	
+		c[i] = 0;
+	}
+}
+//////////////////////////////////////////////
+float CompressorAudioProcessor::getThreshold()
+{
+	return threshold;
+}
+float CompressorAudioProcessor::getRatio()
+{
+	return ratio;
+}
+float CompressorAudioProcessor::getGain()
+{
+	return makeUpGain;//problem?
+}
+float CompressorAudioProcessor::getAttackTime()
+{
+	return tauAttack;
+}
+float CompressorAudioProcessor::getReleaseTime()
+{
+	return tauRelease;
+}
+////////////////////////////////////////////////////////
+void CompressorAudioProcessor::setThreshold(float T)
+{
+	threshold= T;
+}
+void CompressorAudioProcessor::setGain(float G)
+{
+	makeUpGain= G;
+}
+void CompressorAudioProcessor::setRatio(float R)
+{
+	ratio= R;
+}
+void CompressorAudioProcessor::setAttackTime(float A)
+{
+	tauAttack = A;
+}
+void CompressorAudioProcessor::setReleaseTime(float R)
+{
+	tauRelease = R;
+}
+bool CompressorAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+AudioProcessorEditor* CompressorAudioProcessor::createEditor()
+{
+    return new CompressorAudioProcessorEditor (this);
+}
+//==============================================================================
+void CompressorAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+//Use this to store your parameters in memory block, either as raw data, or use XML or ValueTree classes as intermediaries to make it easy to save and load complex data.
+}
+void CompressorAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+// Use this to restore your parameters from this memory block, whose contents will have been created by the getStateInformation() call.
+}
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new CompressorAudioProcessor();
+}
+int CompressorAudioProcessor::round(float inn)
+{
+	if (inn > 0) return (int) (inn + 0.5);
+	else return (int) (inn - 0.5);
+}
+const String CompressorAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+int CompressorAudioProcessor::getNumParameters()
+{
+    return 0;
+}
+float CompressorAudioProcessor::getParameter (int index)
+{
+    return 0.0f;
+}
+void CompressorAudioProcessor::setParameter (int index, float newValue)
+{
+}
+const String CompressorAudioProcessor::getParameterName (int index)
+{
+    return String::empty;
+}
+const String CompressorAudioProcessor::getParameterText (int index)
+{
+    return String::empty;
+}
+const String CompressorAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+const String CompressorAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+bool CompressorAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+bool CompressorAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+bool CompressorAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double CompressorAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+bool CompressorAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+bool CompressorAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+int CompressorAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+int CompressorAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+void CompressorAudioProcessor::setCurrentProgram (int index)
+{
+}
+const String CompressorAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+void CompressorAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/compressor/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,122 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Compressor: dynamic range compression effect
+  See textbook Chapter 6: Dynamics Processing
+ 
+  Code by Joshua Reiss, Brecht de Man and Andrew McPherson
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_88534BAA__
+#define __PLUGINPROCESSOR_H_88534BAA__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include <math.h>
+class CompressorAudioProcessor  : public AudioProcessor
+{
+public:
+    CompressorAudioProcessor();
+    ~CompressorAudioProcessor();
+	
+	int bufferSize;
+	
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+	void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+	
+	void compressor(AudioSampleBuffer &buffer, int m);// compressor functions
+
+	template <class T> const T& max ( const T& a, const T& b );
+
+    AudioProcessorEditor* createEditor();
+
+    bool hasEditor() const;
+
+	AudioPlayHead::CurrentPositionInfo lastPosInfo;
+ 
+	int round(float inn);
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+
+	float getThreshold();
+	float getRatio();
+	float getGain();
+	float getAttackTime();
+	float getReleaseTime();
+	void setThreshold(float T);
+	void setGain(float G);
+	void setRatio(float R);
+	void setAttackTime(float A);
+	void setReleaseTime(float R);
+	void resetAll();
+
+	// parameters
+
+	bool compressorONOFF;
+	int M;
+	bool autoTime;
+
+private:
+    AudioSampleBuffer inputBuffer;
+
+//	int bufferSize;
+    //these are used to persist UI's size- values are stored along with filter's other parameters, and UI component will update them when it gets resized.
+	int lastUIWidth, lastUIHeight;
+		
+	HeapBlock <float> x_g, x_l,y_g, y_l,c;// input, output, control
+		// parameters
+	float ratio,threshold,makeUpGain,tauAttack,tauRelease,alphaAttack,alphaRelease,yL_prev;
+	int nhost;
+	int samplerate;
+
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CompressorAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_88534BAA__
Binary file effects/delay/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/delay/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,149 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Delay: basic delay effect with feedback
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+DelayAudioProcessorEditor::DelayAudioProcessorEditor (DelayAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      delayLengthLabel_("", "Delay (sec):"),
+      feedbackLabel_("", "Feedback:"),
+      dryMixLabel_("", "Dry Mix Level:"),
+      wetMixLabel_("", "Delayed Mix Level:")
+{
+
+    // Set up the sliders
+    addAndMakeVisible (&delayLengthSlider_);
+    delayLengthSlider_.setSliderStyle (Slider::Rotary);
+    delayLengthSlider_.addListener (this);
+    delayLengthSlider_.setRange (0.01, 2.0, 0.01);
+    
+    addAndMakeVisible (&feedbackSlider_);
+    feedbackSlider_.setSliderStyle (Slider::Rotary);
+    feedbackSlider_.addListener (this);
+    feedbackSlider_.setRange (0.0, 0.995, 0.005);
+    
+    addAndMakeVisible (&dryMixSlider_);
+    dryMixSlider_.setSliderStyle (Slider::Rotary);
+    dryMixSlider_.addListener (this);
+    dryMixSlider_.setRange (0.0, 1.0, 0.01);
+    
+    addAndMakeVisible (&wetMixSlider_);
+    wetMixSlider_.setSliderStyle (Slider::Rotary);
+    wetMixSlider_.addListener (this);
+    wetMixSlider_.setRange (0.0, 1.0, 0.01);
+    
+    delayLengthLabel_.attachToComponent(&delayLengthSlider_, false);
+    delayLengthLabel_.setFont(Font (11.0f));
+    
+    feedbackLabel_.attachToComponent(&feedbackSlider_, false);
+    feedbackLabel_.setFont(Font (11.0f));
+    
+    dryMixLabel_.attachToComponent(&dryMixSlider_, false);
+    dryMixLabel_.setFont(Font (11.0f));
+    
+    wetMixLabel_.attachToComponent(&wetMixSlider_, false);
+    wetMixLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 140, 500, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+DelayAudioProcessorEditor::~DelayAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void DelayAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void DelayAudioProcessorEditor::resized()
+{
+    delayLengthSlider_.setBounds (20, 20, 150, 40);
+    feedbackSlider_.setBounds (200, 20, 150, 40);
+    dryMixSlider_.setBounds(20, 80, 150, 40);
+    wetMixSlider_.setBounds(200, 80, 150, 40);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void DelayAudioProcessorEditor::timerCallback()
+{
+    DelayAudioProcessor* ourProcessor = getProcessor();
+    
+    delayLengthSlider_.setValue(ourProcessor->delayLength_, dontSendNotification);
+    feedbackSlider_.setValue(ourProcessor->feedback_, dontSendNotification);
+    dryMixSlider_.setValue(ourProcessor->dryMix_, dontSendNotification);
+    wetMixSlider_.setValue(ourProcessor->wetMix_, dontSendNotification);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void DelayAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &delayLengthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (DelayAudioProcessor::kDelayLengthParam,
+                                                   (float)delayLengthSlider_.getValue());
+    }
+    else if (slider == &feedbackSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (DelayAudioProcessor::kFeedbackParam,
+                                                   (float)feedbackSlider_.getValue());
+    }
+    else if (slider == &dryMixSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (DelayAudioProcessor::kDryMixParam,
+                                                   (float)dryMixSlider_.getValue());
+    }
+    else if (slider == &wetMixSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (DelayAudioProcessor::kWetMixParam,
+                                                   (float)wetMixSlider_.getValue());
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/delay/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,68 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Delay: basic delay effect with feedback
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class DelayAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public Timer
+{
+public:
+    DelayAudioProcessorEditor (DelayAudioProcessor* ownerFilter);
+    ~DelayAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    
+private:
+    Label delayLengthLabel_, feedbackLabel_, dryMixLabel_, wetMixLabel_;
+    Slider delayLengthSlider_, feedbackSlider_, dryMixSlider_, wetMixSlider_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    DelayAudioProcessor* getProcessor() const
+    {
+        return static_cast <DelayAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/delay/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,366 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Delay: basic delay effect with feedback
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+//==============================================================================
+DelayAudioProcessor::DelayAudioProcessor() : delayBuffer_ (2, 1)
+{
+    // Set default values:
+    delayLength_ = 0.5;
+    dryMix_ = 1.0;
+    wetMix_ = 0.5;
+    feedback_ = 0.75;
+    delayBufferLength_ = 1;
+    
+    // Start the circular buffer pointers at the beginning
+    delayReadPosition_ = 0;
+    delayWritePosition_ = 0;
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 140;
+}
+
+DelayAudioProcessor::~DelayAudioProcessor()
+{
+}
+
+//==============================================================================
+const String DelayAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int DelayAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float DelayAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kDryMixParam:     return dryMix_;
+        case kWetMixParam:     return wetMix_;
+        case kFeedbackParam:   return feedback_;
+        case kDelayLengthParam:return delayLength_;
+        default:               return 0.0f;
+    }
+}
+
+void DelayAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kDryMixParam:
+            dryMix_ = newValue;
+            break;
+        case kWetMixParam:
+            wetMix_ = newValue;
+            break;
+        case kFeedbackParam:
+            feedback_ = newValue;
+            break;
+        case kDelayLengthParam:
+            delayLength_ = newValue;
+            delayReadPosition_ = (int)(delayWritePosition_ - (delayLength_ * getSampleRate())
+                                       + delayBufferLength_) % delayBufferLength_;
+            break;
+        default:
+            break;
+    }
+}
+
+const String DelayAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kDryMixParam:     return "dry mix";
+        case kWetMixParam:     return "wet mix";
+        case kFeedbackParam:   return "feedback";
+        case kDelayLengthParam:return "delay";
+        default:               break;
+    }
+    
+    return String::empty;
+}
+
+const String DelayAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String DelayAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String DelayAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool DelayAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool DelayAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool DelayAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+double DelayAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+bool DelayAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool DelayAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int DelayAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int DelayAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void DelayAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String DelayAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void DelayAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void DelayAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Allocate and zero the delay buffer (size will depend on current sample rate)
+    // Sanity check the result so we don't end up with any zero-length calculations
+    delayBufferLength_ = (int)(2.0*sampleRate);
+    if(delayBufferLength_ < 1)
+        delayBufferLength_ = 1;
+    delayBuffer_.setSize(2, delayBufferLength_);
+    delayBuffer_.clear();
+    
+    // This method gives us the sample rate. Use this to figure out what the delay position
+    // offset should be (since it is specified in seconds, and we need to convert it to a number
+    // of samples)
+    delayReadPosition_ = (int)(delayWritePosition_ - (delayLength_ * getSampleRate())
+                               + delayBufferLength_) % delayBufferLength_;
+}
+
+void DelayAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    // The delay buffer will stay in memory until the effect is unloaded.
+}
+
+void DelayAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    delayBuffer_.clear();
+}
+
+
+void DelayAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel, dpr, dpw; // dpr = delay read pointer; dpw = delay write pointer
+    
+    // Go through each channel of audio that's passed in. In this example we apply identical
+    // effects to each channel, regardless of how many input channels there are. For some effects, like
+    // a stereo chorus or panner, you might do something different for each channel.
+    
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // delayData is the circular buffer for implementing delay on this channel
+        float* delayData = delayBuffer_.getSampleData (jmin (channel, delayBuffer_.getNumChannels() - 1));
+        
+        // Make a temporary copy of any state variables declared in PluginProcessor.h which need to be
+        // maintained between calls to processBlock(). Each channel needs to be processed identically
+        // which means that the activity of processing one channel can't affect the state variable for
+        // the next channel.
+        
+        dpr = delayReadPosition_;
+        dpw = delayWritePosition_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+            float out = 0.0;
+            
+            // In this example, the output is the input plus the contents of the delay buffer (weighted by delayMix)
+            // The last term implements a tremolo (variable amplitude) on the whole thing.
+            
+            out = (dryMix_ * in + wetMix_ * delayData[dpr]);
+            
+            // Store the current information in the delay buffer. delayData[dpr] is the delay sample we just read,
+            // i.e. what came out of the buffer. delayData[dpw] is what we write to the buffer, i.e. what goes in
+            
+            delayData[dpw] = in + (delayData[dpr] * feedback_);
+            
+            if (++dpr >= delayBufferLength_)
+                dpr = 0;
+            if (++dpw >= delayBufferLength_)
+                dpw = 0;
+            
+            // Store the output sample in the buffer, replacing the input
+            channelData[i] = out;
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    
+    delayReadPosition_ = dpr;
+    delayWritePosition_ = dpw;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool DelayAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* DelayAudioProcessor::createEditor()
+{
+    return new DelayAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void DelayAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("delayLength", delayLength_);
+    xml.setAttribute("feedback", feedback_);
+    xml.setAttribute("dryMix", dryMix_);
+    xml.setAttribute("wetMix", wetMix_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void DelayAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            delayLength_  = (float)xmlState->getDoubleAttribute("delayLength", delayLength_);
+            feedback_     = (float)xmlState->getDoubleAttribute("feedback", feedback_);
+            dryMix_       = (float)xmlState->getDoubleAttribute("dryMix", dryMix_);
+            wetMix_       = (float)xmlState->getDoubleAttribute("wetMix", wetMix_);
+        }
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new DelayAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/delay/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,121 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Delay: basic delay effect with feedback
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht de Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class DelayAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    DelayAudioProcessor();
+    ~DelayAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kDelayLengthParam = 0,
+        kDryMixParam,
+        kWetMixParam,
+        kFeedbackParam,
+        kNumParameters
+    };
+    
+    // Adjustable parameters:
+    float delayLength_; // Length of delay line in seconds
+    float dryMix_;      // Mix level of original signal (0-1)
+    float wetMix_;      // Mix level of delayed signal (0-1)
+    float feedback_;    // Feedback level (0-just less than 1)
+    
+private:
+    // Circular buffer variables for implementing delay
+    AudioSampleBuffer delayBuffer_;
+    int delayBufferLength_;
+    int delayReadPosition_, delayWritePosition_;
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DelayAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/delay/delay.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="UxOELr" name="delay" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.delayeffect" buildVST="1" buildRTAS="0"
+              buildAU="1" pluginName="Delay" pluginDesc="Delay / Echo effect"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="dlay" pluginChannelConfigs="{1, 1}, {2, 2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0"
+              pluginTailLength="2" pluginEditorRequiresKeys="0" pluginAUExportPrefix="delayAU"
+              pluginAUViewClass="delayAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.delay" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="qIfIvz" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="delay"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="delay"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="WThLq7" name="delay">
+    <GROUP id="{1ED19952-C421-BB14-95E5-0E0A816C5FEF}" name="Source">
+      <FILE id="U2h43O" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="efSU0L" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="Z7JA2w" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="vSXXUr" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/distortion/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/distortion/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,317 @@
+/*
+  ==============================================================================
+
+  This is an automatically generated GUI class created by the Introjucer!
+
+  Be careful when adding custom code to these files, as only the code within
+  the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
+  and re-saved.
+
+  Created with Introjucer version: 3.1.0
+
+  ------------------------------------------------------------------------------
+
+  The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
+  Copyright 2004-13 by Raw Material Software Ltd.
+
+  ==============================================================================
+*/
+
+//[Headers] You can add your own extra header files here...
+#include "PluginProcessor.h"
+//[/Headers]
+
+#include "PluginEditor.h"
+
+
+//[MiscUserDefs] You can add your own user definitions and misc code here...
+
+//LookAndFeelCustom* DistortionAudioProcessorEditor::customLookAndFeel = NULL;
+
+//[/MiscUserDefs]
+
+//==============================================================================
+DistortionAudioProcessorEditor::DistortionAudioProcessorEditor (DistortionAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter)
+{
+    addAndMakeVisible (resetButton = new TextButton ("on off button"));
+    resetButton->setButtonText (TRANS("RESET"));
+    resetButton->addListener (this);
+    resetButton->setColour (TextButton::buttonColourId, Colour (0xffad8585));
+    resetButton->setColour (TextButton::buttonOnColourId, Colours::red);
+
+    addAndMakeVisible (gainSlider = new Slider ("new slider"));
+    gainSlider->setRange (-24, 24, 0.01);
+    gainSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    gainSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    gainSlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    gainSlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    gainSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    gainSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    gainSlider->addListener (this);
+
+    addAndMakeVisible (typeComboBox = new ComboBox ("new combo box"));
+    typeComboBox->setEditableText (false);
+    typeComboBox->setJustificationType (Justification::centredLeft);
+    typeComboBox->setTextWhenNothingSelected (String::empty);
+    typeComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)"));
+    typeComboBox->addItem (TRANS("Hard clipping"), 1);
+    typeComboBox->addItem (TRANS("Soft clipping (poly)"), 2);
+    typeComboBox->addItem (TRANS("Soft clipping (exp)"), 3);
+    typeComboBox->addItem (TRANS("Full-wave rectifier"), 4);
+    typeComboBox->addItem (TRANS("Half-wave rectifier"), 5);
+    typeComboBox->addListener (this);
+
+
+    //[UserPreSize]
+    addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits));
+    resizeLimits.setSizeLimits (150, 150, 850, 290);
+    //[/UserPreSize]
+
+    setSize (280, 320);
+
+
+    //[Constructor] You can add your own custom stuff here..
+
+	UpdateInterfaceValues();
+
+	//************************************ SET LOOKANDFEEL **********************************
+//	if( customLookAndFeel == NULL )
+//	{
+//		customLookAndFeel = new LookAndFeelCustom();
+//		LookAndFeel::setDefaultLookAndFeel (/*&*/customLookAndFeel);
+//	}
+
+	//***************************************************************************************
+
+    startTimer (50);
+
+    //[/Constructor]
+}
+
+DistortionAudioProcessorEditor::~DistortionAudioProcessorEditor()
+{
+    //[Destructor_pre]. You can add your own custom destruction code here..
+    //[/Destructor_pre]
+
+    resetButton = nullptr;
+    gainSlider = nullptr;
+    typeComboBox = nullptr;
+
+
+    //[Destructor]. You can add your own custom destruction code here..
+
+    //[/Destructor]
+}
+
+//==============================================================================
+void DistortionAudioProcessorEditor::paint (Graphics& g)
+{
+    //[UserPrePaint] Add your own custom painting code here..
+    //[/UserPrePaint]
+
+    g.fillAll (Colour (0xff880909));
+
+    g.setColour (Colours::red);
+    g.fillEllipse (96.0f, 158.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (112.0f, 174.0f, 56.0f, 56.0f);
+
+    g.setColour (Colour (0xff650000));
+    g.fillRoundedRectangle (54.0f, 6.0f, 175.0f, 37.0f, 10.000f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 22.30f, Font::bold));
+    g.drawText (TRANS("distortion"),
+                6, 13, 277, 24,
+                Justification::centredTop, true);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("GAIN"),
+                3, 133, 275, 30,
+                Justification::centred, true);
+
+    //[UserPaint] Add your own custom painting code here..
+
+    // Knob bounds
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 11.00f, Font::plain));
+    g.drawText (String(gainSlider->getMinimum()),
+                59, 229, 54, 30,
+                Justification::centredRight, true);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 11.00f, Font::plain));
+    g.drawText (String(gainSlider->getMaximum()),
+                168, 229, 54, 30,
+                Justification::centredLeft, true);
+
+    // Version number
+    String str("v ");
+    str.append(JucePlugin_VersionString, 4);
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 11.00f, Font::plain));
+    g.drawText (str,
+                189, 37, 54, 30,
+                Justification::centredLeft, true);
+
+    //[/UserPaint]
+}
+
+void DistortionAudioProcessorEditor::resized()
+{
+    resetButton->setBounds (236, 5, 39, 23);
+    gainSlider->setBounds (58, 162, 164, 102);
+    typeComboBox->setBounds (69, 77, 150, 24);
+    //[UserResized] Add your own custom resize handling here..
+    getProcessor()->_lastUIWidth = getWidth();
+    getProcessor()->_lastUIHeight = getHeight();
+    //[/UserResized]
+}
+
+void DistortionAudioProcessorEditor::buttonClicked (Button* buttonThatWasClicked)
+{
+    //[UserbuttonClicked_Pre]
+	DistortionAudioProcessor* ourProcessor = getProcessor();
+
+    //[/UserbuttonClicked_Pre]
+
+    if (buttonThatWasClicked == resetButton)
+    {
+        //[UserButtonCode_resetButton] -- add your button handler code here..
+		ourProcessor->Reset();
+        //[/UserButtonCode_resetButton]
+    }
+
+    //[UserbuttonClicked_Post]
+	UpdateInterfaceValues();
+    //[/UserbuttonClicked_Post]
+}
+
+void DistortionAudioProcessorEditor::sliderValueChanged (Slider* sliderThatWasMoved)
+{
+    //[UsersliderValueChanged_Pre]
+    DistortionAudioProcessor* ourProcessor = getProcessor();
+    //[/UsersliderValueChanged_Pre]
+
+    if (sliderThatWasMoved == gainSlider)
+    {
+        //[UserSliderCode_gainSlider] -- add your slider handling code here..
+        ourProcessor->SetGainIndB(gainSlider->getValue());
+        //[/UserSliderCode_gainSlider]
+    }
+
+    //[UsersliderValueChanged_Post]
+    //[/UsersliderValueChanged_Post]
+}
+
+void DistortionAudioProcessorEditor::comboBoxChanged (ComboBox* comboBoxThatHasChanged)
+{
+    //[UsercomboBoxChanged_Pre]
+    DistortionAudioProcessor* ourProcessor = getProcessor();
+    //[/UsercomboBoxChanged_Pre]
+
+    if (comboBoxThatHasChanged == typeComboBox)
+    {
+        //[UserComboBoxCode_typeComboBox] -- add your combo box handling code here..
+        ourProcessor->SetType((DistortionAudioProcessor::Types) typeComboBox->getSelectedItemIndex());
+        //[/UserComboBoxCode_typeComboBox]
+    }
+
+    //[UsercomboBoxChanged_Post]
+    //[/UsercomboBoxChanged_Post]
+}
+
+
+
+//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
+void DistortionAudioProcessorEditor::SetComboBoxActivity(ComboBox * comboBox, bool active)
+{
+	if (active){
+		comboBox->setColour(ComboBox::backgroundColourId, Colours::white);
+	}else{
+		comboBox->setColour(ComboBox::backgroundColourId, Colours::grey);
+	}
+}
+
+void DistortionAudioProcessorEditor::SetSliderActivity(Slider * slider, bool active)
+{
+	if (active){
+		slider->setColour (Slider::rotarySliderFillColourId, Colour (0xffff5c00));
+		slider->addListener (this);
+	}else{
+		slider->setColour (Slider::rotarySliderFillColourId, Colours::grey);
+		slider->removeListener(this);
+	}
+}
+
+void DistortionAudioProcessorEditor::UpdateInterfaceValues()
+{
+	DistortionAudioProcessor* ourProcessor = getProcessor();
+
+    // Update Sliders
+    gainSlider	->setValue(ourProcessor->_gainIndB,dontSendNotification);
+    typeComboBox->setItemEnabled((int) ourProcessor->GetType(), true);
+}
+
+// This timer periodically checks whether any of the parameters have changed...
+void DistortionAudioProcessorEditor::timerCallback()
+{
+	//DistortionAudioProcessor* ourProcessor = getProcessor();
+
+
+}
+
+//[/MiscUserCode]
+
+
+//==============================================================================
+#if 0
+/*  -- Introjucer information section --
+
+    This is where the Introjucer stores the metadata that describe this GUI layout, so
+    make changes in here at your peril!
+
+BEGIN_JUCER_METADATA
+
+<JUCER_COMPONENT documentType="Component" className="DistortionAudioProcessorEditor"
+                 componentName="" parentClasses="public AudioProcessorEditor, public Timer"
+                 constructorParams="DistortionAudioProcessor* ownerFilter" variableInitialisers="AudioProcessorEditor (ownerFilter)"
+                 snapPixels="8" snapActive="0" snapShown="1" overlayOpacity="0.330"
+                 fixedSize="1" initialWidth="280" initialHeight="320">
+  <BACKGROUND backgroundColour="ff880909">
+    <ELLIPSE pos="96 158 88 88" fill="solid: ffff0000" hasStroke="0"/>
+    <ELLIPSE pos="112 174 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <ROUNDRECT pos="54 6 175 37" cornerSize="10" fill="solid: ff650000" hasStroke="0"/>
+    <TEXT pos="6 13 277 24" fill="solid: ffffffff" hasStroke="0" text="distortion"
+          fontname="Default monospaced font" fontsize="22.300000000000000711"
+          bold="1" italic="0" justification="12"/>
+    <TEXT pos="3 133 275 30" fill="solid: ffffffff" hasStroke="0" text="GAIN"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+  </BACKGROUND>
+  <TEXTBUTTON name="on off button" id="85bb206557e8f33d" memberName="resetButton"
+              virtualName="" explicitFocusOrder="0" pos="236 5 39 23" bgColOff="ffad8585"
+              bgColOn="ffff0000" buttonText="RESET" connectedEdges="0" needsCallback="1"
+              radioGroupId="0"/>
+  <SLIDER name="new slider" id="b7cd5ae6d0a3bfc6" memberName="gainSlider"
+          virtualName="" explicitFocusOrder="0" pos="58 162 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="-24" max="24" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <COMBOBOX name="new combo box" id="c80cc28cc68984e4" memberName="typeComboBox"
+            virtualName="" explicitFocusOrder="0" pos="69 77 150 24" editable="0"
+            layout="33" items="Hard clipping&#10;Soft clipping (poly)&#10;Soft clipping (exp)&#10;Full-wave rectifier&#10;Half-wave rectifier"
+            textWhenNonSelected="" textWhenNoItems="(no choices)"/>
+</JUCER_COMPONENT>
+
+END_JUCER_METADATA
+*/
+#endif
+
+
+//[EndFile] You can add extra defines here...
+//[/EndFile]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/distortion/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,100 @@
+/*
+  ==============================================================================
+
+  This is an automatically generated GUI class created by the Introjucer!
+
+  Be careful when adding custom code to these files, as only the code within
+  the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
+  and re-saved.
+
+  Created with Introjucer version: 3.1.0
+
+  ------------------------------------------------------------------------------
+
+  The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
+  Copyright 2004-13 by Raw Material Software Ltd.
+
+  ==============================================================================
+*/
+
+#ifndef __JUCE_HEADER_4586FE55775717B6__
+#define __JUCE_HEADER_4586FE55775717B6__
+
+//[Headers]     -- You can add your own extra header files here --
+
+//#include "../../Shared/LookAndFeelCustom.h" //used to be _nographics
+//[/Headers]
+
+
+
+//==============================================================================
+/**
+                                                                    //[Comments]
+    An auto-generated component, created by the Jucer.
+
+    Describe your class and how it works here!
+                                                                    //[/Comments]
+*/
+class DistortionAudioProcessorEditor  : public AudioProcessorEditor,
+                                        public Timer,
+                                        public ButtonListener,
+                                        public SliderListener,
+                                        public ComboBoxListener
+{
+public:
+    //==============================================================================
+    DistortionAudioProcessorEditor (DistortionAudioProcessor* ownerFilter);
+    ~DistortionAudioProcessorEditor();
+
+    //==============================================================================
+    //[UserMethods]     -- You can add your own custom methods in this section.
+	void timerCallback();
+    //[/UserMethods]
+
+    void paint (Graphics& g);
+    void resized();
+    void buttonClicked (Button* buttonThatWasClicked);
+    void sliderValueChanged (Slider* sliderThatWasMoved);
+    void comboBoxChanged (ComboBox* comboBoxThatHasChanged);
+
+
+
+private:
+    //[UserVariables]   -- You can add your own custom variables in this section.
+
+    ScopedPointer<ResizableCornerComponent> resizer;
+    ComponentBoundsConstrainer resizeLimits;
+
+	//static LookAndFeelCustom* customLookAndFeel;
+
+	AudioPlayHead::CurrentPositionInfo lastDisplayedPosition;
+
+    DistortionAudioProcessor* getProcessor() const
+    {
+        return static_cast <DistortionAudioProcessor*> (getAudioProcessor());
+    }
+
+    void displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos);
+
+	void UpdateInterfaceValues();
+
+	void SetComboBoxActivity(ComboBox * comboBox, bool active);
+	void SetSliderActivity(Slider * slider, bool active);
+
+
+    //[/UserVariables]
+
+    //==============================================================================
+    ScopedPointer<TextButton> resetButton;
+    ScopedPointer<Slider> gainSlider;
+    ScopedPointer<ComboBox> typeComboBox;
+
+
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DistortionAudioProcessorEditor)
+};
+
+//[EndFile] You can add extra defines here...
+//[/EndFile]
+
+#endif   // __JUCE_HEADER_4586FE55775717B6__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/distortion/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,386 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Distortion: distortion effect using different characteristic curves
+  See textbook Chapter 7: Overdrive, Distortion and Fuzz
+ 
+  Code by Brecht De Man, Joshua Reiss and Andrew McPherson
+ 
+  When using this code (or a modified version thereof), please cite:
+ 
+  Brecht De Man and Joshua D. Reiss, "Adaptive Control of Amplitude
+  Distortion Effects," 53rd Conference of the Audio Engineering Society,
+  2014.
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+const float DENORMAL_THRESH = 1e-6f;
+
+#if JUCE_INTEL
+ #define JUCE_SNAP_TO_ZERO(n)    if (! (n < -1.0e-8 || n > 1.0e-8)) n = 0;
+#else
+ #define JUCE_SNAP_TO_ZERO(n)
+#endif
+
+DistortionAudioProcessor::DistortionAudioProcessor()
+:
+    _numChannels            (1)
+    ,_numSamples			(1)  // dummy - will be set in prepareToPlay
+    ,_sampleRate			(1)  // dummy - will be set in prepareToPlay
+    ,_typeNumber            (_hardClipping) // standard
+    ,_currentTrackBuffer	(1,1)
+    ,_lastUIWidth			(850)
+    ,_lastUIHeight			(650)
+    
+{
+    Reset();
+}
+
+DistortionAudioProcessor::~DistortionAudioProcessor()
+{
+}
+
+//-----------------------------------------------------------------------------
+// P R E P A R E   T O   P L A Y
+void DistortionAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // If sample rate/block size changes or straight after construction
+    if (_numSamples != samplesPerBlock || _sampleRate != sampleRate)
+    {
+        _sampleRate  = sampleRate;
+        _numSamples  = samplesPerBlock;
+        _numChannels = getNumInputChannels();
+    }
+}
+
+
+//-----------------------------------------------------------------------------
+// P R O C E S S   B L O C K
+void DistortionAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    float gain = powf(10.0f, _gainIndB/20.f);
+    
+    
+    for (int channel = 0; channel < _numChannels; ++channel)
+    {
+        // Apply gain
+        buffer.applyGain(channel, 0, buffer.getNumSamples(), gain);
+        
+        // Put track audio data into _currentTrackBuffer
+        float * originalData = new float;
+        originalData = buffer.getSampleData(channel);
+        
+        // Apply distortion (sample per sample)
+        switch (_typeNumber) {
+            case _hardClipping:
+            {
+                float threshold = 0.5f;
+                for (int sample = 0; sample < buffer.getNumSamples(); ++sample)
+                {
+                    if(originalData[sample]  > threshold) // positive hard clipping
+                    {
+                        originalData[sample] = threshold;
+                    }
+                    else
+                    {
+                        if(originalData[sample]  < - threshold) // negative hard clipping
+                        {
+                            originalData[sample] = - threshold;
+                        }
+                    }
+                }
+                break;
+            }
+            
+            case _softClipping:
+            {
+                float threshold1 = 1.0f/3.0f;
+                float threshold2 = 2.0f/3.0f;
+                for (int sample = 0; sample < buffer.getNumSamples(); ++sample)
+                {
+                    if(originalData[sample]  > threshold1)
+                    {
+                        if(originalData[sample] > threshold2) // positive clipping
+                        {
+                            originalData[sample] = 1.0f;
+                        }
+                        else // soft knee (positive)
+                        {
+                            originalData[sample] = (3.0f - (2.0f - 3.0f*originalData[sample])*(2.0f - 3.0f*originalData[sample]))/3.0f;
+                        }
+                    }
+                    else
+                    {
+                        if(originalData[sample]  < -threshold1)
+                        {
+                            if(originalData[sample] < -threshold2) // negative clipping
+                            {
+                                originalData[sample] = -1.0f;
+                            }
+                            else // soft knee (negative)
+                            {
+                                originalData[sample] = - (3.0f - (2.0f + 3.0f*originalData[sample])*(2.0f + 3.0f*originalData[sample]))/3.0f;
+                            }
+                        }
+                        else // linear region (-1/3..1/3)
+                        {
+                            originalData[sample] *= 2.0f;
+                        }
+                    }
+                    
+                    originalData[sample] /= 2.0f; // divide all by 2 to compensate for extra 6 dB gain boost
+                }
+                break;
+            }
+                
+            case _softClippingExp:
+            {
+                for (int sample = 0; sample < buffer.getNumSamples(); ++sample)
+                {
+                    if (originalData[sample] > 0.0f) // positive
+                    {
+                        originalData[sample] = 1.0f - expf(-originalData[sample]);
+                    }
+                    else // negative
+                    {
+                        originalData[sample] = - 1.0f + expf(originalData[sample]);
+                    }
+                }
+                break;
+            }
+                
+            case _fullWaveRectifier:
+            {
+                for (int sample = 0; sample < buffer.getNumSamples(); ++sample)
+                {
+                    originalData[sample] = fabs(originalData[sample]);
+                }
+                break;
+            }
+                
+            case _halfWaveRectifier:
+            {
+                for (int sample = 0; sample < buffer.getNumSamples(); ++sample)
+                {
+                    originalData[sample] = 0.5f*(fabs(originalData[sample])+originalData[sample]);
+                }
+                break;
+            }
+                
+            default:
+                break;
+        }
+    }
+}
+
+
+//-----------------------------------------------------------------------------
+// R E S E T
+void DistortionAudioProcessor::Reset()
+{
+    _gainIndB   = 0.0f;
+    _typeNumber = _hardClipping;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+void DistortionAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this to free up any spare memory, etc.
+}
+
+
+bool DistortionAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* DistortionAudioProcessor::createEditor()
+{
+    return new DistortionAudioProcessorEditor (this);
+}
+
+
+//==============================================================================
+void DistortionAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // SAVE STATE INFO
+    XmlElement xml("Distortion_XML");
+    
+    // Knobs
+    xml.setAttribute("_gain"       ,_gainIndB);
+    
+    // Combo box
+    xml.setAttribute("_type"       ,(int) _typeNumber);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void DistortionAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // LOAD STATE INFO
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    // make sure that it's actually our type of XML object..
+    if(xmlState->hasTagName("Distortion_XML"))
+    {
+        
+        // Knobs
+        _gainIndB       = (float) xmlState->getDoubleAttribute("_gain",true);
+        
+        //Combo box
+        _typeNumber     = (DistortionAudioProcessor::Types) xmlState->getIntAttribute("_type",true);
+    }
+}
+
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new DistortionAudioProcessor();
+}
+
+const String DistortionAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+bool DistortionAudioProcessor::silenceInProducesSilenceOut() const
+{
+    return true;
+}
+
+int DistortionAudioProcessor::getNumParameters()
+{
+    return _PARAMtotalNumParams;
+}
+
+float DistortionAudioProcessor::getParameter (int index) // externally accessible
+{
+    switch (index)
+    {
+        case _PARAMdeviceReset:     return 0.0f;
+        case _PARAMgain:            return (GetGainIndB());
+        case _PARAMtype:            return (GetType());
+		default:					return 0.0f;
+    }
+}
+
+void DistortionAudioProcessor::setParameter (int index, float newValue) // externally accessible
+{
+    switch (index)
+    {
+        case _PARAMdeviceReset:
+            Reset();
+            break;
+        case _PARAMgain:
+            SetGainIndB(newValue);
+            break;
+        case _PARAMtype:
+            SetType((DistortionAudioProcessor::Types) roundFloatToInt(newValue*_numberOfTypes));
+            break;
+        default:
+            break;
+    }
+}
+
+const String DistortionAudioProcessor::getParameterName (int index) // externally accessible
+{
+    switch (index)
+    {
+        case _PARAMdeviceReset:     return "Reset";
+        case _PARAMgain:            return "Gain (dB)";
+        case _PARAMtype:            return "Type";
+		default:					break;
+    }
+    return String::empty;
+}
+
+const String DistortionAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String DistortionAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String DistortionAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool DistortionAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool DistortionAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool DistortionAudioProcessor::acceptsMidi() const
+{
+    #if JucePlugin_WantsMidiInput
+        return true;
+    #else
+        return false;
+    #endif
+}
+
+bool DistortionAudioProcessor::producesMidi() const
+{
+    #if JucePlugin_ProducesMidiOutput
+        return true;
+    #else
+        return false;
+    #endif
+}
+
+int DistortionAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int DistortionAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void DistortionAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String DistortionAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void DistortionAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/distortion/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,172 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Distortion: distortion effect using different characteristic curves
+  See textbook Chapter 7: Overdrive, Distortion and Fuzz
+ 
+  Code by Brecht De Man, Joshua Reiss and Andrew McPherson
+ 
+  When using this code (or a modified version thereof), please cite:
+ 
+  Brecht De Man and Joshua D. Reiss, "Adaptive Control of Amplitude
+  Distortion Effects," 53rd Conference of the Audio Engineering Society,
+  2014.
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_88534BAA__
+#define __PLUGINPROCESSOR_H_88534BAA__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include <math.h>
+
+class DistortionAudioProcessor  : public AudioProcessor
+{
+public:
+    DistortionAudioProcessor();
+    ~DistortionAudioProcessor();
+    
+    //==============================================================================
+	// V S T   M E T H O D S
+
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+	void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    AudioProcessorEditor* createEditor();
+	bool silenceInProducesSilenceOut() const;
+	virtual double getTailLengthSeconds() const {return 0;};
+    bool hasEditor() const;
+    const String getName() const;
+    int getNumParameters();
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+
+	//==============================================================================
+	// E N U M S
+
+	enum Parameters
+	{
+        _PARAMdeviceReset,
+        _PARAMgain,
+        _PARAMtype,
+        // add other parameters
+		_PARAMtotalNumParams
+	};
+    
+    
+    enum Types
+	{
+        _hardClipping = 0,
+        _softClipping,
+        _softClippingExp,
+        _fullWaveRectifier,
+        _halfWaveRectifier,
+        _numberOfTypes
+	};
+
+    //==============================================================================
+	// O U R   M E T H O D S
+    
+    void Reset();
+
+private:
+
+	// Accessors and mutators
+    inline float    GetGainIndB();
+    inline void     SetGainIndB(float gainIndB);
+    inline DistortionAudioProcessor::Types    GetType();
+    inline void     SetType(Types type);
+
+	int	_numChannels;
+	int	_numSamples;
+    int _sampleRate;
+    float _gainIndB;
+    
+    Types _typeNumber;
+
+	bool _isFirstFrame;
+
+	// Buffers
+	AudioSampleBuffer _currentTrackBuffer;
+
+	int _lastUIWidth, _lastUIHeight;
+    
+	friend class DistortionAudioProcessorEditor;
+    
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DistortionAudioProcessor);
+};
+
+//============================================================================= 
+// I N L I N E   F U N C T I O N S   C O D E   S E C T I O N 
+
+
+//-----------------------------------------------------------------------------
+//
+inline float
+DistortionAudioProcessor::GetGainIndB()
+{
+	return _gainIndB;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+DistortionAudioProcessor::SetGainIndB(float gainIndB)
+{
+	_gainIndB = gainIndB;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline DistortionAudioProcessor::Types
+DistortionAudioProcessor::GetType()
+{
+	return _typeNumber;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+DistortionAudioProcessor::SetType(Types type)
+{
+	_typeNumber = type;
+}
+
+#endif  // __PLUGINPROCESSOR_H_88534BAA__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/distortion/distortion.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="MBaMzn" name="distortion" projectType="audioplug" version="0.1"
+              bundleIdentifier="uk.ac.qmul.eecs.distortioneffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Distortion" pluginDesc="Distortion"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="dist" pluginChannelConfigs="{2,2},{1,1}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="distortionAU"
+              pluginAUViewClass="MasterCompressorAU_V1" pluginRTASCategory=""
+              jucerVersion="3.1.0" aaxIdentifier="uk.ac.qmul.eecs.distortioneffect"
+              pluginAAXCategory="" includeBinaryInAppConfig="1" buildVST3="0"
+              buildAAX="0" companyName="Reiss and McPherson">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="../../vstsdk2.4" postbuildCommand="&#10;# This script takes the build product and copies it to the AU, VST, and RTAS folders, depending on &#10;# which plugin types you've built&#10;&#10;original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME&#10;&#10;# this looks inside the binary to detect which platforms are needed.. &#10;copyAU=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'AudioUnit' | wc -l&#96;&#10;copyVST=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'VSTPlugin' | wc -l&#96;&#10;copyRTAS=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'CProcess' | wc -l&#96;&#10;copyAAX=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'ACFStartup' | wc -l&#96;&#10;&#10;if [ $copyAU -gt 0 ]; then&#10;  echo &quot;Copying to AudioUnit folder...&quot;&#10;  AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component&#10;  if [ -d &quot;$AU&quot; ]; then &#10;    rm -r &quot;$AU&quot;&#10;  fi&#10;&#10;  cp -r &quot;$original&quot; &quot;$AU&quot;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$AU/Contents/PkgInfo&quot;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$AU/Contents/$INFOPLIST_FILE&quot;&#10;&#10;  # Fix info.plist for AUs built with Xcode 3&#10;  if [ -f &quot;$DEVELOPER_DIR/Library/Developer/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp&quot; ]; then&#10;    echo&#10;  else&#10;    echo &quot;Removing AudioComponents entry from Info.plist because this is not a new-format AU&quot;&#10;    /usr/libexec/PlistBuddy -c &quot;Delete AudioComponents&quot; &quot;$AU/Contents/Info.plist&quot;&#10;  fi&#10;fi&#10;&#10;if [ $copyVST -gt 0 ]; then&#10;  echo &quot;Copying to VST folder...&quot;&#10;  VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst&#10;  if [ -d &quot;$VST&quot; ]; then &#10;    rm -r &quot;$VST&quot;&#10;  fi&#10;&#10;  cp -r &quot;$original&quot; &quot;$VST&quot;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST/Contents/PkgInfo&quot;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST/Contents/$INFOPLIST_FILE&quot;&#10;fi&#10;&#10;if [ $copyRTAS -gt 0 ]; then&#10;  echo &quot;Copying to RTAS folder...&quot;&#10;  RTAS=/Library/Application\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm&#10;  if [ -d &quot;$RTAS&quot; ]; then&#10;    rm -r &quot;$RTAS&quot;&#10;  fi&#10;&#10;  cp -r &quot;$original&quot; &quot;$RTAS&quot;&#10;fi&#10;&#10;if [ $copyAAX -gt 0 ]; then&#10;  echo &quot;Copying to AAX folder...&quot;&#10;&#10;  if [ -d &quot;/Applications/ProTools_3PDev/Plug-Ins&quot; ]; then&#10;    AAX1=&quot;/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#10;&#10;    if [ -d &quot;$AAX1&quot; ]; then&#10;      rm -r &quot;$AAX1&quot;&#10;    fi&#10;&#10;    cp -r &quot;$original&quot; &quot;$AAX1&quot;&#10;  fi&#10;&#10;  if [ -d &quot;/Library/Application Support/Avid/Audio/Plug-Ins&quot; ]; then&#10;    AAX2=&quot;/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#10;&#10;    if [ -d &quot;$AAX2&quot; ]; then&#10;      rm -r &quot;$AAX2&quot;&#10;    fi&#10;&#10;    cp -r &quot;$original&quot; &quot;$AAX2&quot;&#10;  fi&#10;fi&#10;">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       isDebug="1" optimisation="1" targetName="distortion"/>
+        <CONFIGURATION name="Release" osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       isDebug="0" optimisation="2" targetName="distortion"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="R56iUz" name="distortion">
+    <GROUP id="{839367BB-53A9-7137-E15E-D2DD800BA26D}" name="Source">
+      <FILE id="RUKlAk" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="uEbtTW" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="vo9R27" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="IiR9iQ" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/empty/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/empty/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,103 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Empty: template for an effect; passes input to output unmodified
+  See textbook Chapter 13: Building Audio Effect Plug-Ins
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+EmptyAudioProcessorEditor::EmptyAudioProcessorEditor (EmptyAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      volumeLabel_("", "Volume:"),
+      volumeSlider_("volume")
+{
+    // This is where our plugin's editor size is set.
+    // setSize(170, 80);
+    
+    // Set up the sliders
+    addAndMakeVisible(&volumeSlider_);
+    volumeSlider_.setSliderStyle(Slider::Rotary);
+    volumeSlider_.addListener(this);
+    volumeSlider_.setRange(0.0, 2.0, 0.01);
+    
+    volumeLabel_.attachToComponent(&volumeSlider_, false);
+    volumeLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(170, 100, 400, 160);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+EmptyAudioProcessorEditor::~EmptyAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void EmptyAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void EmptyAudioProcessorEditor::resized()
+{
+    volumeSlider_.setBounds(20, 20, 150, 40);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void EmptyAudioProcessorEditor::timerCallback()
+{
+    EmptyAudioProcessor* ourProcessor = getProcessor();
+    
+    volumeSlider_.setValue(ourProcessor->volume_, dontSendNotification);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void EmptyAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    if (slider == &volumeSlider_)
+    {
+        // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+        // by the host, rather than just modifying them directly, otherwise the host won't know
+        // that they've changed.
+        getProcessor()->setParameterNotifyingHost (EmptyAudioProcessor::kVolumeParam,
+                                                   (float)volumeSlider_.getValue());
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/empty/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,68 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Empty: template for an effect; passes input to output unmodified
+  See textbook Chapter 13: Building Audio Effect Plug-Ins
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class EmptyAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public Timer
+{
+public:
+    EmptyAudioProcessorEditor (EmptyAudioProcessor* ownerFilter);
+    ~EmptyAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    
+private:
+    Label volumeLabel_;
+    Slider volumeSlider_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    EmptyAudioProcessor* getProcessor() const
+    {
+        return static_cast <EmptyAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/empty/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,279 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Empty: template for an effect; passes input to output unmodified
+  See textbook Chapter 13: Building Audio Effect Plug-Ins
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+EmptyAudioProcessor::EmptyAudioProcessor()
+{
+    // Set default values:
+    
+    volume_ = 1.0;
+    lastUIWidth_ = 170;
+    lastUIHeight_ = 100;
+}
+
+EmptyAudioProcessor::~EmptyAudioProcessor()
+{
+}
+
+//==============================================================================
+const String EmptyAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int EmptyAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float EmptyAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kVolumeParam:     return volume_;
+        default:               return 0.0f;
+    }
+}
+
+void EmptyAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kVolumeParam:
+            volume_ = newValue;
+            break;
+        default:
+            break;
+    }
+}
+
+const String EmptyAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kVolumeParam:     return "volume";
+        default:               break;
+    }
+    
+    return String::empty;
+}
+
+const String EmptyAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String EmptyAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String EmptyAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool EmptyAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool EmptyAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool EmptyAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double EmptyAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool EmptyAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool EmptyAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int EmptyAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int EmptyAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void EmptyAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String EmptyAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void EmptyAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void EmptyAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback
+    // initialisation that you need..
+}
+
+void EmptyAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+}
+
+void EmptyAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    // Go through each channel of audio that's passed in
+    
+    for (int channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+
+            // Store the output sample back in the buffer
+            channelData[i] = in * volume_;
+        }
+    }
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool EmptyAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* EmptyAudioProcessor::createEditor()
+{
+    return new EmptyAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void EmptyAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("volume", volume_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void EmptyAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            volume_  = (float)xmlState->getDoubleAttribute("volume", volume_);
+        }
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new EmptyAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/empty/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,107 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Empty: template for an effect; passes input to output unmodified
+  See textbook Chapter 13: Building Audio Effect Plug-Ins
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class EmptyAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    EmptyAudioProcessor();
+    ~EmptyAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kVolumeParam = 0,
+        kNumParameters
+    };
+    
+    float volume_;
+private:
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (EmptyAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/empty/empty.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="AC7ScK" name="empty" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.emptyeffect" buildVST="1" buildRTAS="0"
+              buildAU="1" pluginName="Empty" pluginDesc="Blank pass-through effect"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="empt" pluginChannelConfigs="{1, 1}, {2, 2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="emptyAU"
+              pluginAUViewClass="emptyAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.empty" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="RZnSpY" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="empty"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="empty"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="oVUVUz" name="empty">
+    <GROUP id="{F4483B04-0E7A-D77C-795E-A491F61E239B}" name="Source">
+      <FILE id="d7EIMU" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="YDAD0P" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="VTO1E6" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="mhOgcd" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/flanger/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/flanger/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,229 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Flanger: flanging effect using time-varying delay
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+FlangerAudioProcessorEditor::FlangerAudioProcessorEditor (FlangerAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      delayLabel_("", "Min. Delay (sec):"),
+      sweepWidthLabel_("", "Sweep Width (sec.):"),
+      depthLabel_("", "Depth:"),
+      feedbackLabel_("", "Feedback:"),
+      frequencyLabel_("", "LFO Frequency:"),
+      waveformLabel_("", "LFO Waveform:"),
+      interpolationLabel_("", "Interpolation Type:")
+{
+
+    // Set up the sliders
+    addAndMakeVisible (&delaySlider_);
+    delaySlider_.setSliderStyle (Slider::Rotary);
+    delaySlider_.addListener (this);
+    delaySlider_.setRange (0.001, FlangerAudioProcessor::kMaximumDelay, 0.0005);
+    
+    addAndMakeVisible (&sweepWidthSlider_);
+    sweepWidthSlider_.setSliderStyle (Slider::Rotary);
+    sweepWidthSlider_.addListener (this);
+    sweepWidthSlider_.setRange (.001, FlangerAudioProcessor::kMaximumSweepWidth, 0.0005);
+    
+    addAndMakeVisible (&depthSlider_);
+    depthSlider_.setSliderStyle (Slider::Rotary);
+    depthSlider_.addListener (this);
+    depthSlider_.setRange (0.0, 1.0, 0.01);
+    
+    addAndMakeVisible (&feedbackSlider_);
+    feedbackSlider_.setSliderStyle (Slider::Rotary);
+    feedbackSlider_.addListener (this);
+    feedbackSlider_.setRange (0.0, 0.5, 0.01);
+    
+    addAndMakeVisible (&frequencySlider_);
+    frequencySlider_.setSliderStyle (Slider::Rotary);
+    frequencySlider_.addListener (this);
+    frequencySlider_.setRange (0.05, 2.0, 0.025);
+    
+    addAndMakeVisible(&waveformComboBox_);
+    waveformComboBox_.setEditableText(false);
+    waveformComboBox_.setJustificationType(Justification::left);
+    waveformComboBox_.addItem("Sine", FlangerAudioProcessor::kWaveformSine);
+    waveformComboBox_.addItem("Triangle", FlangerAudioProcessor::kWaveformTriangle);
+    waveformComboBox_.addItem("Square", FlangerAudioProcessor::kWaveformSquare);
+    waveformComboBox_.addItem("Sawtooth", FlangerAudioProcessor::kWaveformSawtooth);
+    waveformComboBox_.addListener(this);
+    
+    addAndMakeVisible(&interpolationComboBox_);
+    interpolationComboBox_.setEditableText(false);
+    interpolationComboBox_.setJustificationType(Justification::left);
+    interpolationComboBox_.addItem("None", FlangerAudioProcessor::kInterpolationNearestNeighbour);
+    interpolationComboBox_.addItem("Linear", FlangerAudioProcessor::kInterpolationLinear);
+    interpolationComboBox_.addItem("Cubic", FlangerAudioProcessor::kInterpolationCubic);
+    interpolationComboBox_.addListener(this);
+    
+    addAndMakeVisible(&stereoToggleButton_);
+    stereoToggleButton_.setName("Stereo");
+    stereoToggleButton_.setButtonText("Stereo");
+    stereoToggleButton_.addListener(this);
+    
+    delayLabel_.attachToComponent(&delaySlider_, false);
+    delayLabel_.setFont(Font (11.0f));
+    
+    sweepWidthLabel_.attachToComponent(&sweepWidthSlider_, false);
+    sweepWidthLabel_.setFont(Font (11.0f));
+    
+    depthLabel_.attachToComponent(&depthSlider_, false);
+    depthLabel_.setFont(Font (11.0f));
+    
+    feedbackLabel_.attachToComponent(&feedbackSlider_, false);
+    feedbackLabel_.setFont(Font (11.0f));
+
+    frequencyLabel_.attachToComponent(&frequencySlider_, false);
+    frequencyLabel_.setFont(Font (11.0f));
+    
+    waveformLabel_.attachToComponent(&waveformComboBox_, false);
+    waveformLabel_.setFont(Font (11.0f));
+    
+    interpolationLabel_.attachToComponent(&interpolationComboBox_, false);
+    interpolationLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(550, 200, 600, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+FlangerAudioProcessorEditor::~FlangerAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void FlangerAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void FlangerAudioProcessorEditor::resized()
+{
+    delaySlider_.setBounds (20, 20, 150, 40);
+    sweepWidthSlider_.setBounds (200, 20, 150, 40);
+    depthSlider_.setBounds(380, 20, 150, 40);
+    feedbackSlider_.setBounds(20, 80, 150, 40);
+    frequencySlider_.setBounds(200, 80, 150, 40);
+    waveformComboBox_.setBounds(20, 140, 200, 30);
+    interpolationComboBox_.setBounds(250, 140, 200, 30);
+    stereoToggleButton_.setBounds(380, 80, 150, 40);
+    stereoToggleButton_.changeWidthToFitText();
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void FlangerAudioProcessorEditor::timerCallback()
+{
+    FlangerAudioProcessor* ourProcessor = getProcessor();
+    
+    delaySlider_.setValue(ourProcessor->delay_, dontSendNotification);
+    sweepWidthSlider_.setValue(ourProcessor->sweepWidth_, dontSendNotification);
+    depthSlider_.setValue(ourProcessor->depth_, dontSendNotification);
+    feedbackSlider_.setValue(ourProcessor->feedback_, dontSendNotification);
+    frequencySlider_.setValue(ourProcessor->frequency_, dontSendNotification);
+    waveformComboBox_.setSelectedId(ourProcessor->waveform_, false);
+    interpolationComboBox_.setSelectedId(ourProcessor->interpolation_, false);
+    stereoToggleButton_.setToggleState((ourProcessor->stereo_ != 0), false);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void FlangerAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &delaySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kDelayParam,
+                                                   (float)delaySlider_.getValue());
+    }
+    else if (slider == &sweepWidthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kSweepWidthParam,
+                                                   (float)sweepWidthSlider_.getValue());
+    }
+    else if (slider == &depthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kDepthParam,
+                                                   (float)depthSlider_.getValue());
+    }
+    else if (slider == &feedbackSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kFeedbackParam,
+                                                   (float)feedbackSlider_.getValue());
+    }
+    else if (slider == &frequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kFrequencyParam,
+                                                   (float)frequencySlider_.getValue());
+    }
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void FlangerAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &waveformComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kWaveformParam,
+                                                   (float)waveformComboBox_.getSelectedId());
+    }
+    else if(comboBox == &interpolationComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kInterpolationParam,
+                                                   (float)interpolationComboBox_.getSelectedId());
+    }
+}
+
+// Callback for toggle button
+void FlangerAudioProcessorEditor::buttonClicked (Button *button)
+{
+    if(button == &stereoToggleButton_)
+    {
+        if(button->getToggleState())
+            getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kStereoParam, 1.0);
+        else
+            getProcessor()->setParameterNotifyingHost (FlangerAudioProcessor::kStereoParam, 0.0);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/flanger/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,77 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Flanger: flanging effect using time-varying delay
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class FlangerAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Button::Listener,
+                                   public Timer
+{
+public:
+    FlangerAudioProcessorEditor (FlangerAudioProcessor* ownerFilter);
+    ~FlangerAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    void buttonClicked (Button *);
+    
+private:
+    Label delayLabel_, sweepWidthLabel_, depthLabel_;
+    Label feedbackLabel_, frequencyLabel_, waveformLabel_;
+    Label interpolationLabel_;
+    Slider delaySlider_, sweepWidthSlider_, depthSlider_;
+    Slider feedbackSlider_, frequencySlider_;
+    ComboBox waveformComboBox_, interpolationComboBox_;
+    ToggleButton stereoToggleButton_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    FlangerAudioProcessor* getProcessor() const
+    {
+        return static_cast <FlangerAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/flanger/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,499 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Flanger: flanging effect using time-varying delay
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <math.h>
+
+const float FlangerAudioProcessor::kMaximumDelay = 0.02;
+const float FlangerAudioProcessor::kMaximumSweepWidth = 0.02;
+
+//==============================================================================
+FlangerAudioProcessor::FlangerAudioProcessor() : delayBuffer_ (2, 1)
+{
+    // Set default values:
+    delay_ = .0025;
+    sweepWidth_ = .010;
+    depth_ = 1.0;
+    feedback_ = 0.0;
+    frequency_ = 0.2;
+    waveform_ = kWaveformSine;
+    interpolation_ = kInterpolationLinear;
+    stereo_ = 0;
+    
+    delayBufferLength_ = 1;
+    lfoPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/44100.0;
+    
+    // Start the circular buffer pointer at the beginning
+    delayWritePosition_ = 0;
+    
+    lastUIWidth_ = 550;
+    lastUIHeight_ = 200;
+}
+
+FlangerAudioProcessor::~FlangerAudioProcessor()
+{
+}
+
+//==============================================================================
+const String FlangerAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int FlangerAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float FlangerAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kDelayParam:         return delay_;
+        case kSweepWidthParam:    return sweepWidth_;
+        case kDepthParam:         return depth_;
+        case kFeedbackParam:      return feedback_;
+        case kFrequencyParam:     return frequency_;
+        case kWaveformParam:      return (float)waveform_;
+        case kInterpolationParam: return (float)interpolation_;
+        case kStereoParam:        return (float)stereo_;
+        default:                  return 0.0f;
+    }
+}
+
+void FlangerAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+
+    switch (index)
+    {
+        case kDelayParam:
+            delay_ = newValue;
+            break;
+        case kSweepWidthParam:
+            sweepWidth_ = newValue;
+            break;
+        case kDepthParam:
+            depth_ = newValue;
+            break;
+        case kFeedbackParam:
+            feedback_ = newValue;
+            break;
+        case kFrequencyParam:
+            frequency_ = newValue;
+            break;
+        case kWaveformParam:
+            waveform_ = (int)newValue;
+            break;
+        case kInterpolationParam:
+            interpolation_ = (int)newValue;
+            break;
+        case kStereoParam:
+            stereo_ = (int)newValue;
+            break;
+        default:
+            break;
+    }
+}
+
+const String FlangerAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kDelayParam:         return "delay";
+        case kSweepWidthParam:    return "sweep width";
+        case kDepthParam:         return "depth";
+        case kFeedbackParam:      return "feedback";
+        case kFrequencyParam:     return "frequency";
+        case kWaveformParam:      return "waveform";
+        case kInterpolationParam: return "interpolation";
+        case kStereoParam:        return "stereo";
+        default:                  break;
+    }
+    
+    return String::empty;
+}
+
+const String FlangerAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String FlangerAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String FlangerAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool FlangerAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool FlangerAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool FlangerAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double FlangerAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool FlangerAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool FlangerAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int FlangerAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int FlangerAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void FlangerAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String FlangerAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void FlangerAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void FlangerAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Allocate and zero the delay buffer (size will depend on current sample rate)
+    // Add 3 extra samples to allow cubic interpolation even at maximum delay
+    delayBufferLength_ = (int)((kMaximumDelay + kMaximumSweepWidth)*sampleRate) + 3;
+    delayBuffer_.setSize(2, delayBufferLength_);
+    delayBuffer_.clear();
+    lfoPhase_ = 0.0;
+    
+    inverseSampleRate_ = 1.0/sampleRate;
+}
+
+void FlangerAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    // The delay buffer will stay in memory until the effect is unloaded.
+}
+
+void FlangerAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    delayBuffer_.clear();
+}
+
+
+void FlangerAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel, dpw; // dpr = delay read pointer; dpw = delay write pointer
+    float dpr, currentDelay, ph;
+    float channel0EndPhase = lfoPhase_;
+    
+    // Go through each channel of audio that's passed in. In this example we apply identical
+    // effects to each channel, regardless of how many input channels there are. For some effects, like
+    // a stereo chorus or panner, you might do something different for each channel.
+    
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // delayData is the circular buffer for implementing delay on this channel
+        float* delayData = delayBuffer_.getSampleData (jmin (channel, delayBuffer_.getNumChannels() - 1));
+        
+        // Make a temporary copy of any state variables declared in PluginProcessor.h which need to be
+        // maintained between calls to processBlock(). Each channel needs to be processed identically
+        // which means that the activity of processing one channel can't affect the state variable for
+        // the next channel.
+        
+        dpw = delayWritePosition_;
+        ph = lfoPhase_;
+        
+        // For stereo flanging, keep the channels 90 degrees out of phase with each other
+        if(stereo_ != 0 && channel != 0)
+            ph = fmodf(ph + 0.25, 1.0);
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+            float interpolatedSample = 0.0;
+            
+            // Recalculate the read pointer position with respect to the write pointer. A more efficient
+            // implementation might increment the read pointer based on the derivative of the LFO without
+            // running the whole equation again, but this format makes the operation clearer.
+            
+            currentDelay = delay_ + sweepWidth_*lfo(ph, waveform_);
+            dpr = fmodf((float)dpw - (float)(currentDelay * getSampleRate()) + (float)delayBufferLength_,
+                        (float)delayBufferLength_);
+            
+            // In this example, the output is the input plus the contents of the delay buffer (weighted by delayMix)
+            // The last term implements a tremolo (variable amplitude) on the whole thing.
+  
+            if(interpolation_ == kInterpolationLinear)
+            {
+                // Find the fraction by which the read pointer sits between two
+                // samples and use this to adjust weights of the samples
+                float fraction = dpr - floorf(dpr);
+                int previousSample = (int)floorf(dpr);
+                int nextSample = (previousSample + 1) % delayBufferLength_;
+                interpolatedSample = fraction*delayData[nextSample]
+                + (1.0f-fraction)*delayData[previousSample];
+            }
+            else if(interpolation_ == kInterpolationCubic)
+            {
+                // Cubic interpolation will produce cleaner results at the expense
+                // of more computation. This code uses the Catmull-Rom variant of
+                // cubic interpolation. To reduce the load, calculate a few quantities
+                // in advance that will be used several times in the equation:
+                
+                int sample1 = (int)floorf(dpr);
+                int sample2 = (sample1 + 1) % delayBufferLength_;
+                int sample3 = (sample2 + 1) % delayBufferLength_;
+                int sample0 = (sample1 - 1 + delayBufferLength_) % delayBufferLength_;
+                
+                float fraction = dpr - floorf(dpr);
+                float frsq = fraction*fraction;
+                
+                float a0 = -0.5f*delayData[sample0] + 1.5f*delayData[sample1]
+                            - 1.5f*delayData[sample2] + 0.5f*delayData[sample3];
+                float a1 = delayData[sample0] - 2.5f*delayData[sample1]
+                            + 2.0f*delayData[sample2] - 0.5f*delayData[sample3];
+                float a2 = -0.5f*delayData[sample0] + 0.5f*delayData[sample2];
+                float a3 = delayData[sample1];
+                
+                interpolatedSample = a0*fraction*frsq + a1*frsq + a2*fraction + a3;
+            }
+            else // Nearest neighbour interpolation
+            {
+                // Find the nearest input sample by rounding the fractional index to the
+                // nearest integer. It's possible this will round it to the end of the buffer,
+                // in which case we need to roll it back to the beginning.
+                int closestSample = (int)floorf(dpr + 0.5f);
+                if(closestSample == delayBufferLength_)
+                    closestSample = 0;
+                interpolatedSample = delayData[closestSample];
+            }
+            
+            // Store the current information in the delay buffer. With feedback, what we read is
+            // included in what gets stored in the buffer, otherwise it's just a simple delay line
+            // of the input signal.
+            
+            delayData[dpw] = in + (interpolatedSample * feedback_);
+            
+            // Increment the write pointer at a constant rate. The read pointer will move at different
+            // rates depending on the settings of the LFO, the delay and the sweep width.
+            
+            if (++dpw >= delayBufferLength_)
+                dpw = 0;
+
+            // Store the output sample in the buffer, replacing the input
+            channelData[i] = in + depth_ * interpolatedSample;
+
+            // Update the LFO phase, keeping it in the range 0-1
+            ph += frequency_*inverseSampleRate_;
+            if(ph >= 1.0)
+                ph -= 1.0;
+        }
+        
+        // Use channel 0 only to keep the phase in sync between calls to processBlock()
+        // Otherwise quadrature phase on multiple channels will create problems.
+        if(channel == 0)
+            channel0EndPhase = ph;
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    
+    delayWritePosition_ = dpw;
+    lfoPhase_ = channel0EndPhase;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool FlangerAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* FlangerAudioProcessor::createEditor()
+{
+    return new FlangerAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void FlangerAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("delay", delay_);
+    xml.setAttribute("feedback", feedback_);
+    xml.setAttribute("sweepWidth", sweepWidth_);
+    xml.setAttribute("depth", depth_);
+    xml.setAttribute("frequency", frequency_);
+    xml.setAttribute("waveform", waveform_);
+    xml.setAttribute("interpolation", interpolation_);
+    xml.setAttribute("stereo", stereo_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void FlangerAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            delay_      = (float)xmlState->getDoubleAttribute("delay", delay_);
+            feedback_   = (float)xmlState->getDoubleAttribute("feedback", feedback_);
+            sweepWidth_ = (float)xmlState->getDoubleAttribute("sweepWidth", sweepWidth_);
+            depth_      = (float)xmlState->getDoubleAttribute("depth", depth_);
+            frequency_  = (float)xmlState->getDoubleAttribute("frequency", frequency_);
+            waveform_   = xmlState->getIntAttribute("waveform", waveform_);
+            interpolation_ = xmlState->getIntAttribute("interpolation", interpolation_);
+            stereo_     = xmlState->getIntAttribute("stereo", stereo_);
+        }
+    }
+}
+
+//==============================================================================
+// Function for calculating LFO waveforms. Phase runs from 0-1, output is scaled
+// from 0 to 1 (note: not -1 to 1 as would be typical of sine).
+float FlangerAudioProcessor::lfo(float phase, int waveform)
+{
+    switch(waveform)
+    {
+        case kWaveformTriangle:
+            if(phase < 0.25f)
+                return 0.5f + 2.0f*phase;
+            else if(phase < 0.75f)
+                return 1.0f - 2.0f*(phase - 0.25f);
+            else
+                return 2.0f*(phase-0.75f);
+        case kWaveformSquare:
+            if(phase < 0.5f)
+                return 1.0f;
+            else
+                return 0.0f;
+        case kWaveformSawtooth:
+            if(phase < 0.5f)
+                return 0.5f + phase;
+            else
+                return phase - 0.5f;
+        case kWaveformSine:
+        default:
+            return 0.5f + 0.5f*sinf(2.0 * M_PI * phase);
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new FlangerAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/flanger/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,156 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Flanger: flanging effect using time-varying delay
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class FlangerAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    FlangerAudioProcessor();
+    ~FlangerAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+    
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kDelayParam = 0,
+        kSweepWidthParam,
+        kDepthParam,
+        kFeedbackParam,
+        kFrequencyParam,
+        kWaveformParam,
+        kInterpolationParam,
+        kStereoParam,
+        kNumParameters
+    };
+    
+    enum Waveforms
+    {
+        kWaveformSine = 1,
+        kWaveformTriangle,
+        kWaveformSquare,
+        kWaveformSawtooth,
+        kNumWaveforms
+    };
+    
+    enum Interpolation
+    {
+        kInterpolationNearestNeighbour = 1,
+        kInterpolationLinear,
+        kInterpolationCubic,
+        kNumInterpolations
+    };
+    
+    static const float kMaximumDelay;
+    static const float kMaximumSweepWidth;
+    
+    // Adjustable parameters:
+    float delay_;      // Minimum length of delay line in seconds
+    float sweepWidth_; // Amount of change from min to max delay
+    float depth_;      // Mix level of delayed signal (0-1)
+    float feedback_;   // Feedback level for feedback flanger (0-<1)
+    float frequency_;  // LFO frequency (Hz)
+    int   waveform_;   // What shape should be used for the LFO
+    int   interpolation_; // What type of interpolation to use
+    int   stereo_;     // Whether to use stereo (quadrature-phase) flanging
+    
+private:
+    float lfo(float phase, int waveform);
+    
+    // Circular buffer variables for implementing delay
+    AudioSampleBuffer delayBuffer_;
+    int delayBufferLength_;
+    int delayWritePosition_;
+    
+    float lfoPhase_;   // Phase of the low-frequency oscillator
+    double inverseSampleRate_; // It's more efficient to multiply than divide, so
+                               // cache the inverse of the sample rate
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FlangerAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/flanger/flanger.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="J2jhCa" name="flanger" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.flangereffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Flanger" pluginDesc="Flanger effect"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="flng" pluginChannelConfigs="{2,2},{1,1}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="flangerAU"
+              pluginAUViewClass="flangerAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.flanger" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="H2wt9A" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="flanger"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="flanger"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="mBnp0h" name="flanger">
+    <GROUP id="{D791512A-8100-6BAB-86FE-70EB782F30EF}" name="Source">
+      <FILE id="nrGjlE" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="BfiFTi" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="mQL9Zw" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="Eg6NHS" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/parametriceq/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/parametriceq/Source/ParametricEQFilter.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,72 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Parametric EQ: parametric equaliser adjusting frequency, Q and gain
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "ParametricEQFilter.h"
+
+/* The actual audio processing is handled by the Juce IIRFilter parent
+ * class. This subclass is used to define the coefficients for our
+ * implementation of a parametric equaliser.
+ */
+
+void ParametricEQFilter::makeParametric(const double discreteFrequency,
+                                        const double Q,
+                                        const double gainFactor) noexcept
+{
+    jassert (discreteFrequency > 0);
+    jassert (Q > 0);
+    
+    /* Limit the bandwidth so we don't get a nonsense result from tan(B/2) */
+    const double bandwidth = jmin(discreteFrequency / Q, M_PI * 0.99);
+    const double two_cos_wc = -2.0*cos(discreteFrequency);
+    const double tan_half_bw = tan(bandwidth / 2.0);
+    const double g_tan_half_bw = gainFactor * tan_half_bw;
+    const double sqrt_g = sqrt(gainFactor);
+    
+    /* setCoefficients() takes arguments: b0, b1, b2, a0, a1, a2
+     * It will normalise the filter according to the value of a0
+     * to allow standard time-domain implementations
+     */
+    
+    coefficients = IIRCoefficients(sqrt_g + g_tan_half_bw, /* b0 */
+                     sqrt_g * two_cos_wc, /* b1 */
+                     sqrt_g - g_tan_half_bw, /* b2 */
+                     sqrt_g + tan_half_bw, /* a0 */
+                     sqrt_g * two_cos_wc, /* a1 */
+                     sqrt_g - tan_half_bw /* a2 */);
+    
+    setCoefficients(coefficients);
+}
+
+/* Copy coefficients from another object of the same class */
+
+void ParametricEQFilter::copyCoefficientsFrom (const ParametricEQFilter& other) noexcept
+{
+    setCoefficients(other.coefficients);
+    active = other.active;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/parametriceq/Source/ParametricEQFilter.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,64 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Parametric EQ: parametric equaliser adjusting frequency, Q and gain
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PARAMETRICEQFILTER_H_6E48F605__
+#define __PARAMETRICEQFILTER_H_6E48F605__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+//==============================================================================
+/**
+ * This class implements a biquad parametric EQ section according
+ * to the equations in the Reiss and McPherson text.
+ */
+
+class ParametricEQFilter : public IIRFilter
+{
+public:
+    //==============================================================================
+	
+	/* Makes a parametric EQ section entirely from discrete-time parameters.
+     * Frequency here is specified from 0 to M_PI.
+     */
+	void makeParametric (const double discreteFrequency,
+                         const double Q,
+                         const double gainFactor) noexcept;
+	
+    /** Makes this filter duplicate the set-up of another one.
+	 */
+    void copyCoefficientsFrom (const ParametricEQFilter& other) noexcept;
+	
+private:
+    //==============================================================================
+	JUCE_LEAK_DETECTOR (ParametricEQFilter);
+};
+
+
+#endif // __PARAMETRICEQFILTER_H_6E48F605__
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/parametriceq/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,161 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Parametric EQ: parametric equaliser adjusting frequency, Q and gain
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <cstring>
+
+#ifdef _MSC_VER
+#define snprintf _snprintf_s //support for pre-2014 versions of Visual Studio
+#endif // _MSC_VER
+
+//==============================================================================
+ParametricEQAudioProcessorEditor::ParametricEQAudioProcessorEditor (ParametricEQAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      centreFrequencyLabel_("", "Centre frequency (Hz):"),
+      qLabel_("", "Q:"),
+      gainDecibelsLabel_("", "Gain (dB):"),
+      bandwidthLabel_("", "Bandwidth:")
+{
+    // Set up the sliders
+
+    addAndMakeVisible(&centreFrequencySlider_);
+    centreFrequencySlider_.setSliderStyle(Slider::Rotary);
+    centreFrequencySlider_.addListener(this);
+    centreFrequencySlider_.setRange(10.0, 20000.0, 0.1);
+    
+    // Make the centre frequency slider (approximately) logarithmic for a
+    // more natural feel
+    centreFrequencySlider_.setSkewFactorFromMidPoint(sqrt(10.0 * 20000.0));
+    
+    addAndMakeVisible(&qSlider_);
+    qSlider_.setSliderStyle(Slider::Rotary);
+    qSlider_.addListener(this);
+    qSlider_.setRange(0.1, 20.0, 0.01);
+    
+    addAndMakeVisible(&gainDecibelsSlider_);
+    gainDecibelsSlider_.setSliderStyle(Slider::Rotary);
+    gainDecibelsSlider_.addListener(this);
+    gainDecibelsSlider_.setRange(-12.0, 12.0, 0.1);
+    
+    // This label is informational and exists apart from other controls
+    // The other labels are attached to sliders and combo boxes
+    addAndMakeVisible(&bandwidthLabel_);
+    bandwidthLabel_.setFont(Font (12.0f));
+    
+    centreFrequencyLabel_.attachToComponent(&centreFrequencySlider_, false);
+    centreFrequencyLabel_.setFont(Font (11.0f));
+    
+    qLabel_.attachToComponent(&qSlider_, false);
+    qLabel_.setFont(Font (11.0f));
+    
+    gainDecibelsLabel_.attachToComponent(&gainDecibelsSlider_, false);
+    gainDecibelsLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(550, 100, 550, 160);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+ParametricEQAudioProcessorEditor::~ParametricEQAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void ParametricEQAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void ParametricEQAudioProcessorEditor::resized()
+{
+    centreFrequencySlider_.setBounds(20, 20, 150, 40);
+    qSlider_.setBounds(200, 20, 150, 40);
+    gainDecibelsSlider_.setBounds(380, 20, 150, 40);
+    bandwidthLabel_.setBounds(20, 70, 350, 20);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void ParametricEQAudioProcessorEditor::timerCallback()
+{
+    ParametricEQAudioProcessor* ourProcessor = getProcessor();
+    
+    centreFrequencySlider_.setValue(ourProcessor->centreFrequency_, dontSendNotification);
+    qSlider_.setValue(ourProcessor->q_, dontSendNotification);
+    gainDecibelsSlider_.setValue(ourProcessor->gainDecibels_, dontSendNotification);
+    updateBandwidthLabel();
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void ParametricEQAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &centreFrequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (ParametricEQAudioProcessor::kCentreFrequencyParam,
+                                                   (float)centreFrequencySlider_.getValue());
+        updateBandwidthLabel();
+    }
+    else if (slider == &qSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (ParametricEQAudioProcessor::kQParam,
+                                                   (float)qSlider_.getValue());
+        updateBandwidthLabel();
+    }
+    else if (slider == &gainDecibelsSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (ParametricEQAudioProcessor::kGainDecibelsParam,
+                                                   (float)gainDecibelsSlider_.getValue());
+    }
+}
+
+void ParametricEQAudioProcessorEditor::updateBandwidthLabel()
+{
+    char str[64];
+    ParametricEQAudioProcessor* ourProcessor = getProcessor();
+    
+    snprintf(str, 64, "Bandwidth: %.1f Hz", ourProcessor->centreFrequency_ / ourProcessor->q_);
+    
+    bandwidthLabel_.setText(str, dontSendNotification);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/parametriceq/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,71 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Parametric EQ: parametric equaliser adjusting frequency, Q and gain
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class ParametricEQAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public Timer
+{
+public:
+    ParametricEQAudioProcessorEditor (ParametricEQAudioProcessor* ownerFilter);
+    ~ParametricEQAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    
+private:
+    void updateBandwidthLabel();
+    
+    Label centreFrequencyLabel_, qLabel_, gainDecibelsLabel_;
+    Label bandwidthLabel_;
+    Slider centreFrequencySlider_, qSlider_, gainDecibelsSlider_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    ParametricEQAudioProcessor* getProcessor() const
+    {
+        return static_cast <ParametricEQAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/parametriceq/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,328 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Parametric EQ: parametric equaliser adjusting frequency, Q and gain
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+ParametricEQAudioProcessor::ParametricEQAudioProcessor()
+{
+    // Set default values:
+    centreFrequency_ = 1000.0;
+    q_ = 2.0;
+    gainDecibels_ = 0.0;
+    
+    // Initialise the filters later when we know how many channels
+    eqFilters_ = 0;
+    numEqFilters_ = 0;
+    
+    lastUIWidth_ = 550;
+    lastUIHeight_ = 100;
+}
+
+ParametricEQAudioProcessor::~ParametricEQAudioProcessor()
+{
+}
+
+//==============================================================================
+const String ParametricEQAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int ParametricEQAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float ParametricEQAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kCentreFrequencyParam: return centreFrequency_;
+        case kQParam:               return q_;
+        case kGainDecibelsParam:    return gainDecibels_;
+        default:                    return 0.0f;
+    }
+}
+
+void ParametricEQAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kCentreFrequencyParam:
+            centreFrequency_ = newValue;
+            updateEQFilter(getSampleRate());
+            break;
+        case kQParam:
+            q_ = newValue;
+            updateEQFilter(getSampleRate());
+            break;
+        case kGainDecibelsParam:
+            gainDecibels_ = newValue;
+            updateEQFilter(getSampleRate());
+            break;
+        default:
+            break;
+    }
+}
+
+const String ParametricEQAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kCentreFrequencyParam:  return "centre frequency";
+        case kQParam:                return "Q";
+        case kGainDecibelsParam:     return "gain (dB)";
+        default:                     break;
+    }
+    
+    return String::empty;
+}
+
+const String ParametricEQAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String ParametricEQAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String ParametricEQAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool ParametricEQAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool ParametricEQAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool ParametricEQAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double ParametricEQAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool ParametricEQAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool ParametricEQAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int ParametricEQAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int ParametricEQAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void ParametricEQAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String ParametricEQAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void ParametricEQAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void ParametricEQAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback
+    // initialisation that you need..
+    
+    // Create as many filters as we have input channels
+    numEqFilters_ = getNumInputChannels();
+    eqFilters_ = (ParametricEQFilter**)malloc(numEqFilters_ * sizeof(ParametricEQFilter*));
+    if(eqFilters_ == 0)
+        numEqFilters_ = 0;
+    else {
+        for(int i = 0; i < numEqFilters_; i++)
+            eqFilters_[i] = new ParametricEQFilter;
+    }
+    
+    // Update the filter settings to work with the current parameters and sample rate
+    updateEQFilter(sampleRate);
+}
+
+void ParametricEQAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    for(int i = 0; i < numEqFilters_; i++)
+        delete eqFilters_[i];
+    if(numEqFilters_ != 0)
+        free(eqFilters_);
+    numEqFilters_ = 0;
+    eqFilters_ = 0;
+}
+
+void ParametricEQAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    int channel;
+    
+    // Go through each channel of audio that's passed in
+    
+    for (channel = 0; channel < jmin((int32)numInputChannels, numEqFilters_); ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+     
+        // Run the samples through the IIR filter whose coefficients define the parametric
+        // equaliser. See juce_IIRFilter.cpp for the implementation.
+        eqFilters_[channel]->processSamples(channelData, numSamples);
+    }
+    
+    // Go through the remaining channels. In case we have more outputs
+    // than inputs, or there aren't enough filters, we'll clear any
+    // remaining output channels (which could otherwise contain garbage)
+    while(channel < numOutputChannels)
+    {
+        buffer.clear (channel++, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool ParametricEQAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* ParametricEQAudioProcessor::createEditor()
+{
+    return new ParametricEQAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void ParametricEQAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("centreFrequency", centreFrequency_);
+    xml.setAttribute("q", q_);
+    xml.setAttribute("gainDecibels", gainDecibels_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void ParametricEQAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            centreFrequency_ = (float)xmlState->getDoubleAttribute("centreFrequency", centreFrequency_);
+            q_ = (float)xmlState->getDoubleAttribute("q", q_);
+            gainDecibels_ = (float)xmlState->getDoubleAttribute("gainDecibels", gainDecibels_);
+            updateEQFilter(getSampleRate());
+        }
+    }
+}
+
+//==============================================================================
+// Update the coefficients of the parametric equaliser filter
+void ParametricEQAudioProcessor::updateEQFilter(float sampleRate)
+{
+    for(int i = 0; i < numEqFilters_; i++)
+        eqFilters_[i]->makeParametric(2.0 * M_PI * centreFrequency_ / sampleRate,
+                                      q_, powf(10.0f, gainDecibels_ / 20.0f));
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new ParametricEQAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/parametriceq/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,115 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Parametric EQ: parametric equaliser adjusting frequency, Q and gain
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "ParametricEQFilter.h"
+
+//==============================================================================
+/**
+*/
+class ParametricEQAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    ParametricEQAudioProcessor();
+    ~ParametricEQAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kCentreFrequencyParam = 0, /* Centre frequency in Hz */
+        kQParam,                   /* Filter Q */
+        kGainDecibelsParam,        /* Boost/cut in decibels */
+        kNumParameters
+    };
+    
+    float centreFrequency_, q_, gainDecibels_;
+private:
+    void updateEQFilter(float sampleRate);
+    
+    ParametricEQFilter **eqFilters_;
+    int numEqFilters_;
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ParametricEQAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/parametriceq/parametriceq.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="sBispa" name="parametriceq" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.parametriceqeffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Parametric EQ" pluginDesc="Parametric equaliser"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="pmeq" pluginChannelConfigs="{1, 1}, {2, 2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="parametriceqAU"
+              pluginAUViewClass="parametriceqAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.parametriceq" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="o4V0Px" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="parametriceq"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="parametriceq"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="NgOLZY" name="parametriceq">
+    <GROUP id="{0C07FF12-723D-A478-E620-A8578F15E1A1}" name="Source">
+      <FILE id="TAIiLn" name="ParametricEQFilter.cpp" compile="1" resource="0"
+            file="Source/ParametricEQFilter.cpp"/>
+      <FILE id="bI9Gvz" name="ParametricEQFilter.h" compile="0" resource="0"
+            file="Source/ParametricEQFilter.h"/>
+      <FILE id="TfjZoz" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="ZVQHXT" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="YJOzch" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="vSsRaf" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/phaser/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/OnePoleAllpassFilter.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,83 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "OnePoleAllpassFilter.h"
+
+// Constructor: set defaults that do nothing
+OnePoleAllpassFilter::OnePoleAllpassFilter() noexcept
+: x1 (0.0f), y1 (0.0f), b0 (1.0f), b1 (0.0f), a1 (0.0f)
+{
+}
+
+OnePoleAllpassFilter::~OnePoleAllpassFilter() noexcept
+{
+}
+
+float OnePoleAllpassFilter::processSingleSampleRaw (const float sampleToProcess) noexcept
+{
+    // Process one sample, storing the last input and output
+    y1 = (b0 * sampleToProcess) + (b1 * x1) + (a1 * y1);
+    x1 = sampleToProcess;
+    return y1;
+}
+
+void OnePoleAllpassFilter::processSamples (float* const samples,
+                                    const int numSamples) noexcept
+{
+    // Process a buffer of samples all at once
+    // make sure sample values are locked
+    const ScopedLock sl (lock);
+    
+    for (int i = 0; i < numSamples; ++i)
+    {
+        y1 = (b0 * samples[i]) + (b1 * x1) + (a1 * y1);
+        x1 = samples[i];
+        samples[i] = y1;
+    }
+}
+
+// Set the coefficients for a one-pole allpass filter
+// according to cutoff frequency relative to sample rate
+// The first parameter is inverse because it is a faster
+// calculation.
+void OnePoleAllpassFilter::makeAllpass (const double inverseSampleRate,
+                                        const double centreFrequency) noexcept
+{
+    // This code based on calculations by Julius O. Smith:
+    // https://ccrma.stanford.edu/~jos/pasp/Classic_Virtual_Analog_Phase.html
+    
+    // Avoid passing pi/2 to the tan function...
+    const double w0 = jmin(centreFrequency * inverseSampleRate, 0.99*M_PI);
+    const double tan_half_w0 = tan(0.5 * w0);
+    
+    const ScopedLock sl (lock);
+    
+    b0 = a1 = (float)((1.0 - tan_half_w0) / (1.0 + tan_half_w0));
+    b1 = -1.0f;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/OnePoleAllpassFilter.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,77 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __ONEPOLEALLPASSFILTER_H_6E48F605__
+#define __ONEPOLEALLPASSFILTER_H_6E48F605__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+/**
+ * This class implements a 1st-order allpass filter used in the phaser effect.
+ * Unlike TwoPoleAllpassFilter, it does not extend IIRFilter which is two-pole.
+ * Loosely modelled after OnePoleFilter.cpp by dRowAudio.
+ */
+
+class OnePoleAllpassFilter
+{
+public:
+    //==============================================================================
+	// Create an unititialised filter.
+    // This will not perform any filtering until the allpass coefficients have been set.
+	OnePoleAllpassFilter() noexcept;
+	
+	// Destructor.
+	~OnePoleAllpassFilter() noexcept;
+	
+	//Process a number of samples in one go.
+    // This is the most effecient method of filtering.
+    // Note that the samples passed to it actually get changed.
+	void processSamples (float* const samples,
+						 const int numSamples) noexcept;
+	
+	// Process a single sample.
+    // Less efficient method but leaves the sample unchanged,
+    // returning a filtered copy of it.
+    float processSingleSampleRaw (const float sampleToProcess) noexcept;
+	
+	// Set the centre frequency of the allpass with respect to the sample rate
+	void makeAllpass (const double inverseSampleRate,
+                      const double centreFrequency) noexcept;
+    
+private:
+    //==============================================================================
+	CriticalSection lock;
+	float x1, y1, b0, b1, a1;
+	
+    //==============================================================================
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (OnePoleAllpassFilter);
+};
+
+#endif /* __ONEPOLEALLPASSFILTER_H_6E48F605__ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,231 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+PhaserAudioProcessorEditor::PhaserAudioProcessorEditor (PhaserAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      baseFrequencyLabel_("", "Base Frequency (Hz):"),
+      sweepWidthLabel_("", "Sweep Width (Hz):"),
+      depthLabel_("", "Depth:"),
+      feedbackLabel_("", "Feedback:"),
+      lfoFrequencyLabel_("", "LFO Frequency:"),
+      waveformLabel_("", "LFO Waveform:"),
+      filtersLabel_("", "Number of Filters:")
+{
+
+    // Set up the sliders
+    addAndMakeVisible (&baseFrequencySlider_);
+    baseFrequencySlider_.setSliderStyle (Slider::Rotary);
+    baseFrequencySlider_.addListener (this);
+    baseFrequencySlider_.setRange (50.0, 1000.0, 0.5);
+    
+    addAndMakeVisible (&sweepWidthSlider_);
+    sweepWidthSlider_.setSliderStyle (Slider::Rotary);
+    sweepWidthSlider_.addListener (this);
+    sweepWidthSlider_.setRange (50.0, 5000.0, 0.5);
+    
+    addAndMakeVisible (&depthSlider_);
+    depthSlider_.setSliderStyle (Slider::Rotary);
+    depthSlider_.addListener (this);
+    depthSlider_.setRange (0.0, 1.0, 0.01);
+    
+    addAndMakeVisible (&feedbackSlider_);
+    feedbackSlider_.setSliderStyle (Slider::Rotary);
+    feedbackSlider_.addListener (this);
+    feedbackSlider_.setRange (0.0, 0.99, 0.01);
+    
+    addAndMakeVisible (&lfoFrequencySlider_);
+    lfoFrequencySlider_.setSliderStyle (Slider::Rotary);
+    lfoFrequencySlider_.addListener (this);
+    lfoFrequencySlider_.setRange (0.05, 2.0, 0.025);
+    
+    addAndMakeVisible(&waveformComboBox_);
+    waveformComboBox_.setEditableText(false);
+    waveformComboBox_.setJustificationType(Justification::left);
+    waveformComboBox_.addItem("Sine", PhaserAudioProcessor::kWaveformSine);
+    waveformComboBox_.addItem("Triangle", PhaserAudioProcessor::kWaveformTriangle);
+    waveformComboBox_.addItem("Square", PhaserAudioProcessor::kWaveformSquare);
+    waveformComboBox_.addItem("Sawtooth", PhaserAudioProcessor::kWaveformSawtooth);
+    waveformComboBox_.addListener(this);
+    
+    addAndMakeVisible(&filtersComboBox_);
+    filtersComboBox_.setEditableText(false);
+    filtersComboBox_.setJustificationType(Justification::left);
+    filtersComboBox_.addItem("2", 2);
+    filtersComboBox_.addItem("4", 4);
+    filtersComboBox_.addItem("6", 6);
+    filtersComboBox_.addItem("8", 8);
+    filtersComboBox_.addItem("10", 10);
+    filtersComboBox_.addListener(this);
+
+    addAndMakeVisible(&stereoToggleButton_);
+    stereoToggleButton_.setName("Stereo");
+    stereoToggleButton_.setButtonText("Stereo");
+    stereoToggleButton_.addListener(this);
+    
+    baseFrequencyLabel_.attachToComponent(&baseFrequencySlider_, false);
+    baseFrequencyLabel_.setFont(Font (11.0f));
+    
+    sweepWidthLabel_.attachToComponent(&sweepWidthSlider_, false);
+    sweepWidthLabel_.setFont(Font (11.0f));
+    
+    depthLabel_.attachToComponent(&depthSlider_, false);
+    depthLabel_.setFont(Font (11.0f));
+    
+    feedbackLabel_.attachToComponent(&feedbackSlider_, false);
+    feedbackLabel_.setFont(Font (11.0f));
+
+    lfoFrequencyLabel_.attachToComponent(&lfoFrequencySlider_, false);
+    lfoFrequencyLabel_.setFont(Font (11.0f));
+    
+    waveformLabel_.attachToComponent(&waveformComboBox_, false);
+    waveformLabel_.setFont(Font (11.0f));
+    
+    filtersLabel_.attachToComponent(&filtersComboBox_, false);
+    filtersLabel_.setFont(Font (11.0f));
+
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(550, 200, 600, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+PhaserAudioProcessorEditor::~PhaserAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void PhaserAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void PhaserAudioProcessorEditor::resized()
+{
+    baseFrequencySlider_.setBounds (20, 20, 150, 40);
+    sweepWidthSlider_.setBounds (200, 20, 150, 40);
+    depthSlider_.setBounds(380, 20, 150, 40);
+    feedbackSlider_.setBounds(20, 80, 150, 40);
+    lfoFrequencySlider_.setBounds(200, 80, 150, 40);
+    waveformComboBox_.setBounds(20, 140, 200, 30);
+    filtersComboBox_.setBounds(250, 140, 200, 30);
+    stereoToggleButton_.setBounds(380, 80, 150, 40);
+    stereoToggleButton_.changeWidthToFitText();
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void PhaserAudioProcessorEditor::timerCallback()
+{
+    PhaserAudioProcessor* ourProcessor = getProcessor();
+    
+    baseFrequencySlider_.setValue(ourProcessor->baseFrequency_, dontSendNotification);
+    sweepWidthSlider_.setValue(ourProcessor->sweepWidth_, dontSendNotification);
+    depthSlider_.setValue(ourProcessor->depth_, dontSendNotification);
+    feedbackSlider_.setValue(ourProcessor->feedback_, dontSendNotification);
+    lfoFrequencySlider_.setValue(ourProcessor->lfoFrequency_, dontSendNotification);
+    waveformComboBox_.setSelectedId(ourProcessor->waveform_, false);
+    filtersComboBox_.setSelectedId(ourProcessor->filtersPerChannel_, false);
+    stereoToggleButton_.setToggleState((ourProcessor->stereo_ != 0), false);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void PhaserAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &baseFrequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kBaseFrequencyParam,
+                                                   (float)baseFrequencySlider_.getValue());
+    }
+    else if (slider == &sweepWidthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kSweepWidthParam,
+                                                   (float)sweepWidthSlider_.getValue());
+    }
+    else if (slider == &depthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kDepthParam,
+                                                   (float)depthSlider_.getValue());
+    }
+    else if (slider == &feedbackSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kFeedbackParam,
+                                                   (float)feedbackSlider_.getValue());
+    }
+    else if (slider == &lfoFrequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kLFOFrequencyParam,
+                                                   (float)lfoFrequencySlider_.getValue());
+    }
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void PhaserAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &waveformComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kWaveformParam,
+                                                   (float)waveformComboBox_.getSelectedId());
+    }
+    else if(comboBox == &filtersComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kFiltersParam,
+                                                   (float)filtersComboBox_.getSelectedId());
+    }
+}
+
+// Callback for toggle button
+void PhaserAudioProcessorEditor::buttonClicked (Button *button)
+{
+    if(button == &stereoToggleButton_)
+    {
+        if(button->getToggleState())
+            getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kStereoParam, 1.0);
+        else
+            getProcessor()->setParameterNotifyingHost (PhaserAudioProcessor::kStereoParam, 0.0);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,77 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class PhaserAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Button::Listener,
+                                   public Timer
+{
+public:
+    PhaserAudioProcessorEditor (PhaserAudioProcessor* ownerFilter);
+    ~PhaserAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    void buttonClicked (Button *);
+    
+private:
+    Label baseFrequencyLabel_, sweepWidthLabel_, depthLabel_;
+    Label feedbackLabel_, lfoFrequencyLabel_, waveformLabel_;
+    Label filtersLabel_;
+    Slider baseFrequencySlider_, sweepWidthSlider_, depthSlider_;
+    Slider feedbackSlider_, lfoFrequencySlider_;
+    ComboBox waveformComboBox_, filtersComboBox_;
+    ToggleButton stereoToggleButton_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    PhaserAudioProcessor* getProcessor() const
+    {
+        return static_cast <PhaserAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,514 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <math.h>
+
+//==============================================================================
+PhaserAudioProcessor::PhaserAudioProcessor()
+{
+    // Set default values:
+    baseFrequency_ = 200.0;
+    sweepWidth_ = 2000.0;
+    depth_ = 1.0;
+    feedback_ = 0.0;
+    lfoFrequency_ = 0.5;
+    waveform_ = kWaveformSine;
+    stereo_ = 0;
+    
+    // Start with no filters (at least until we have some channels)
+    allpassFilters_ = 0;
+    filtersPerChannel_ = 4;
+    totalNumFilters_ = 0;
+    lastFilterOutputs_ = 0;
+    numLastFilterOutputs_ = 0;
+    
+    lfoPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/44100.0;
+    sampleCount_ = 0;
+    filterUpdateInterval_ = 8;
+    
+    lastUIWidth_ = 550;
+    lastUIHeight_ = 200;
+}
+
+PhaserAudioProcessor::~PhaserAudioProcessor()
+{
+    deallocateFilters();
+}
+
+//==============================================================================
+const String PhaserAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int PhaserAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float PhaserAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kBaseFrequencyParam: return baseFrequency_;
+        case kSweepWidthParam:    return sweepWidth_;
+        case kDepthParam:         return depth_;
+        case kFeedbackParam:      return feedback_;
+        case kLFOFrequencyParam:  return lfoFrequency_;
+        case kFiltersParam:       return (float)filtersPerChannel_;
+        case kWaveformParam:      return (float)waveform_;
+        case kStereoParam:        return (float)stereo_;
+        default:                  return 0.0f;
+    }
+}
+
+void PhaserAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+
+    switch (index)
+    {
+        case kBaseFrequencyParam:
+            baseFrequency_ = newValue;
+            break;
+        case kSweepWidthParam:
+            sweepWidth_ = newValue;
+            break;
+        case kDepthParam:
+            depth_ = newValue;
+            break;
+        case kFeedbackParam:
+            feedback_ = newValue;
+            break;
+        case kLFOFrequencyParam:
+            lfoFrequency_ = newValue;
+            break;
+        case kFiltersParam:
+            if(filtersPerChannel_ != (int)newValue) {
+                filtersPerChannel_ = (int)newValue;
+                reallocateFilters();
+            }
+            break;
+        case kWaveformParam:
+            waveform_ = (int)newValue;
+            break;
+        case kStereoParam:
+            stereo_ = (int)newValue;
+            break;
+        default:
+            break;
+    }
+}
+
+const String PhaserAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kBaseFrequencyParam: return "base frequency";
+        case kSweepWidthParam:    return "sweep width";
+        case kDepthParam:         return "depth";
+        case kFeedbackParam:      return "feedback";
+        case kLFOFrequencyParam:  return "LFO frequency";
+        case kWaveformParam:      return "waveform";
+        case kStereoParam:        return "stereo";
+        default:                  break;
+    }
+    
+    return String::empty;
+}
+
+const String PhaserAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String PhaserAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String PhaserAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool PhaserAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PhaserAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PhaserAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double PhaserAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool PhaserAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool PhaserAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int PhaserAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int PhaserAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void PhaserAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String PhaserAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void PhaserAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void PhaserAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    lfoPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/sampleRate;
+    sampleCount_ = 0;
+    
+    const ScopedLock sl (lock_);
+    allocateFilters();
+}
+
+void PhaserAudioProcessor::releaseResources()
+{
+    const ScopedLock sl (lock_);
+    deallocateFilters();
+}
+
+void PhaserAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    lfoPhase_ = 0.0;
+    sampleCount_ = 0;
+    for(int i = 0; i < numLastFilterOutputs_; i++)
+        lastFilterOutputs_[i] = 0.0f;
+}
+
+
+void PhaserAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    const ScopedLock sl (lock_);
+    
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    float ph, channel0EndPhase = lfoPhase_;
+    unsigned int sc;
+    
+    // Go through each channel of audio that's passed in, applying one or more allpass filters
+    // to each. Each channel will be treated identically in a (non-stereo) phaser, but we have
+    // to have separate filter objects for each channel since the filters store the last few samples
+    // passed through them.
+    
+    // Filters are stored with all channel 0 filters first, then all channel 1 filters, etc.
+    
+    for(int channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        ph = lfoPhase_;
+        sc = sampleCount_;
+        
+        // For stereo phasing, keep the channels 90 degrees out of phase with each other
+        if(stereo_ != 0 && channel != 0)
+            ph = fmodf(ph + 0.25, 1.0);
+        
+        for (int sample = 0; sample < numSamples; ++sample)
+        {
+            float out = channelData[sample];
+            
+            // If feedback is enabled, include the feedback from the last sample in the
+            // input of the allpass filter chain. This is actually not accurate to how
+            // analog phasers work because there is a sample of delay between output and
+            // input, which adds a further phase shift of up to 180 degrees at half the
+            // sampling frequency. To truly model an analog phaser with feedback involves
+            // modelling a delay-free loop, which is beyond the scope of this example.
+            
+            if(feedback_ != 0.0 && channel < numLastFilterOutputs_)
+                out += feedback_ * lastFilterOutputs_[channel];
+            
+            // See OnePoleAllpassFilter.cpp for calculation of coefficients and application
+            // of filter to audio data. The filter processes the audio buffer in place,
+            // putting the output sample in place of the input.
+            
+            for(int j = 0; j < filtersPerChannel_; ++j)
+            {
+                // Safety check
+                if(channel * filtersPerChannel_ + j >= totalNumFilters_)
+                    continue;
+                
+                // First, update the current allpass filter coefficients depending on the parameter
+                // settings and the LFO phase
+                
+                // Recalculating the filter coefficients is much more expensive than calculating
+                // a sample. Only update the coefficients at a fraction of the sample rate; since
+                // the LFO moves slowly, the difference won't generally be audible.
+                if(sc % filterUpdateInterval_ == 0)
+                {
+                    allpassFilters_[channel * filtersPerChannel_ + j]->makeAllpass(inverseSampleRate_,
+                       baseFrequency_ + sweepWidth_*lfo(ph, waveform_));
+                }
+                out = allpassFilters_[channel * filtersPerChannel_ + j]->processSingleSampleRaw(out);
+            }
+            
+            if(channel < numLastFilterOutputs_)
+                lastFilterOutputs_[channel] = out;
+            
+            // Add the allpass signal to the output, though maintaining constant level
+            // depth = 0 --> input only ; depth = 1 --> evenly balanced input and output
+            channelData[sample] = (1.0f-0.5f*depth_)*channelData[sample] + 0.5f*depth_*out;
+        
+            // Update the LFO phase, keeping it in the range 0-1
+            ph += lfoFrequency_*inverseSampleRate_;
+            if(ph >= 1.0)
+                ph -= 1.0;
+            sc++;
+        }
+
+        // Use channel 0 only to keep the phase in sync between calls to processBlock()
+        // Otherwise quadrature phase on multiple channels will create problems.
+        if(channel == 0)
+            channel0EndPhase = ph;
+    }
+    
+    lfoPhase_ = channel0EndPhase;
+    sampleCount_ = sc;
+    
+    // Go through the remaining channels. In case we have more outputs
+    // than inputs, or there aren't enough filters, we'll clear any
+    // remaining output channels (which could otherwise contain garbage)
+    for(int channel = numInputChannels; channel < numOutputChannels; ++channel)
+    {
+        buffer.clear (channel++, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool PhaserAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* PhaserAudioProcessor::createEditor()
+{
+    return new PhaserAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void PhaserAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("baseFrequency_", baseFrequency_);
+    xml.setAttribute("feedback", feedback_);
+    xml.setAttribute("sweepWidth", sweepWidth_);
+    xml.setAttribute("depth", depth_);
+    xml.setAttribute("lfoFrequency", lfoFrequency_);
+    xml.setAttribute("filtersPerChannel", filtersPerChannel_);
+    xml.setAttribute("waveform", waveform_);
+    xml.setAttribute("stereo", stereo_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void PhaserAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            baseFrequency_ = (float)xmlState->getDoubleAttribute("baseFrequency", baseFrequency_);
+            feedback_      = (float)xmlState->getDoubleAttribute("feedback", feedback_);
+            sweepWidth_    = (float)xmlState->getDoubleAttribute("sweepWidth", sweepWidth_);
+            depth_         = (float)xmlState->getDoubleAttribute("depth", depth_);
+            lfoFrequency_  = (float)xmlState->getDoubleAttribute("lfoFrequency", lfoFrequency_);
+            filtersPerChannel_ = xmlState->getIntAttribute("filtersPerChannel", filtersPerChannel_);
+            waveform_      = xmlState->getIntAttribute("waveform", waveform_);
+            stereo_        = xmlState->getIntAttribute("stereo", stereo_);
+        }
+    }
+}
+
+//==============================================================================
+// Function for calculating LFO waveforms. Phase runs from 0-1, output is scaled
+// from 0 to 1 (note: not -1 to 1 as would be typical of sine).
+float PhaserAudioProcessor::lfo(float phase, int waveform)
+{
+    switch(waveform)
+    {
+        case kWaveformTriangle:
+            if(phase < 0.25f)
+                return 0.5f + 2.0f*phase;
+            else if(phase < 0.75f)
+                return 1.0f - 2.0f*(phase - 0.25f);
+            else
+                return 2.0f*(phase-0.75f);
+        case kWaveformSquare:
+            if(phase < 0.5f)
+                return 1.0f;
+            else
+                return 0.0f;
+        case kWaveformSawtooth:
+            if(phase < 0.5f)
+                return 0.5f + phase;
+            else
+                return phase - 0.5f;
+        case kWaveformSine:
+        default:
+            return 0.5f + 0.5f*sinf(2.0 * M_PI * phase);
+    }
+}
+
+void PhaserAudioProcessor::allocateFilters()
+{
+    // Create any filters we need; depends on number of channels and number of
+    // filters per channel
+    totalNumFilters_ = getNumInputChannels() * filtersPerChannel_;
+    if(totalNumFilters_ > 0) {
+        allpassFilters_ = (OnePoleAllpassFilter**)malloc(totalNumFilters_ * sizeof(OnePoleAllpassFilter*));
+        if(allpassFilters_ == 0)
+            totalNumFilters_ = 0;
+        else {
+            for(int i = 0; i < totalNumFilters_; i++)
+                allpassFilters_[i] = new OnePoleAllpassFilter;
+        }
+    }
+    
+    numLastFilterOutputs_ = getNumInputChannels();
+    lastFilterOutputs_ = (float *)malloc(numLastFilterOutputs_ * sizeof(float));
+    for(int i = 0; i < numLastFilterOutputs_; i++)
+        lastFilterOutputs_[i] = 0.0f;
+    
+    // Coefficients of allpass filters will get updated in processBlock()
+}
+
+void PhaserAudioProcessor::deallocateFilters()
+{
+    // Release the filters that were created in prepareToPlay()
+    
+    for(int i = 0; i < totalNumFilters_; i++)
+        delete allpassFilters_[i];
+    if(totalNumFilters_ != 0)
+        free(allpassFilters_);
+    totalNumFilters_ = 0;
+    allpassFilters_ = 0;
+    
+    if(numLastFilterOutputs_ != 0)
+        free(lastFilterOutputs_);
+    numLastFilterOutputs_ = 0;
+    lastFilterOutputs_ = 0;
+}
+
+// Release and recreate the filters in one atomic operation:
+// the ScopedLock will not let the audio thread run between
+// release and allocation
+void PhaserAudioProcessor::reallocateFilters()
+{
+    const ScopedLock sl (lock_);
+    deallocateFilters();
+    allocateFilters();
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new PhaserAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,159 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "OnePoleAllpassFilter.h"
+#include "TwoPoleAllpassFilter.h"
+
+//==============================================================================
+/**
+*/
+class PhaserAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    PhaserAudioProcessor();
+    ~PhaserAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;    
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kBaseFrequencyParam = 0,
+        kSweepWidthParam,
+        kDepthParam,
+        kFeedbackParam,
+        kLFOFrequencyParam,
+        kFiltersParam,
+        kWaveformParam,
+        kStereoParam,
+        kNumParameters
+    };
+    
+    enum Waveforms
+    {
+        kWaveformSine = 1,
+        kWaveformTriangle,
+        kWaveformSquare,
+        kWaveformSawtooth,
+        kNumWaveforms
+    };
+    
+    // Adjustable parameters:
+    float baseFrequency_; // Lowest frequency of allpass filters
+    float sweepWidth_;    // Amount of change from min to max delay
+    float depth_;         // Mix level for phase-shifted signal (0-1)
+    float feedback_;      // Feedback level for feedback phaser (0-<1)
+    float lfoFrequency_;  // LFO frequency (Hz)
+    int   filtersPerChannel_; // How many allpass filters to use
+    int   waveform_;      // What shape should be used for the LFO
+    int   stereo_;        // Whether to use stereo phasing
+    
+private:
+    float lfo(float phase, int waveform);
+    void allocateFilters();   // Create the filter objects...
+    void deallocateFilters(); // Delete them...
+    void reallocateFilters(); // Delete and rebuild in one combined operation
+    
+    CriticalSection lock_; // Lock for updating number of filters
+    
+    float lfoPhase_;   // Phase of the low-frequency oscillator
+    double inverseSampleRate_; // It's more efficient to multiply than divide, so
+                               // cache the inverse of the sample rate
+    unsigned int sampleCount_; // Counter to keep track of samples elapsed, to
+                               // keep track of filter updates
+    unsigned int filterUpdateInterval_; // How often to update filter coefficients
+    
+    // Bank of allpass filters that do the phasing; N filters x M channels
+    OnePoleAllpassFilter **allpassFilters_;
+    
+    // Storage of the last output sample from each bank of filters, for use in
+    // feedback loop
+    float *lastFilterOutputs_;
+    int numLastFilterOutputs_;
+
+    int totalNumFilters_;
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PhaserAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/TwoPoleAllpassFilter.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,67 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "TwoPoleAllpassFilter.h"
+
+/* The actual audio processing is handled by the Juce IIRFilter parent
+ * class. This subclass is used to define the coefficients for our
+ * implementation of an allpass filter
+ */
+
+void TwoPoleAllpassFilter::makeAllpass (const double inverseSampleRate,
+                                        const double centreFrequency,
+                                        const double Q) noexcept
+{
+    jassert (Q > 0);
+
+    const double discreteFrequency = 2.0 * M_PI * centreFrequency * inverseSampleRate;
+    const double alpha = sin(discreteFrequency) / (2.0 * Q);
+    const double cos_w0 = -2.0 * cos(discreteFrequency);
+    
+    // setCoefficients() takes arguments: b0, b1, b2, a0, a1, a2
+    // It will normalise the filter according to the value of a0
+    // to allow standard time-domain implementations
+    
+    coefficients = IIRCoefficients(1.0 - alpha, /* b0 */
+                     cos_w0, /* b1 */
+                     1.0 + alpha, /* b2 */
+                     1.0 + alpha, /* a0 */
+                     cos_w0, /* a1 */
+                     1.0 - alpha /* a2 */);
+    
+    setCoefficients(coefficients);
+}
+
+/* Copy coefficients from another object of the same class */
+
+void TwoPoleAllpassFilter::copyCoefficientsFrom (const TwoPoleAllpassFilter& other) noexcept
+{
+    setCoefficients(other.coefficients);
+    active = other.active;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/Source/TwoPoleAllpassFilter.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,62 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Phaser: phasing effect using time-varying allpass filters
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef __TWOPOLEALLPASSFILTER_H_6E48F605__
+#define __TWOPOLEALLPASSFILTER_H_6E48F605__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+//==============================================================================
+/**
+ * This class implements a 2nd-order allpass filter used in the phaser effect.
+ */
+
+class TwoPoleAllpassFilter : public IIRFilter
+{
+public:
+    //==============================================================================
+	
+    /* Makes an allpass section at the given centre frequency and Q */
+	void makeAllpass (const double inverseSampleRate,
+                      const double centreFrequency,
+                      const double Q) noexcept;
+	
+    /** Makes this filter duplicate the set-up of another one.
+	 */
+    void copyCoefficientsFrom (const TwoPoleAllpassFilter& other) noexcept;
+	
+private:
+    //==============================================================================
+	JUCE_LEAK_DETECTOR (TwoPoleAllpassFilter);
+};
+
+
+#endif // __TWOPOLEALLPASSFILTER_H_6E48F605__
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/phaser/phaser.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="p9bx7W" name="phaser" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="com.yourcompany.phaser" buildVST="1" buildRTAS="0"
+              buildAU="1" pluginName="Phaser" pluginDesc="Phaser effect" pluginManufacturer="Reiss and McPherson"
+              pluginManufacturerCode="JRAM" pluginCode="phsr" pluginChannelConfigs="{2, 2}, {1, 1}"
+              pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0"
+              pluginSilenceInIsSilenceOut="1" pluginTailLength="0" pluginEditorRequiresKeys="0"
+              pluginAUExportPrefix="phaserAU" pluginAUViewClass="phaserAU_V1"
+              pluginRTASCategory="" jucerVersion="3.1.0" companyName="Reiss and McPherson"
+              buildVST3="0" buildAAX="0" aaxIdentifier="com.yourcompany.phaser"
+              pluginAAXCategory="AAX_ePlugInCategory_Dynamics" includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="OPpZYD" vstFolder="../../vstsdk2.4"
+               postbuildCommand="&#13;&#10;# This script takes the build product and copies it to the AU, VST, VST3, RTAS and AAX folders, depending on &#13;&#10;# which plugin types you've built&#13;&#10;&#13;&#10;original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME&#13;&#10;&#13;&#10;# this looks inside the binary to detect which platforms are needed.. &#13;&#10;copyAU=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'AudioUnit' | wc -l&#96;&#13;&#10;copyVST=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'VSTPlugin' | wc -l&#96;&#13;&#10;copyVST3=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'GetPluginFactory' | wc -l&#96;&#13;&#10;copyRTAS=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'CProcess' | wc -l&#96;&#13;&#10;copyAAX=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'ACFStartup' | wc -l&#96;&#13;&#10;&#13;&#10;if [ $copyAU -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AudioUnit folder...&quot;&#13;&#10;  AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component&#13;&#10;  if [ -d &quot;$AU&quot; ]; then &#13;&#10;    rm -r &quot;$AU&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$AU&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$AU/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$AU/Contents/$INFOPLIST_FILE&quot;&#13;&#10;&#13;&#10;  # Fix info.plist for AUs built with Xcode 3&#13;&#10;  if [ -f &quot;$DEVELOPER_DIR/Library/Developer/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp&quot; ]; then&#13;&#10;    echo&#13;&#10;  else&#13;&#10;    echo &quot;Removing AudioComponents entry from Info.plist because this is not a new-format AU&quot;&#13;&#10;    /usr/libexec/PlistBuddy -c &quot;Delete AudioComponents&quot; &quot;$AU/Contents/Info.plist&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST folder...&quot;&#13;&#10;  VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst&#13;&#10;  if [ -d &quot;$VST&quot; ]; then &#13;&#10;    rm -r &quot;$VST&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST3 -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST3 folder...&quot;&#13;&#10;  VST3=~/Library/Audio/Plug-Ins/VST3/$PRODUCT_NAME.vst3&#13;&#10;  if [ -d &quot;$VST3&quot; ]; then &#13;&#10;    rm -r &quot;$VST3&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST3&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST3/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST3/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyRTAS -gt 0 ]; then&#13;&#10;  echo &quot;Copying to RTAS folder...&quot;&#13;&#10;  RTAS=/Library/Application\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm&#13;&#10;  if [ -d &quot;$RTAS&quot; ]; then&#13;&#10;    rm -r &quot;$RTAS&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$RTAS&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyAAX -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AAX folder...&quot;&#13;&#10;&#13;&#10;  if [ -d &quot;/Applications/ProTools_3PDev/Plug-Ins&quot; ]; then&#13;&#10;    AAX1=&quot;/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX1&quot; ]; then&#13;&#10;      rm -r &quot;$AAX1&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX1&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  if [ -d &quot;/Library/Application Support/Avid/Audio/Plug-Ins&quot; ]; then&#13;&#10;    AAX2=&quot;/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX2&quot; ]; then&#13;&#10;      rm -r &quot;$AAX2&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX2&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="phaser"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="phaser"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="xI3BOV" name="phaser">
+    <GROUP id="{83C99C23-D182-3F87-CAB8-70052BC4150E}" name="Source">
+      <FILE id="H227jl" name="OnePoleAllpassFilter.cpp" compile="1" resource="0"
+            file="Source/OnePoleAllpassFilter.cpp"/>
+      <FILE id="rrV2Pq" name="OnePoleAllpassFilter.h" compile="0" resource="0"
+            file="Source/OnePoleAllpassFilter.h"/>
+      <FILE id="SfuYFA" name="TwoPoleAllpassFilter.cpp" compile="1" resource="0"
+            file="Source/TwoPoleAllpassFilter.cpp"/>
+      <FILE id="DPEnYt" name="TwoPoleAllpassFilter.h" compile="0" resource="0"
+            file="Source/TwoPoleAllpassFilter.h"/>
+      <FILE id="Q9JkNj" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="vXspVq" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="HUshwg" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="nnFaFM" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/pingpongdelay/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pingpongdelay/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,211 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ping-Pong Delay: stereo delay alternating between channels
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+PingPongDelayAudioProcessorEditor::PingPongDelayAudioProcessorEditor (PingPongDelayAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      delayLengthLeftLabel_("", "L-R Delay (sec):"),
+      delayLengthRightLabel_("", "R-L Delay (sec):"),
+      feedbackLabel_("", "Feedback:"),
+      wetMixLabel_("", "Delayed Mix Level:")
+{
+
+    // Set up the sliders
+    addAndMakeVisible (&delayLengthLeftSlider_);
+    delayLengthLeftSlider_.setSliderStyle (Slider::Rotary);
+    delayLengthLeftSlider_.addListener (this);
+    delayLengthLeftSlider_.setRange (0.01, 2.0, 0.01);
+
+    addAndMakeVisible (&delayLengthRightSlider_);
+    delayLengthRightSlider_.setSliderStyle (Slider::Rotary);
+    delayLengthRightSlider_.addListener (this);
+    delayLengthRightSlider_.setRange (0.01, 2.0, 0.01);
+    
+    addAndMakeVisible (&feedbackSlider_);
+    feedbackSlider_.setSliderStyle (Slider::Rotary);
+    feedbackSlider_.addListener (this);
+    feedbackSlider_.setRange (0.0, 0.995, 0.005);
+ 
+    addAndMakeVisible (&wetMixSlider_);
+    wetMixSlider_.setSliderStyle (Slider::Rotary);
+    wetMixSlider_.addListener (this);
+    wetMixSlider_.setRange (0.0, 1.0, 0.01);
+    
+    addAndMakeVisible(&linkDelaysButton_);
+    linkDelaysButton_.setName("Link Delays");
+    linkDelaysButton_.setButtonText("Link Delays");
+    linkDelaysButton_.setToggleState(true, dontSendNotification);
+    linkDelaysButton_.addListener(this);
+    
+    addAndMakeVisible(&reverseChannelsButton_);
+    reverseChannelsButton_.setName("Reverse Output Channels");
+    reverseChannelsButton_.setButtonText("Reverse Output Channels");
+    reverseChannelsButton_.setToggleState(false, dontSendNotification);
+    reverseChannelsButton_.addListener(this);
+    
+    linkDelays_ = true;
+    
+    delayLengthLeftLabel_.attachToComponent(&delayLengthLeftSlider_, false);
+    delayLengthLeftLabel_.setFont(Font (11.0f));
+
+    delayLengthRightLabel_.attachToComponent(&delayLengthRightSlider_, false);
+    delayLengthRightLabel_.setFont(Font (11.0f));
+    
+    feedbackLabel_.attachToComponent(&feedbackSlider_, false);
+    feedbackLabel_.setFont(Font (11.0f));
+    
+    wetMixLabel_.attachToComponent(&wetMixSlider_, false);
+    wetMixLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(500, 140, 500, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+PingPongDelayAudioProcessorEditor::~PingPongDelayAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void PingPongDelayAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void PingPongDelayAudioProcessorEditor::resized()
+{
+    delayLengthLeftSlider_.setBounds (20, 20, 150, 40);
+    delayLengthRightSlider_.setBounds (200, 20, 150, 40);
+    feedbackSlider_.setBounds (20, 80, 150, 40);
+    wetMixSlider_.setBounds(200, 80, 150, 40);
+    linkDelaysButton_.setBounds(380, 20, 100, 40);
+    linkDelaysButton_.changeWidthToFitText();
+    reverseChannelsButton_.setBounds(380, 80, 100, 40);
+    reverseChannelsButton_.changeWidthToFitText();
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void PingPongDelayAudioProcessorEditor::timerCallback()
+{
+    PingPongDelayAudioProcessor* ourProcessor = getProcessor();
+    
+    delayLengthLeftSlider_.setValue(ourProcessor->delayLengthLeft_, dontSendNotification);
+    delayLengthRightSlider_.setValue(ourProcessor->delayLengthRight_, dontSendNotification);
+    feedbackSlider_.setValue(ourProcessor->feedback_, dontSendNotification);
+    wetMixSlider_.setValue(ourProcessor->wetMix_, dontSendNotification);
+    reverseChannelsButton_.setToggleState(ourProcessor->reverseChannels_, dontSendNotification);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void PingPongDelayAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &delayLengthLeftSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PingPongDelayAudioProcessor::kDelayLengthLeftParam,
+                                                   (float)delayLengthLeftSlider_.getValue());
+        if(linkDelays_)
+        {
+            // Set the other slider to match this value
+            getProcessor()->setParameterNotifyingHost (PingPongDelayAudioProcessor::kDelayLengthRightParam,
+                                                       (float)delayLengthLeftSlider_.getValue());
+            delayLengthRightSlider_.setValue(delayLengthLeftSlider_.getValue(), dontSendNotification);
+        }
+    }
+    else if (slider == &delayLengthRightSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PingPongDelayAudioProcessor::kDelayLengthRightParam,
+                                                   (float)delayLengthRightSlider_.getValue());
+
+        if(linkDelays_)
+        {
+            // Set the other slider to match this value
+            getProcessor()->setParameterNotifyingHost (PingPongDelayAudioProcessor::kDelayLengthLeftParam,
+                                                       (float)delayLengthRightSlider_.getValue());
+            delayLengthLeftSlider_.setValue(delayLengthRightSlider_.getValue(), dontSendNotification);
+        }
+    }
+    else if (slider == &feedbackSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PingPongDelayAudioProcessor::kFeedbackParam,
+                                                   (float)feedbackSlider_.getValue());
+    }
+    else if (slider == &wetMixSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (PingPongDelayAudioProcessor::kWetMixParam,
+                                                   (float)wetMixSlider_.getValue());
+    }
+}
+
+// Callback for toggle button
+void PingPongDelayAudioProcessorEditor::buttonClicked (Button *button)
+{
+    if(button == &linkDelaysButton_)
+    {
+        linkDelays_ = button->getToggleState();
+        
+        if(linkDelays_)
+        {
+            // Keep L and R delays equal, setting them to be if they aren't already
+            PingPongDelayAudioProcessor* ourProcessor = getProcessor();
+            
+            delayLengthRightSlider_.setValue(ourProcessor->delayLengthLeft_, dontSendNotification);
+            ourProcessor->setParameterNotifyingHost(PingPongDelayAudioProcessor::kDelayLengthRightParam,
+                                                    ourProcessor->delayLengthLeft_);
+        }
+    }
+    else if(button == &reverseChannelsButton_)
+    {
+        bool reverse = button->getToggleState();
+        
+        if(reverse)
+            getProcessor()->setParameterNotifyingHost(PingPongDelayAudioProcessor::kReverseChannelsParam, 1.0);
+        else
+            getProcessor()->setParameterNotifyingHost(PingPongDelayAudioProcessor::kReverseChannelsParam, 0.0);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pingpongdelay/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,76 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ping-Pong Delay: stereo delay alternating between channels
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class PingPongDelayAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public Button::Listener,
+                                   public Timer
+{
+public:
+    PingPongDelayAudioProcessorEditor (PingPongDelayAudioProcessor* ownerFilter);
+    ~PingPongDelayAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void buttonClicked (Button *);
+    
+private:
+    Label delayLengthLeftLabel_, delayLengthRightLabel_;
+    Label feedbackLabel_, wetMixLabel_;
+    Slider delayLengthLeftSlider_, delayLengthRightSlider_;
+    Slider feedbackSlider_, wetMixSlider_;
+    ToggleButton linkDelaysButton_;
+    ToggleButton reverseChannelsButton_;
+    
+    bool linkDelays_, reverseChannels_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    PingPongDelayAudioProcessor* getProcessor() const
+    {
+        return static_cast <PingPongDelayAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pingpongdelay/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,375 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ping-Pong Delay: stereo delay alternating between channels
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+//==============================================================================
+PingPongDelayAudioProcessor::PingPongDelayAudioProcessor() : delayBuffer_ (2, 1)
+{
+    // Set default values:
+    delayLengthLeft_ = delayLengthRight_ = 0.5;
+    wetMix_ = 0.5;
+    feedback_ = 0.75;
+    delayBufferLength_ = 1;
+    reverseChannels_ = false;
+    
+    // Start the circular buffer pointers at the beginning
+    delayReadPositionLeft_ = delayReadPositionRight_ = 0;
+    delayWritePosition_ = 0;
+    
+    lastUIWidth_ = 500;
+    lastUIHeight_ = 140;
+}
+
+PingPongDelayAudioProcessor::~PingPongDelayAudioProcessor()
+{
+}
+
+//==============================================================================
+const String PingPongDelayAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int PingPongDelayAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float PingPongDelayAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kWetMixParam:           return wetMix_;
+        case kFeedbackParam:         return feedback_;
+        case kDelayLengthLeftParam:  return delayLengthLeft_;
+        case kDelayLengthRightParam: return delayLengthRight_;
+        case kReverseChannelsParam:  return (reverseChannels_ ? 1.0f : 0.0f);
+        default:                     return 0.0f;
+    }
+}
+
+void PingPongDelayAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kWetMixParam:
+            wetMix_ = newValue;
+            break;
+        case kFeedbackParam:
+            feedback_ = newValue;
+            break;
+        case kDelayLengthLeftParam:
+            delayLengthLeft_ = newValue;
+            delayReadPositionLeft_ = (int)(delayWritePosition_ - (delayLengthLeft_ * getSampleRate())
+                                       + delayBufferLength_) % delayBufferLength_;
+            break;
+        case kDelayLengthRightParam:
+            delayLengthRight_ = newValue;
+            delayReadPositionRight_ = (int)(delayWritePosition_ - (delayLengthRight_ * getSampleRate())
+                                           + delayBufferLength_) % delayBufferLength_;
+            break;
+        case kReverseChannelsParam:
+            reverseChannels_ = (newValue != 0.0f);
+            break;
+        default:
+            break;
+    }
+}
+
+const String PingPongDelayAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kWetMixParam:           return "wet mix";
+        case kFeedbackParam:         return "feedback";
+        case kDelayLengthLeftParam:  return "delay left";
+        case kDelayLengthRightParam: return "delay right";
+        case kReverseChannelsParam:  return "reverse channels";
+        default:                     break;
+    }
+    
+    return String::empty;
+}
+
+const String PingPongDelayAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String PingPongDelayAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String PingPongDelayAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool PingPongDelayAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PingPongDelayAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PingPongDelayAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double PingPongDelayAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool PingPongDelayAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool PingPongDelayAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int PingPongDelayAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int PingPongDelayAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void PingPongDelayAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String PingPongDelayAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void PingPongDelayAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void PingPongDelayAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Allocate and zero the delay buffer (size will depend on current sample rate)
+    // Sanity check the result so we don't end up with any zero-length calculations
+    delayBufferLength_ = (int)(2.0*sampleRate);
+    if(delayBufferLength_ < 1)
+        delayBufferLength_ = 1;
+    delayBuffer_.setSize(2, delayBufferLength_);
+    delayBuffer_.clear();
+    
+    // This method gives us the sample rate. Use this to figure out what the delay position
+    // offset should be (since it is specified in seconds, and we need to convert it to a number
+    // of samples)
+    delayReadPositionLeft_ = (int)(delayWritePosition_ - (delayLengthLeft_ * getSampleRate())
+                               + delayBufferLength_) % delayBufferLength_;
+    delayReadPositionRight_ = (int)(delayWritePosition_ - (delayLengthRight_ * getSampleRate())
+                                   + delayBufferLength_) % delayBufferLength_;
+}
+
+void PingPongDelayAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    // The delay buffer will stay in memory until the effect is unloaded.
+}
+
+void PingPongDelayAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    delayBuffer_.clear();
+}
+
+
+void PingPongDelayAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+
+    // This shouldn't happen, but we need a sanity check: this effect only makes sense
+    // if there are at least 2 channels to work with (and in this case only 2...)
+    if(buffer.getNumChannels() < 2)
+        return;
+    
+    // If there is one input only, the second channel may not contain anything useful.
+    // start with a blank buffer in this case
+    if(numInputChannels < 2)
+        buffer.clear(1, 0, numSamples);
+    
+    // channelDataL and channelDataR are arrays of length numSamples which contain
+    // the audio for one channel
+    float *channelDataL = buffer.getSampleData(0);
+    float *channelDataR = buffer.getSampleData(1);
+        
+    // delayDataL and delayDataR are the circular buffers for implementing delay
+    float* delayDataL = delayBuffer_.getSampleData(0);
+    float* delayDataR = delayBuffer_.getSampleData(1);
+    
+    for (int i = 0; i < numSamples; ++i)
+    {
+        const float inL = channelDataL[i];
+        const float inR = channelDataR[i];
+        float outL, outR;
+        
+        if(reverseChannels_)
+        {
+            outL = (inL + wetMix_ * delayDataR[delayReadPositionLeft_]);
+            outR = (inR + wetMix_ * delayDataL[delayReadPositionRight_]);
+        }
+        else
+        {
+            outL = (inL + wetMix_ * delayDataL[delayReadPositionLeft_]);
+            outR = (inR + wetMix_ * delayDataR[delayReadPositionRight_]);
+        }
+            
+        // Store the output of one delay buffer into the other, producing
+        // the ping-pong effect
+        delayDataR[delayWritePosition_] = inR + (delayDataL[delayReadPositionLeft_] * feedback_);
+        delayDataL[delayWritePosition_] = inL + (delayDataR[delayReadPositionRight_] * feedback_);
+        
+        if (++delayReadPositionLeft_ >= delayBufferLength_)
+            delayReadPositionLeft_ = 0;
+        if (++delayReadPositionRight_ >= delayBufferLength_)
+            delayReadPositionRight_ = 0;
+        if (++delayWritePosition_ >= delayBufferLength_)
+            delayWritePosition_ = 0;
+        
+        // Store the output samples in the buffer, replacing the input
+        channelDataL[i] = outL;
+        channelDataR[i] = outR;
+    }
+    
+    // Clear any channels above 2 (stereo)
+    for (int i = 2; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool PingPongDelayAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* PingPongDelayAudioProcessor::createEditor()
+{
+    return new PingPongDelayAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void PingPongDelayAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("delayLengthLeft", delayLengthLeft_);
+    xml.setAttribute("delayLengthRight", delayLengthRight_);
+    xml.setAttribute("feedback", feedback_);
+    xml.setAttribute("wetMix", wetMix_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void PingPongDelayAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            delayLengthLeft_  = (float)xmlState->getDoubleAttribute("delayLengthLeft", delayLengthLeft_);
+            delayLengthRight_ = (float)xmlState->getDoubleAttribute("delayLengthRight", delayLengthRight_);
+            feedback_     = (float)xmlState->getDoubleAttribute("feedback", feedback_);
+            wetMix_       = (float)xmlState->getDoubleAttribute("wetMix", wetMix_);
+        }
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new PingPongDelayAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pingpongdelay/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,124 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ping-Pong Delay: stereo delay alternating between channels
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class PingPongDelayAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    PingPongDelayAudioProcessor();
+    ~PingPongDelayAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+    
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;    
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kDelayLengthLeftParam = 0,
+        kDelayLengthRightParam,
+        kWetMixParam,
+        kFeedbackParam,
+        kReverseChannelsParam,
+        kNumParameters
+    };
+    
+    // Adjustable parameters:
+    float delayLengthLeft_;  // Length of left->right delay line in seconds
+    float delayLengthRight_; // Length of right->left delay line in seconds
+    float wetMix_;           // Mix level of delayed signal (0-1)
+    float feedback_;         // Feedback level (0-just less than 1)
+    bool reverseChannels_;   // Whether to reverse the outputs from the delays
+    
+private:
+    // Circular buffer variables for implementing delay
+    AudioSampleBuffer delayBuffer_;
+    int delayBufferLength_;
+    int delayReadPositionLeft_, delayReadPositionRight_;
+    int delayWritePosition_;
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PingPongDelayAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pingpongdelay/pingpongdelay.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="PToC6p" name="pingpongdelay" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.pingpongdelayeffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Ping-Pong Delay" pluginDesc="Stereo ping-pong delay"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="ppdl" pluginChannelConfigs="{2,2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="0"
+              pluginTailLength="2" pluginEditorRequiresKeys="0" pluginAUExportPrefix="pingpongdelayAU"
+              pluginAUViewClass="pingpongdelayAU_V1" pluginRTASCategory=""
+              jucerVersion="3.1.0" companyName="Reiss and McPherson" buildVST3="0"
+              buildAAX="0" aaxIdentifier="com.yourcompany.pingpongdelay" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="PhfvaT" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="pingpongdelay"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="pingpongdelay"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="ta1Nc1" name="pingpongdelay">
+    <GROUP id="{C0B449BE-299E-DD4A-8F5E-FF2821BC0211}" name="Source">
+      <FILE id="doXhtM" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="AAZGed" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="oSou0y" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="VlrG11" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/pvoc_passthrough/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_passthrough/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,156 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Passthrough: phase vocoder structure which passes input
+  to output without performing any processing
+ 
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+PVOCPassthroughAudioProcessorEditor::PVOCPassthroughAudioProcessorEditor (PVOCPassthroughAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      fftSizeLabel_("", "FFT Size:"),
+      hopSizeLabel_("", "Hop Size:"),
+      windowTypeLabel_("", "Window Type:")
+{
+    // This is where our plugin's editor size is set.
+    // setSize(170, 80);
+    
+    // Set up the selection boxes
+    
+    addAndMakeVisible(&fftSizeComboBox_);
+    fftSizeComboBox_.setEditableText(false);
+    fftSizeComboBox_.setJustificationType(Justification::left);
+    fftSizeComboBox_.addItem("64", 64);
+    fftSizeComboBox_.addItem("128", 128);
+    fftSizeComboBox_.addItem("256", 256);
+    fftSizeComboBox_.addItem("512", 512);
+    fftSizeComboBox_.addItem("1024", 1024);
+    fftSizeComboBox_.addItem("2048", 2048);
+    fftSizeComboBox_.addListener(this);
+    
+    addAndMakeVisible(&hopSizeComboBox_);
+    hopSizeComboBox_.setEditableText(false);
+    hopSizeComboBox_.setJustificationType(Justification::left);
+    hopSizeComboBox_.addItem("1 Window", PVOCPassthroughAudioProcessor::kHopSize1Window);
+    hopSizeComboBox_.addItem("1/2 Window", PVOCPassthroughAudioProcessor::kHopSize1_2Window);
+    hopSizeComboBox_.addItem("1/4 Window", PVOCPassthroughAudioProcessor::kHopSize1_4Window);
+    hopSizeComboBox_.addItem("1/8 Window", PVOCPassthroughAudioProcessor::kHopSize1_8Window);
+    hopSizeComboBox_.addListener(this);
+    
+    addAndMakeVisible(&windowTypeComboBox_);
+    windowTypeComboBox_.setEditableText(false);
+    windowTypeComboBox_.setJustificationType(Justification::left);
+    windowTypeComboBox_.addItem("Rectangular", PVOCPassthroughAudioProcessor::kWindowRectangular);
+    windowTypeComboBox_.addItem("Bartlett", PVOCPassthroughAudioProcessor::kWindowBartlett);
+    windowTypeComboBox_.addItem("Hann", PVOCPassthroughAudioProcessor::kWindowHann);
+    windowTypeComboBox_.addItem("Hamming", PVOCPassthroughAudioProcessor::kWindowHamming);
+    windowTypeComboBox_.addListener(this);
+    
+    fftSizeLabel_.attachToComponent(&fftSizeComboBox_, false);
+    fftSizeLabel_.setFont(Font (11.0f));
+    
+    hopSizeLabel_.attachToComponent(&hopSizeComboBox_, false);
+    hopSizeLabel_.setFont(Font (11.0f));
+    
+    windowTypeLabel_.attachToComponent(&windowTypeComboBox_, false);
+    windowTypeLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 120, 400, 160);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+PVOCPassthroughAudioProcessorEditor::~PVOCPassthroughAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void PVOCPassthroughAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void PVOCPassthroughAudioProcessorEditor::resized()
+{
+    fftSizeComboBox_.setBounds(20, 20, 150, 30);
+    hopSizeComboBox_.setBounds(200, 20, 150, 30);
+    windowTypeComboBox_.setBounds(20, 70, 150, 30);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void PVOCPassthroughAudioProcessorEditor::timerCallback()
+{
+    PVOCPassthroughAudioProcessor* ourProcessor = getProcessor();
+    
+    fftSizeComboBox_.setSelectedId(ourProcessor->fftSelectedSize_, false);
+    hopSizeComboBox_.setSelectedId(ourProcessor->hopSelectedSize_, false);
+    windowTypeComboBox_.setSelectedId(ourProcessor->windowType_, false);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void PVOCPassthroughAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void PVOCPassthroughAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &fftSizeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PVOCPassthroughAudioProcessor::kFFTSizeParam,
+                                                   (float)fftSizeComboBox_.getSelectedId());
+    }
+    else if(comboBox == &hopSizeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PVOCPassthroughAudioProcessor::kHopSizeParam,
+                                                   (float)hopSizeComboBox_.getSelectedId());
+    }
+    else if(comboBox == &windowTypeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PVOCPassthroughAudioProcessor::kWindowTypeParam,
+                                                   (float)windowTypeComboBox_.getSelectedId());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_passthrough/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,76 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Passthrough: phase vocoder structure which passes input
+  to output without performing any processing
+ 
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class PVOCPassthroughAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Timer
+{
+public:
+    PVOCPassthroughAudioProcessorEditor (PVOCPassthroughAudioProcessor* ownerFilter);
+    ~PVOCPassthroughAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    
+private:
+    Label fftSizeLabel_, hopSizeLabel_, windowTypeLabel_;
+    ComboBox fftSizeComboBox_, hopSizeComboBox_, windowTypeComboBox_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    PVOCPassthroughAudioProcessor* getProcessor() const
+    {
+        return static_cast <PVOCPassthroughAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_passthrough/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,655 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Passthrough: phase vocoder structure which passes input
+  to output without performing any processing
+ 
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+PVOCPassthroughAudioProcessor::PVOCPassthroughAudioProcessor() : inputBuffer_(2, 1), outputBuffer_(2, 1)
+{
+    // Set default values:
+    fftSelectedSize_ = 512;
+    hopSelectedSize_ = kHopSize1_2Window;
+    windowType_ = kWindowRectangular;
+
+    fftInitialised_ = false;
+    fftActualTransformSize_ = 0;
+    inputBufferLength_ = 1;
+    outputBufferLength_ = 1;
+    inputBufferWritePosition_ = outputBufferWritePosition_ = outputBufferReadPosition_ = 0;
+    samplesSinceLastFFT_ = 0;
+    windowBuffer_ = 0;
+    windowBufferLength_ = 0;
+    preparedToPlay_ = false;
+    fftScaleFactor_ = 0.0;
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 120;
+}
+
+PVOCPassthroughAudioProcessor::~PVOCPassthroughAudioProcessor()
+{
+    // Release FFT resources if allocated. This should be handled by
+    // releaseResources() but in the event it doesn't happen, this avoids
+    // a leak. Harmless to call it twice.
+    deinitFFT();
+    deinitWindow();
+}
+
+//==============================================================================
+const String PVOCPassthroughAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int PVOCPassthroughAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float PVOCPassthroughAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kFFTSizeParam:    return (float)fftSelectedSize_;
+        case kHopSizeParam:    return (float)hopSelectedSize_;
+        case kWindowTypeParam: return (float)windowType_;
+        default:               return 0.0f;
+    }
+}
+
+void PVOCPassthroughAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kFFTSizeParam:
+            if((int)newValue != fftSelectedSize_)
+            {
+                fftSelectedSize_ = (int)newValue;
+                if(preparedToPlay_)
+                {
+                    // Update settings if currently playing, else wait until prepareToPlay() called
+                    initFFT(fftSelectedSize_);
+                    initWindow(fftSelectedSize_, windowType_);
+                }
+            }
+            break;
+        case kHopSizeParam:
+            hopSelectedSize_ = (int)newValue;
+            if(preparedToPlay_)
+                updateHopSize();
+            break;
+        case kWindowTypeParam:
+            // Recalculate window if needed
+            if((int)newValue != windowType_)
+            {
+                windowType_ = (int)newValue;
+                if(preparedToPlay_)
+                    initWindow(fftActualTransformSize_, (int)newValue);
+            }
+            break;
+        default:
+            break;
+    }
+}
+
+const String PVOCPassthroughAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kFFTSizeParam:    return "FFT size";
+        case kHopSizeParam:    return "hop size";
+        case kWindowTypeParam: return "window type";
+        default:               break;
+    }
+    
+    return String::empty;
+}
+
+const String PVOCPassthroughAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String PVOCPassthroughAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String PVOCPassthroughAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool PVOCPassthroughAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PVOCPassthroughAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PVOCPassthroughAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double PVOCPassthroughAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool PVOCPassthroughAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool PVOCPassthroughAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int PVOCPassthroughAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int PVOCPassthroughAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void PVOCPassthroughAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String PVOCPassthroughAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void PVOCPassthroughAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void PVOCPassthroughAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback
+    // initialisation that you need..
+    
+    initFFT(fftSelectedSize_);
+    initWindow(fftSelectedSize_, windowType_);
+    preparedToPlay_ = true;
+}
+
+void PVOCPassthroughAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    deinitFFT();
+    deinitWindow();
+    preparedToPlay_ = false;
+}
+
+void PVOCPassthroughAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel, inwritepos, sampsincefft;
+    int outreadpos, outwritepos;
+    
+    // Grab the lock that prevents the FFT settings from changing
+    fftSpinLock_.enter();
+    
+    // Check that we're initialised and ready to go. If not, set output to 0
+    if(!fftInitialised_)
+    {
+        for (channel = 0; channel < numOutputChannels; ++channel)
+        {
+            buffer.clear (channel, 0, buffer.getNumSamples());
+        }
+        
+        fftSpinLock_.exit();
+        return;
+    }
+
+    // Go through each channel of audio that's passed in. Collect the samples in the input
+    // buffer. When we've reached the next hop interval, calculate the FFT.
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // inputBufferData is the circular buffer for collecting input samples for the FFT
+        float* inputBufferData = inputBuffer_.getSampleData(jmin (channel, inputBuffer_.getNumChannels() - 1));
+        float* outputBufferData = outputBuffer_.getSampleData(jmin (channel, inputBuffer_.getNumChannels() - 1));
+        
+        // State variables need to be temporarily cached for each channel. We don't want the
+        // operations on one channel to affect the identical behaviour of the next channel
+        inwritepos = inputBufferWritePosition_;
+        outwritepos = outputBufferWritePosition_;
+        outreadpos = outputBufferReadPosition_;
+        sampsincefft = samplesSinceLastFFT_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+            
+            // Store the next buffered sample in the output. Do this first before anything
+            // changes the output buffer-- we will have at least one FFT size worth of data
+            // stored and ready to go. Set the result to 0 when finished in preparation for the
+            // next overlap/add procedure.
+            channelData[i] = outputBufferData[outreadpos];
+            outputBufferData[outreadpos] = 0.0;
+            if(++outreadpos >= outputBufferLength_)
+                outreadpos = 0;
+
+            // Store the current sample in the input buffer, incrementing the write pointer. Also
+            // increment how many samples we've stored since the last transform. If it reaches the
+            // hop size, perform an FFT and any frequency-domain processing.
+            inputBufferData[inwritepos] = in;
+            if (++inwritepos >= inputBufferLength_)
+                inwritepos = 0;
+            if (++sampsincefft >= hopActualSize_)
+            {
+                sampsincefft = 0;
+                
+                // Find the index of the starting sample in the buffer. When the buffer length
+                // is equal to the transform size, this will be the current write position but
+                // this code is more general for larger buffers.
+                int inputBufferStartPosition = (inwritepos + inputBufferLength_
+                                                - fftActualTransformSize_) % inputBufferLength_;
+                
+                // Window the buffer and copy it into the FFT input
+                int inputBufferIndex = inputBufferStartPosition;
+                for(int fftBufferIndex = 0; fftBufferIndex < fftActualTransformSize_; fftBufferIndex++)
+                {
+                    // Set real part to windowed signal; imaginary part to 0.
+                    fftTimeDomain_[fftBufferIndex][1] = 0.0;
+                    if(fftBufferIndex >= windowBufferLength_) // Safety check, in case window isn't ready
+                        fftTimeDomain_[fftBufferIndex][0] = 0.0;
+                    else
+                        fftTimeDomain_[fftBufferIndex][0] = windowBuffer_[fftBufferIndex]
+                                                                * inputBufferData[inputBufferIndex];
+                    inputBufferIndex++;
+                    if(inputBufferIndex >= inputBufferLength_)
+                        inputBufferIndex = 0;
+                }
+
+                // Perform the FFT on the windowed data, going into the frequency domain.
+                // Result will be in fftFrequencyDomain_
+                fftw_execute(fftForwardPlan_);
+                
+                // ********** PHASE VOCODER PROCESSING GOES HERE **************
+                // This is the place where frequency-domain calculations are made
+                // on the transformed signal. Put the result back into fftFrequencyDomain_
+                // before transforming back.
+                //
+                // In this example, we don't do anything except reconstruct the original
+                // signal to show that the whole infrastructure works.
+                // ************************************************************
+                
+                // Perform the inverse FFT to get back to the time domain. Result wll be
+                // in fftTimeDomain_. If we've done it right (kept the frequency domain
+                // symmetric), the time domain resuld should be strictly real allowing us
+                // to ignore the imaginary part.
+                fftw_execute(fftBackwardPlan_);
+                
+                // Add the result to the output buffer, starting at the current write position
+                // (Output buffer will have been zeroed after reading the last time around)
+                // Output needs to be scaled by the transform size to get back to original amplitude:
+                // this is a property of how fftw is implemented. Scaling will also need to be adjusted
+                // based on hop size to get the same output level (smaller hop size produces more overlap
+                // and hence higher signal level)
+                int outputBufferIndex = outwritepos;
+                for(int fftBufferIndex = 0; fftBufferIndex < fftActualTransformSize_; fftBufferIndex++)
+                {
+                    outputBufferData[outputBufferIndex] += fftTimeDomain_[fftBufferIndex][0] * fftScaleFactor_;
+                    if(++outputBufferIndex >= outputBufferLength_)
+                        outputBufferIndex = 0;
+                }
+                
+                // Advance the write position within the buffer by the hop size
+                outwritepos = (outwritepos + hopActualSize_) % outputBufferLength_;
+            }
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    inputBufferWritePosition_ = inwritepos;
+    outputBufferWritePosition_ = outwritepos;
+    outputBufferReadPosition_ = outreadpos;
+    samplesSinceLastFFT_ = sampsincefft;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+    
+    fftSpinLock_.exit();
+}
+
+//==============================================================================
+bool PVOCPassthroughAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* PVOCPassthroughAudioProcessor::createEditor()
+{
+    return new PVOCPassthroughAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void PVOCPassthroughAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("fftSize", fftSelectedSize_);
+    xml.setAttribute("hopSize", hopSelectedSize_);
+    xml.setAttribute("windowType", windowType_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void PVOCPassthroughAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            fftSelectedSize_  = (int)xmlState->getDoubleAttribute("fftSize", fftSelectedSize_);
+            hopSelectedSize_  = (int)xmlState->getDoubleAttribute("hopSize", hopSelectedSize_);
+            windowType_  = (int)xmlState->getDoubleAttribute("windowType", windowType_);
+            
+            if(preparedToPlay_)
+            {
+                // Update settings if currently playing, else wait until prepareToPlay() called
+                initFFT(fftSelectedSize_);
+                initWindow(fftSelectedSize_, windowType_);
+            }
+        }
+    }
+}
+
+//==============================================================================
+// Initialise the FFT data structures for a given length transform
+void PVOCPassthroughAudioProcessor::initFFT(int length)
+{
+    if(fftInitialised_)
+        deinitFFT();
+    
+    // Save the current length so we know how big our results are later
+    fftActualTransformSize_ = length;
+    
+    // Here we allocate the complex-number buffers for the FFT. This uses
+    // a convenient wrapper on the more general fftw_malloc()
+    fftTimeDomain_ = fftw_alloc_complex(length);
+    fftFrequencyDomain_ = fftw_alloc_complex(length);
+    
+    // FFTW_ESTIMATE doesn't necessarily produce the fastest executing code (FFTW_MEASURE
+    // will get closer) but it carries a minimum startup cost. FFTW_MEASURE might stall for
+    // several seconds which would be annoying in an audio plug-in context.
+    fftForwardPlan_ = fftw_plan_dft_1d(fftActualTransformSize_, fftTimeDomain_,
+                                       fftFrequencyDomain_, FFTW_FORWARD, FFTW_ESTIMATE);
+    fftBackwardPlan_ = fftw_plan_dft_1d(fftActualTransformSize_, fftFrequencyDomain_,
+                                       fftTimeDomain_, FFTW_BACKWARD, FFTW_ESTIMATE);
+    
+    // Allocate the buffer that the samples will be collected in
+    inputBufferLength_ = fftActualTransformSize_;
+    inputBuffer_.setSize(2, inputBufferLength_);
+    inputBuffer_.clear();
+    inputBufferWritePosition_ = 0;
+    samplesSinceLastFFT_ = 0;
+    
+    // Allocate the output buffer to be twice the size of the FFT
+    // This will be enough for all hop size cases
+    outputBufferLength_ = 2*fftActualTransformSize_;
+    outputBuffer_.setSize(2, outputBufferLength_);
+    outputBuffer_.clear();
+    outputBufferReadPosition_ = 0;
+    
+    updateHopSize();
+    
+    fftInitialised_ = true;
+}
+
+// Free the FFT data structures
+void PVOCPassthroughAudioProcessor::deinitFFT()
+{
+    if(!fftInitialised_)
+        return;
+    
+    // Prevent this variable from changing while an audio callback is running.
+    // Once it has changed, the next audio callback will find that it's not
+    // initialised and will return silence instead of attempting to work with the
+    // (invalid) FFT structures. This produces an audible glitch but no crash,
+    // and is the simplest way to handle parameter changes in this example code.
+    fftSpinLock_.enter();
+    fftInitialised_ = false;
+    fftSpinLock_.exit();
+    
+    fftw_destroy_plan(fftForwardPlan_);
+    fftw_destroy_plan(fftBackwardPlan_);
+    fftw_free(fftTimeDomain_);
+    fftw_free(fftFrequencyDomain_);
+    
+    // Leave the input buffer in memory until the plugin is released
+}
+
+//==============================================================================
+// Create a new window of a given length and type
+void PVOCPassthroughAudioProcessor::initWindow(int length, int windowType)
+{
+    if(windowBuffer_ != 0)
+        deinitWindow();
+    if(length == 0) // Sanity check
+        return;
+    
+    // Allocate memory for the window
+    windowBuffer_ = (double *)malloc(length * sizeof(double));
+    
+    // Write the length as a double here to simplify the code below (otherwise
+    // typecasts would be wise)
+    double windowLength = length;
+    
+    // Set values for the window, depending on its type
+    for(int i = 0; i < length; i++)
+    {
+        // Window functions are typically defined to be symmetrical. This will cause a
+        // problem in the overlap-add process: the windows instead need to be periodic
+        // when arranged end-to-end. As a result we calculate the window of one sample
+        // larger than usual, and drop the last sample. (This works as long as N is even.)
+        // See Julius Smith, "Spectral Audio Signal Processing" for details.
+        switch(windowType)
+        {
+            case kWindowBartlett:
+                windowBuffer_[i] = (2.0/(windowLength + 2.0))*
+                    (0.5*(windowLength + 2.0) - abs((double)i - 0.5*windowLength));
+                break;
+            case kWindowHann:
+                windowBuffer_[i] = 0.5*(1.0 - cos(2.0*M_PI*(double)i/windowLength));
+                break;
+            case kWindowHamming:
+                windowBuffer_[i] = 0.54 - 0.46*cos(2.0*M_PI*(double)i/windowLength);
+                break;
+            case kWindowRectangular:
+            default:
+                windowBuffer_[i] = 1.0;
+                break;
+        }
+    }
+    
+    windowBufferLength_ = length;
+    updateScaleFactor();
+}
+
+// Free the window buffer
+void PVOCPassthroughAudioProcessor::deinitWindow()
+{
+    if(windowBuffer_ == 0)
+        return;
+    
+    // Delay clearing the window until the audio thread is not running
+    // to avoid a crash if the code tries to access an invalid window
+    fftSpinLock_.enter();
+    windowBufferLength_ = 0;
+    fftSpinLock_.exit();
+    
+    free(windowBuffer_);
+    windowBuffer_ = 0;
+}
+
+// Update the actual hop size depending on the window size and hop size settings
+// Hop size is expressed as a fraction of a window in the parameters.
+void PVOCPassthroughAudioProcessor::updateHopSize()
+{
+    switch(hopSelectedSize_)
+    {
+        case kHopSize1Window:
+            hopActualSize_ = fftActualTransformSize_;
+            break;
+        case kHopSize1_2Window:
+            hopActualSize_ = fftActualTransformSize_ / 2;
+            break;
+        case kHopSize1_4Window:
+            hopActualSize_ = fftActualTransformSize_ / 4;
+            break;
+        case kHopSize1_8Window:
+            hopActualSize_ = fftActualTransformSize_ / 8;
+            break;
+    }
+    
+    // Update the factor by which samples are scaled to preserve unity gain
+    updateScaleFactor();
+    
+    // Read pointer lags the write pointer to allow for FFT buffers to accumulate and
+    // be processed. Total latency is sum of the FFT size and the hop size.
+    outputBufferWritePosition_ = hopActualSize_ + fftActualTransformSize_;
+}
+
+// Update the factor by which each output sample is scaled. This needs to update
+// every time FFT size, hop size, and window type are changed.
+void PVOCPassthroughAudioProcessor::updateScaleFactor()
+{
+    // The gain needs to be normalised by the sum of the window, which implicitly
+    // accounts for the length of the transform and the window type. From there
+    // we also update based on hop size: smaller hop means more overlap means the
+    // overall gain should be reduced.
+    double windowSum = 0.0;
+    
+    for(int i = 0; i < windowBufferLength_; i++)
+    {
+        windowSum += windowBuffer_[i];
+    }
+    
+    if(windowSum == 0.0)
+        fftScaleFactor_ = 0.0; // Catch invalid cases and mute output
+    else
+    {
+        switch(hopSelectedSize_)
+        {
+            case kHopSize1Window:   // 0dB
+                fftScaleFactor_ = 1.0/(double)windowSum;
+                break;
+            case kHopSize1_2Window: // -6dB
+                fftScaleFactor_ = 0.5/(double)windowSum;
+                break;
+            case kHopSize1_4Window: // -12dB
+                fftScaleFactor_ = 0.25/(double)windowSum;
+                break;
+            case kHopSize1_8Window: // -18dB
+                fftScaleFactor_ = 0.125/(double)windowSum;
+                break;
+        }
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new PVOCPassthroughAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_passthrough/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,189 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Passthrough: phase vocoder structure which passes input
+  to output without performing any processing
+ 
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include <fftw3.h>
+
+//==============================================================================
+/**
+*/
+class PVOCPassthroughAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    PVOCPassthroughAudioProcessor();
+    ~PVOCPassthroughAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;    
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kFFTSizeParam = 0,
+        kHopSizeParam,
+        kWindowTypeParam,
+        kNumParameters
+    };
+    
+    enum Window
+    {
+        kWindowRectangular = 1,
+        kWindowBartlett,
+        kWindowHann,
+        kWindowHamming
+    };
+    
+    enum HopSize
+    {
+        kHopSize1Window = 1,
+        kHopSize1_2Window,
+        kHopSize1_4Window,
+        kHopSize1_8Window
+    };
+    
+    // This parameter indicates the FFT size for phase vocoder computation. It is selected
+    // by the GUI and may temporarily differ from the actual size used in calculations.
+    int fftSelectedSize_;
+    int hopSelectedSize_;       // Hop size, chosen from one of the options above
+    int windowType_;            // Type of window used
+    
+private:
+    // Methods to initialise and de-initialise the FFT machinery
+    void initFFT(int length);
+    void deinitFFT();
+    
+    // Methods to initialise and de-initialise the window
+    void initWindow(int length, int windowType);
+    void deinitWindow();
+    
+    // Methods to update the buffering for the given hop size and the output scaling
+    void updateHopSize();
+    void updateScaleFactor();
+    
+    // Whether the FFT has been initialised and is therefore ready to go
+    bool fftInitialised_;
+    
+    // Variables for calculating the FFT and IFFT: complex data structures and the
+    // "plan" used by the fftw library to calculate the transforms.
+    fftw_complex *fftTimeDomain_, *fftFrequencyDomain_;
+    fftw_plan fftForwardPlan_, fftBackwardPlan_;
+    
+    // Size of the FFT (generally a power of two) and the hop size (in samples, generally a fraction of FFT size)
+    int fftActualTransformSize_;
+    int hopActualSize_;
+    
+    // Amount by which to scale the inverse FFT to return to original amplitude: depends on the
+    // transform size (because of fftw implementation) and the hop size (because of inherent overlap)
+    double fftScaleFactor_;
+    
+    // Circular buffer gathers audio samples from the input until enough are available
+    // for the FFT calculation
+    AudioSampleBuffer inputBuffer_;
+    int inputBufferLength_;
+    int inputBufferWritePosition_;
+    
+    // Circular buffer that collects output samples from the FFT overlap-add process
+    // before they are ready to be sent to the output stream
+    AudioSampleBuffer outputBuffer_;
+    int outputBufferLength_;
+    int outputBufferReadPosition_, outputBufferWritePosition_;
+    
+    // How many samples since the last FFT?
+    int samplesSinceLastFFT_;
+    
+    // Stored window function for pre-processing input frames
+    double *windowBuffer_;
+    int windowBufferLength_;
+    
+    // Whether or not prepareToPlay() has been called, i.e. that resources are in use
+    bool preparedToPlay_;
+    
+    // Spin lock that prevents the FFT settings from changing in the middle of the audio
+    // thread.
+    SpinLock fftSpinLock_;
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PVOCPassthroughAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_passthrough/pvoc_passthrough.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="AC7ScK" name="pvoc_passthrough" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.pvocpassthrough" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Phase Vocoder Passthrough"
+              pluginDesc="Blank pass-through effect using phase vocoder" pluginManufacturer="Reiss and McPherson"
+              pluginManufacturerCode="JRAM" pluginCode="pvpt" pluginChannelConfigs="{1, 1}, {2, 2}"
+              pluginIsSynth="0" pluginWantsMidiIn="0" pluginProducesMidiOut="0"
+              pluginSilenceInIsSilenceOut="1" pluginTailLength="0" pluginEditorRequiresKeys="0"
+              pluginAUExportPrefix="pvoc_passthroughAU" pluginAUViewClass="pvoc_passthroughAU_V1"
+              pluginRTASCategory="" jucerVersion="3.1.0" companyName="Reiss and McPherson"
+              buildVST3="0" buildAAX="0" aaxIdentifier="com.yourcompany.pvoc_passthrough"
+              pluginAAXCategory="AAX_ePlugInCategory_Dynamics" includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="RZnSpY" vstFolder="../../vstsdk2.4"
+               extraLinkerFlags="-lfftw3 -lm">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="empty"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       libraryPath="/usr/local/lib" headerPath="/usr/local/include"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="empty"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       libraryPath="/usr/local/lib" headerPath="/usr/local/include"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="oVUVUz" name="pvoc_passthrough">
+    <GROUP id="{F4483B04-0E7A-D77C-795E-A491F61E239B}" name="Source">
+      <FILE id="d7EIMU" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="YDAD0P" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="VTO1E6" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="mhOgcd" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/pvoc_pitchshift/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_pitchshift/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,186 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Pitch Shift: pitch shifter using phase vocoder
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+  Based on a project by Xinyuan Lai
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+//==============================================================================
+PVOCPitchShiftAudioProcessorEditor::PVOCPitchShiftAudioProcessorEditor (PVOCPitchShiftAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      fftSizeLabel_("", "FFT Size:"),
+      hopSizeLabel_("", "Hop Size:"),
+      windowTypeLabel_("", "Window Type:"),
+      pitchShiftLabel_("", "Pitch Shift:")    // (⊙_⊙)
+{
+    // This is where our plugin's editor size is set.
+    // setSize(170, 80);
+    
+    // Set up the selection boxes
+    
+    addAndMakeVisible(&fftSizeComboBox_);
+    fftSizeComboBox_.setEditableText(false);
+    fftSizeComboBox_.setJustificationType(Justification::left);
+    fftSizeComboBox_.addItem("64", 64);
+    fftSizeComboBox_.addItem("128", 128);
+    fftSizeComboBox_.addItem("256", 256);
+    fftSizeComboBox_.addItem("512", 512);
+    fftSizeComboBox_.addItem("1024", 1024);
+    fftSizeComboBox_.addItem("2048", 2048);
+    fftSizeComboBox_.addListener(this);
+    
+    addAndMakeVisible(&hopSizeComboBox_);
+    hopSizeComboBox_.setEditableText(false);
+    hopSizeComboBox_.setJustificationType(Justification::left);
+    hopSizeComboBox_.addItem("1 Window", PVOCPitchShiftAudioProcessor::kHopSize1Window);
+    hopSizeComboBox_.addItem("1/2 Window", PVOCPitchShiftAudioProcessor::kHopSize1_2Window);
+    hopSizeComboBox_.addItem("1/4 Window", PVOCPitchShiftAudioProcessor::kHopSize1_4Window);
+    hopSizeComboBox_.addItem("1/8 Window", PVOCPitchShiftAudioProcessor::kHopSize1_8Window);
+    hopSizeComboBox_.addListener(this);
+    
+    addAndMakeVisible(&windowTypeComboBox_);
+    windowTypeComboBox_.setEditableText(false);
+    windowTypeComboBox_.setJustificationType(Justification::left);
+    windowTypeComboBox_.addItem("Rectangular", PVOCPitchShiftAudioProcessor::kWindowRectangular);
+    windowTypeComboBox_.addItem("Bartlett", PVOCPitchShiftAudioProcessor::kWindowBartlett);
+    windowTypeComboBox_.addItem("Hann", PVOCPitchShiftAudioProcessor::kWindowHann);
+    windowTypeComboBox_.addItem("Hamming", PVOCPitchShiftAudioProcessor::kWindowHamming);
+    windowTypeComboBox_.addListener(this);
+    
+    // (⊙_⊙)
+    addAndMakeVisible(&pitchShiftComboBox_);
+    pitchShiftComboBox_.setEditableText(false);
+    pitchShiftComboBox_.setJustificationType(Justification::left);
+    pitchShiftComboBox_.addItem("+6", PVOCPitchShiftAudioProcessor::kShiftP6);
+    pitchShiftComboBox_.addItem("+5", PVOCPitchShiftAudioProcessor::kShiftP5);
+    pitchShiftComboBox_.addItem("+4", PVOCPitchShiftAudioProcessor::kShiftP4);
+    pitchShiftComboBox_.addItem("+3", PVOCPitchShiftAudioProcessor::kShiftP3);
+    pitchShiftComboBox_.addItem("+2", PVOCPitchShiftAudioProcessor::kShiftP2);
+    pitchShiftComboBox_.addItem("+1", PVOCPitchShiftAudioProcessor::kShiftP1);
+    pitchShiftComboBox_.addItem("0",  PVOCPitchShiftAudioProcessor::kShift0);
+    pitchShiftComboBox_.addItem("-1", PVOCPitchShiftAudioProcessor::kShiftM1);
+    pitchShiftComboBox_.addItem("-2", PVOCPitchShiftAudioProcessor::kShiftM2);
+    pitchShiftComboBox_.addItem("-3", PVOCPitchShiftAudioProcessor::kShiftM3);
+    pitchShiftComboBox_.addItem("-4", PVOCPitchShiftAudioProcessor::kShiftM4);
+    pitchShiftComboBox_.addItem("-5", PVOCPitchShiftAudioProcessor::kShiftM5);
+    pitchShiftComboBox_.addItem("-6", PVOCPitchShiftAudioProcessor::kShiftM6);
+    pitchShiftComboBox_.addListener(this);
+    
+    fftSizeLabel_.attachToComponent(&fftSizeComboBox_, false);
+    fftSizeLabel_.setFont(Font (11.0f));
+    
+    hopSizeLabel_.attachToComponent(&hopSizeComboBox_, false);
+    hopSizeLabel_.setFont(Font (11.0f));
+    
+    windowTypeLabel_.attachToComponent(&windowTypeComboBox_, false);
+    windowTypeLabel_.setFont(Font (11.0f));
+    
+    // (⊙_⊙)
+    pitchShiftLabel_.attachToComponent(&pitchShiftComboBox_, false);
+    pitchShiftLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 120, 400, 160);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+PVOCPitchShiftAudioProcessorEditor::~PVOCPitchShiftAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void PVOCPitchShiftAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void PVOCPitchShiftAudioProcessorEditor::resized()
+{
+    fftSizeComboBox_.setBounds(20, 20, 150, 30);
+    hopSizeComboBox_.setBounds(200, 20, 150, 30);
+    windowTypeComboBox_.setBounds(20, 70, 150, 30);
+    pitchShiftComboBox_.setBounds(200, 70, 150, 30);  //(⊙_⊙)
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void PVOCPitchShiftAudioProcessorEditor::timerCallback()
+{
+    PVOCPitchShiftAudioProcessor* ourProcessor = getProcessor();
+    
+    fftSizeComboBox_.setSelectedId(ourProcessor->fftSelectedSize_, false);
+    hopSizeComboBox_.setSelectedId(ourProcessor->hopSelectedSize_, false);
+    windowTypeComboBox_.setSelectedId(ourProcessor->windowType_, false);
+    pitchShiftComboBox_.setSelectedId(ourProcessor->pitchSelectedShift_, false);  // (⊙_⊙)
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void PVOCPitchShiftAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void PVOCPitchShiftAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &fftSizeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PVOCPitchShiftAudioProcessor::kFFTSizeParam,
+                                                   (float)fftSizeComboBox_.getSelectedId());
+    }
+    else if(comboBox == &hopSizeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PVOCPitchShiftAudioProcessor::kHopSizeParam,
+                                                   (float)hopSizeComboBox_.getSelectedId());
+    }
+    else if(comboBox == &windowTypeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PVOCPitchShiftAudioProcessor::kWindowTypeParam,
+                                                   (float)windowTypeComboBox_.getSelectedId());
+    }
+    // (⊙_⊙)
+    else if(comboBox == &pitchShiftComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (PVOCPitchShiftAudioProcessor::kPitchShiftParam,
+                                                   (float)pitchShiftComboBox_.getSelectedId());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_pitchshift/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,75 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Pitch Shift: pitch shifter using phase vocoder
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+  Based on a project by Xinyuan Lai
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class PVOCPitchShiftAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Timer
+{
+public:
+    PVOCPitchShiftAudioProcessorEditor (PVOCPitchShiftAudioProcessor* ownerFilter);
+    ~PVOCPitchShiftAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    
+private:
+    Label fftSizeLabel_, hopSizeLabel_, windowTypeLabel_, pitchShiftLabel_;   //(⊙_⊙)
+    ComboBox fftSizeComboBox_, hopSizeComboBox_, windowTypeComboBox_, pitchShiftComboBox_;  //(⊙_⊙)
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    PVOCPitchShiftAudioProcessor* getProcessor() const
+    {
+        return static_cast <PVOCPitchShiftAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_pitchshift/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,904 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Pitch Shift: pitch shifter using phase vocoder
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+  Based on a project by Xinyuan Lai
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+PVOCPitchShiftAudioProcessor::PVOCPitchShiftAudioProcessor() : inputBuffer_(2, 1), outputBuffer_(2, 1)
+{
+    // Set default values:
+    fftSelectedSize_ = 1024;
+    hopSelectedSize_ = kHopSize1_8Window;
+    windowType_ = kWindowHann;
+    
+    // (⊙_⊙)
+    pitchSelectedShift_ = kShift0;
+    pitchActualShift_ = 1.0;
+    pitchActualShiftRec_ = 1.0;
+    actualRatio_ = 1.0;
+    synthesisWindowBufferLength_ = 1024;
+    for (int i = 0; i<2048; i++)
+    {
+        omega_[i] = 0.25*M_PI*i;  // 0.25 corresponding to 1/8 window (2*hopsize/windowlength)
+    }
+
+    fftInitialised_ = false;
+    fftActualTransformSize_ = 0;
+    inputBufferLength_ = 1;
+    outputBufferLength_ = 1;
+    inputBufferWritePosition_ = outputBufferWritePosition_ = outputBufferReadPosition_ = 0;
+    samplesSinceLastFFT_ = 0;
+    windowBuffer_ = 0;
+    synthesisWindowBuffer_ = 0;
+    windowBufferLength_ = 0;
+    synthesisWindowBufferLength_ = 0;
+    preparedToPlay_ = false;
+    fftScaleFactor_ = 0.0;
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 120;
+}
+
+PVOCPitchShiftAudioProcessor::~PVOCPitchShiftAudioProcessor()
+{
+    // Release FFT resources if allocated. This should be handled by
+    // releaseResources() but in the event it doesn't happen, this avoids
+    // a leak. Harmless to call it twice.
+    deinitFFT();
+    deinitWindow();
+    deinitSynthesisWindow();
+}
+
+//==============================================================================
+const String PVOCPitchShiftAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int PVOCPitchShiftAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float PVOCPitchShiftAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kFFTSizeParam:    return (float)fftSelectedSize_;
+        case kHopSizeParam:    return (float)hopSelectedSize_;
+        case kWindowTypeParam: return (float)windowType_;
+        case kPitchShiftParam: return (float)pitchSelectedShift_;  // (⊙_⊙)
+        default:               return 0.0f;
+    }
+}
+
+void PVOCPitchShiftAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kFFTSizeParam:
+            if((int)newValue != fftSelectedSize_)
+            {
+                fftSelectedSize_ = (int)newValue;
+                // (⊙_⊙)
+                synthesisWindowBufferLength_ = floor(fftSelectedSize_*pitchActualShiftRec_);
+                
+                if(preparedToPlay_)
+                {
+                    // Update settings if currently playing, else wait until prepareToPlay() called
+                    initFFT(fftSelectedSize_);
+                    initWindow(fftSelectedSize_, windowType_);
+                    initSynthesisWindow(floor(fftSelectedSize_*pitchActualShiftRec_), windowType_);
+                }
+            }
+            break;
+        case kHopSizeParam:
+            hopSelectedSize_ = (int)newValue;
+            if(preparedToPlay_)
+            {
+                updateHopSize();
+                initWindow(fftSelectedSize_, windowType_);
+                initSynthesisWindow(floor(fftSelectedSize_*pitchActualShiftRec_), windowType_);
+            }
+            break;
+        case kWindowTypeParam:
+            // Recalculate window if needed
+            if((int)newValue != windowType_)
+            {
+                windowType_ = (int)newValue;
+                if(preparedToPlay_)
+                {
+                    initWindow(fftActualTransformSize_, (int)newValue);
+                    initSynthesisWindow(floor(fftSelectedSize_*pitchActualShiftRec_), windowType_);
+                }
+            }
+            break;
+        case kPitchShiftParam:
+            // (⊙_⊙)
+            
+            if((int)newValue != pitchSelectedShift_)
+            {
+                pitchSelectedShift_ = (int)newValue;
+                if(preparedToPlay_)
+                {
+                    updatePitchShift();
+                    initWindow(fftSelectedSize_, windowType_);
+                    initSynthesisWindow(floor(fftSelectedSize_*pitchActualShiftRec_), windowType_);
+                }
+            }
+            break;
+        default:
+            break;
+    }
+    
+    // (⊙_⊙) reset the arrays containing the phase information
+    for (int i = 0; i<2048; i++)
+    {
+        omega_[i] = 2*M_PI*i* hopActualSize_/fftActualTransformSize_;
+        for (int j=0; j<2; j++)
+        {
+            phi0_[i][j] = 0;
+            dphi_[i][j] = 0;
+            psi_[i][j]  = 0;
+        }
+        
+    }
+    
+}
+
+const String PVOCPitchShiftAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kFFTSizeParam:    return "FFT size";
+        case kHopSizeParam:    return "hop size";
+        case kWindowTypeParam: return "window type";
+        case kPitchShiftParam: return "pitch shift";  // (⊙_⊙)
+        default:               break;
+    }
+    
+    return String::empty;
+}
+
+const String PVOCPitchShiftAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String PVOCPitchShiftAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String PVOCPitchShiftAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool PVOCPitchShiftAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PVOCPitchShiftAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool PVOCPitchShiftAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double PVOCPitchShiftAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool PVOCPitchShiftAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool PVOCPitchShiftAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int PVOCPitchShiftAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int PVOCPitchShiftAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void PVOCPitchShiftAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String PVOCPitchShiftAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void PVOCPitchShiftAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void PVOCPitchShiftAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback
+    // initialisation that you need..
+    
+    initFFT(fftSelectedSize_);
+    initWindow(fftSelectedSize_, windowType_);
+    initSynthesisWindow(floor(fftSelectedSize_*pitchActualShiftRec_), windowType_);
+    preparedToPlay_ = true;
+}
+
+void PVOCPitchShiftAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    deinitFFT();
+    deinitWindow();
+    deinitSynthesisWindow();
+    preparedToPlay_ = false;
+}
+
+void PVOCPitchShiftAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel, inwritepos, sampsincefft;
+    int outreadpos, outwritepos;
+    
+    // Grab the lock that prevents the FFT settings from changing
+    fftSpinLock_.enter();
+    
+    // Check that we're initialised and ready to go. If not, set output to 0
+    if(!fftInitialised_)
+    {
+        for (channel = 0; channel < numOutputChannels; ++channel)
+        {
+            buffer.clear (channel, 0, buffer.getNumSamples());
+        }
+        
+        fftSpinLock_.exit();
+        return;
+    }
+
+    // Go through each channel of audio that's passed in. Collect the samples in the input
+    // buffer. When we've reached the next hop interval, calculate the FFT.
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // (⊙_⊙) 
+        //double amplitude[fftActualTransformSize_];
+        
+//        double phi[fftActualTransformSize_];
+//        double phi0[fftActualTransformSize_];
+//        double dphi[fftActualTransformSize_];
+//        double psi[fftActualTransformSize_];
+//        double omega[fftActualTransformSize_];
+//        for (int i = 0; i<fftActualTransformSize_; i++)
+//        {
+//            omega[i] = 2*M_PI*hopActualSize_*i/fftActualTransformSize_;
+//        }
+        
+        // (⊙_⊙) variables prepared for resampling
+        double grain2[fftActualTransformSize_ + 1];
+        double grain3[(int)floor(pitchActualShiftRec_*fftActualTransformSize_)];
+        double lx;
+        double x;
+        int ix;
+        double dx;
+
+        
+        
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // inputBufferData is the circular buffer for collecting input samples for the FFT
+        float* inputBufferData = inputBuffer_.getSampleData(jmin (channel, inputBuffer_.getNumChannels() - 1));
+        float* outputBufferData = outputBuffer_.getSampleData(jmin (channel, inputBuffer_.getNumChannels() - 1));
+        
+        // State variables need to be temporarily cached for each channel. We don't want the
+        // operations on one channel to affect the identical behaviour of the next channel
+        inwritepos = inputBufferWritePosition_;
+        outwritepos = outputBufferWritePosition_;
+        outreadpos = outputBufferReadPosition_;
+        sampsincefft = samplesSinceLastFFT_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+            
+            // Store the next buffered sample in the output. Do this first before anything
+            // changes the output buffer-- we will have at least one FFT size worth of data
+            // stored and ready to go. Set the result to 0 when finished in preparation for the
+            // next overlap/add procedure.
+            channelData[i] = outputBufferData[outreadpos];
+            outputBufferData[outreadpos] = 0.0;
+            if(++outreadpos >= outputBufferLength_)
+                outreadpos = 0;
+
+            // Store the current sample in the input buffer, incrementing the write pointer. Also
+            // increment how many samples we've stored since the last transform. If it reaches the
+            // hop size, perform an FFT and any frequency-domain processing.
+            inputBufferData[inwritepos] = in;
+            if (++inwritepos >= inputBufferLength_)
+                inwritepos = 0;
+            if (++sampsincefft >= hopActualSize_)
+            {
+                sampsincefft = 0;
+                
+                // Find the index of the starting sample in the buffer. When the buffer length
+                // is equal to the transform size, this will be the current write position but
+                // this code is more general for larger buffers.
+                int inputBufferStartPosition = (inwritepos + inputBufferLength_
+                                                - fftActualTransformSize_) % inputBufferLength_;
+                
+                // Window the buffer and copy it into the FFT input
+                int inputBufferIndex = inputBufferStartPosition;
+                for(int fftBufferIndex = 0; fftBufferIndex < fftActualTransformSize_; fftBufferIndex++)
+                {
+                    // Set real part to windowed signal; imaginary part to 0.
+                    fftTimeDomain_[fftBufferIndex][1] = 0.0;
+                    if(fftBufferIndex >= windowBufferLength_) // Safety check, in case window isn't ready
+                        fftTimeDomain_[fftBufferIndex][0] = 0.0;
+                    else
+                        fftTimeDomain_[fftBufferIndex][0] = windowBuffer_[fftBufferIndex]
+                                                                * inputBufferData[inputBufferIndex];
+                    inputBufferIndex++;
+                    if(inputBufferIndex >= inputBufferLength_)
+                        inputBufferIndex = 0;
+                }
+
+                // Perform the FFT on the windowed data, going into the frequency domain.
+                // Result will be in fftFrequencyDomain_
+                fftw_execute(fftForwardPlan_);
+                
+                // ********** PHASE VOCODER PROCESSING GOES HERE **************
+                // This is the place where frequency-domain calculations are made
+                // on the transformed signal. Put the result back into fftFrequencyDomain_
+                // before transforming back.
+                
+                // (⊙_⊙)
+                
+                for (int i = 0; i<fftActualTransformSize_; i++)
+                {
+                    // (⊙_⊙) first turn the fft from real-imaginary to amplitude-phase
+                    double amplitude = sqrt(fftFrequencyDomain_[i][0]*fftFrequencyDomain_[i][0]+fftFrequencyDomain_[i][1]*fftFrequencyDomain_[i][1]);
+                    double phase = atan2(fftFrequencyDomain_[i][1], fftFrequencyDomain_[i][0]);
+                    
+                    // (⊙_⊙) change the phase 
+                    dphi_[i][channel]= /*princArg(phase - phi0_[i][channel]);*/omega_[i]+ princArg(phase - phi0_[i][channel] - omega_[i]);
+                    phi0_[i][channel] = phase;
+                    psi_[i][channel] = princArg(psi_[i][channel] + dphi_[i][channel]*actualRatio_);
+                    
+                    // (⊙_⊙) turn back to real-imaginary form
+                    fftFrequencyDomain_[i][0] = amplitude*cos(psi_[i][channel]);
+                    fftFrequencyDomain_[i][1] = amplitude*sin(psi_[i][channel]);
+                        
+                }
+                
+                // In this example, we don't do anything except reconstruct the original
+                // signal to show that the whole infrastructure works.
+                // ************************************************************
+                
+                // Perform the inverse FFT to get back to the time domain. Result wll be
+                // in fftTimeDomain_. If we've done it right (kept the frequency domain
+                // symmetric), the time domain resuld should be strictly real allowing us
+                // to ignore the imaginary part.
+                fftw_execute(fftBackwardPlan_);
+                
+                // (⊙_⊙) gain2 is actually same with the ifft frame except that it is one element longer
+                for (int i = 0;i<fftActualTransformSize_; i++)
+                    grain2[i] = fftTimeDomain_[i][0];
+                
+                // (⊙_⊙) resampling using linear interpolation and get grain3
+                for (int i = 0; i<floor(pitchActualShiftRec_*fftActualTransformSize_); i++)
+                {
+                    lx = floor(pitchActualShiftRec_*fftActualTransformSize_);
+                    x = i*fftActualTransformSize_/lx;
+                    ix = floor(x);
+                    dx = x - (double)ix;
+                    grain3 [i] = grain2[ix]*(1.0 - dx) + grain2[ix+1]*dx;
+                }
+
+                // Add the result to the output buffer, starting at the current write position
+                // (Output buffer will have been zeroed after reading the last time around)
+                // Output needs to be scaled by the transform size to get back to original amplitude:
+                // this is a property of how fftw is implemented. Scaling will also need to be adjusted
+                // based on hop size to get the same output level (smaller hop size produces more overlap
+                // and hence higher signal level)
+                int outputBufferIndex = outwritepos;
+                
+                
+                // (⊙_⊙) Synthesizing
+                //for(int fftBufferIndex = 0; fftBufferIndex < fftActualTransformSize_; fftBufferIndex++)
+                for(int fftBufferIndex = 0; fftBufferIndex < floor(pitchActualShiftRec_*fftActualTransformSize_); fftBufferIndex++)
+                {
+                    if (fftBufferIndex > synthesisWindowBufferLength_)
+                        outputBufferData[outputBufferIndex] += 0;
+                    else
+                        outputBufferData[outputBufferIndex] += grain3[fftBufferIndex] * fftScaleFactor_ *synthesisWindowBuffer_[fftBufferIndex];
+                    
+                    if(++outputBufferIndex >= outputBufferLength_)
+                        outputBufferIndex = 0;
+                }
+                
+                // Advance the write position within the buffer by the hop size
+                outwritepos = (outwritepos + hopActualSize_) % outputBufferLength_;
+            }
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    inputBufferWritePosition_ = inwritepos;
+    outputBufferWritePosition_ = outwritepos;
+    outputBufferReadPosition_ = outreadpos;
+    samplesSinceLastFFT_ = sampsincefft;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+    
+    fftSpinLock_.exit();
+}
+
+//==============================================================================
+bool PVOCPitchShiftAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* PVOCPitchShiftAudioProcessor::createEditor()
+{
+    return new PVOCPitchShiftAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void PVOCPitchShiftAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("fftSize", fftSelectedSize_);
+    xml.setAttribute("hopSize", hopSelectedSize_);
+    xml.setAttribute("windowType", windowType_);
+    xml.setAttribute("pitchShift", pitchSelectedShift_);  // (⊙_⊙)
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void PVOCPitchShiftAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            fftSelectedSize_  = (int)xmlState->getDoubleAttribute("fftSize", fftSelectedSize_);
+            hopSelectedSize_  = (int)xmlState->getDoubleAttribute("hopSize", hopSelectedSize_);
+            windowType_  = (int)xmlState->getDoubleAttribute("windowType", windowType_);
+            // (⊙_⊙)
+            pitchSelectedShift_  = (int)xmlState->getDoubleAttribute("pitchShift", pitchSelectedShift_);
+            
+            
+            if(preparedToPlay_)
+            {
+                // Update settings if currently playing, else wait until prepareToPlay() called
+                initFFT(fftSelectedSize_);
+                initWindow(fftSelectedSize_, windowType_);
+                initSynthesisWindow(floor(fftSelectedSize_*pitchActualShiftRec_), windowType_);
+            }
+        }
+    }
+}
+
+//==============================================================================
+// Initialise the FFT data structures for a given length transform
+void PVOCPitchShiftAudioProcessor::initFFT(int length)
+{
+    if(fftInitialised_)
+        deinitFFT();
+    
+    // Save the current length so we know how big our results are later
+    fftActualTransformSize_ = length;
+    
+    // Here we allocate the complex-number buffers for the FFT. This uses
+    // a convenient wrapper on the more general fftw_malloc()
+    fftTimeDomain_ = fftw_alloc_complex(length);
+    fftFrequencyDomain_ = fftw_alloc_complex(length);
+    
+    // FFTW_ESTIMATE doesn't necessarily produce the fastest executing code (FFTW_MEASURE
+    // will get closer) but it carries a minimum startup cost. FFTW_MEASURE might stall for
+    // several seconds which would be annoying in an audio plug-in context.
+    fftForwardPlan_ = fftw_plan_dft_1d(fftActualTransformSize_, fftTimeDomain_,
+                                       fftFrequencyDomain_, FFTW_FORWARD, FFTW_ESTIMATE);
+    fftBackwardPlan_ = fftw_plan_dft_1d(fftActualTransformSize_, fftFrequencyDomain_,
+                                       fftTimeDomain_, FFTW_BACKWARD, FFTW_ESTIMATE);
+    
+    // Allocate the buffer that the samples will be collected in
+    inputBufferLength_ = fftActualTransformSize_;
+    inputBuffer_.setSize(2, inputBufferLength_);
+    inputBuffer_.clear();
+    inputBufferWritePosition_ = 0;
+    samplesSinceLastFFT_ = 0;
+    
+    // Allocate the output buffer to be twice the size of the FFT
+    // This will be enough for all hop size cases
+    outputBufferLength_ = 2*fftActualTransformSize_;
+    outputBuffer_.setSize(2, outputBufferLength_);
+    outputBuffer_.clear();
+    outputBufferReadPosition_ = 0;
+    
+    updateHopSize();
+    
+    //(⊙_⊙)
+    updatePitchShift();
+    
+    fftInitialised_ = true;
+}
+
+// Free the FFT data structures
+void PVOCPitchShiftAudioProcessor::deinitFFT()
+{
+    if(!fftInitialised_)
+        return;
+    
+    // Prevent this variable from changing while an audio callback is running.
+    // Once it has changed, the next audio callback will find that it's not
+    // initialised and will return silence instead of attempting to work with the
+    // (invalid) FFT structures. This produces an audible glitch but no crash,
+    // and is the simplest way to handle parameter changes in this example code.
+    fftSpinLock_.enter();
+    fftInitialised_ = false;
+    fftSpinLock_.exit();
+    
+    fftw_destroy_plan(fftForwardPlan_);
+    fftw_destroy_plan(fftBackwardPlan_);
+    fftw_free(fftTimeDomain_);
+    fftw_free(fftFrequencyDomain_);
+    
+    // Leave the input buffer in memory until the plugin is released
+}
+
+//==============================================================================
+// Create a new window of a given length and type
+void PVOCPitchShiftAudioProcessor::initWindow(int length, int windowType)
+{
+    if(windowBuffer_ != 0)
+        deinitWindow();
+    if(length == 0) // Sanity check
+        return;
+    
+    // Allocate memory for the window
+    windowBuffer_ = (double *)malloc(length * sizeof(double));
+    
+    // Write the length as a double here to simplify the code below (otherwise
+    // typecasts would be wise)
+    double windowLength = length;
+    
+    // Set values for the window, depending on its type
+    for(int i = 0; i < length; i++)
+    {
+        // Window functions are typically defined to be symmetrical. This will cause a
+        // problem in the overlap-add process: the windows instead need to be periodic
+        // when arranged end-to-end. As a result we calculate the window of one sample
+        // larger than usual, and drop the last sample. (This works as long as N is even.)
+        // See Julius Smith, "Spectral Audio Signal Processing" for details.
+        switch(windowType)
+        {
+            case kWindowBartlett:
+                windowBuffer_[i] = (2.0/(windowLength + 2.0))*
+                    (0.5*(windowLength + 2.0) - abs((double)i - 0.5*windowLength));
+                break;
+            case kWindowHann:
+                windowBuffer_[i] = 0.5*(1.0 - cos(2.0*M_PI*(double)i/windowLength));
+                break;
+            case kWindowHamming:
+                windowBuffer_[i] = 0.54 - 0.46*cos(2.0*M_PI*(double)i/windowLength);
+                break;
+            case kWindowRectangular:
+            default:
+                windowBuffer_[i] = 1.0;
+                break;
+        }
+    }
+    
+    windowBufferLength_ = length;
+    updateScaleFactor();
+}
+
+//==============================================================================
+// Create a new synthesis window of a given length and type
+void PVOCPitchShiftAudioProcessor::initSynthesisWindow(int length, int windowType)
+{
+    if(synthesisWindowBuffer_ != 0)
+        deinitSynthesisWindow();
+    if(length == 0) // Sanity check
+        return;
+    
+    // Allocate memory for the window
+    synthesisWindowBuffer_ = (double *)malloc(length * sizeof(double));
+    
+    // Write the length as a double here to simplify the code below (otherwise
+    // typecasts would be wise)
+    double windowLength = length;
+    
+    // Set values for the window, depending on its type
+    for(int i = 0; i < length; i++)
+    {
+        // Window functions are typically defined to be symmetrical. This will cause a
+        // problem in the overlap-add process: the windows instead need to be periodic
+        // when arranged end-to-end. As a result we calculate the window of one sample
+        // larger than usual, and drop the last sample. (This works as long as N is even.)
+        // See Julius Smith, "Spectral Audio Signal Processing" for details.
+        switch(windowType)
+        {
+            case kWindowBartlett:
+                synthesisWindowBuffer_[i] = (2.0/(windowLength + 2.0))*
+                (0.5*(windowLength + 2.0) - abs((double)i - 0.5*windowLength));
+                break;
+            case kWindowHann:
+                synthesisWindowBuffer_[i] = 0.5*(1.0 - cos(2.0*M_PI*(double)i/windowLength));
+                break;
+            case kWindowHamming:
+                synthesisWindowBuffer_[i] = 0.54 - 0.46*cos(2.0*M_PI*(double)i/windowLength);
+                break;
+            case kWindowRectangular:
+            default:
+                synthesisWindowBuffer_[i] = 1.0;
+                break;
+        }
+    }
+    
+    synthesisWindowBufferLength_ = length;
+    updateScaleFactor();
+}
+
+// Free the window buffer
+void PVOCPitchShiftAudioProcessor::deinitWindow()
+{
+    if(windowBuffer_ == 0)
+        return;
+    
+    // Delay clearing the window until the audio thread is not running
+    // to avoid a crash if the code tries to access an invalid window
+    fftSpinLock_.enter();
+    windowBufferLength_ = 0;
+    fftSpinLock_.exit();
+    
+    free(windowBuffer_);
+    windowBuffer_ = 0;
+}
+
+// Free the synthesis window buffer
+void PVOCPitchShiftAudioProcessor::deinitSynthesisWindow()
+{
+    if(synthesisWindowBuffer_ == 0)
+        return;
+    
+    // Delay clearing the window until the audio thread is not running
+    // to avoid a crash if the code tries to access an invalid window
+    fftSpinLock_.enter();
+    synthesisWindowBufferLength_ = 0;
+    fftSpinLock_.exit();
+    
+    free(synthesisWindowBuffer_);
+    synthesisWindowBuffer_ = 0;
+}
+
+// Update the actual hop size depending on the window size and hop size settings
+// Hop size is expressed as a fraction of a window in the parameters.
+void PVOCPitchShiftAudioProcessor::updateHopSize()
+{
+    switch(hopSelectedSize_)
+    {
+        case kHopSize1Window:
+            hopActualSize_ = fftActualTransformSize_;
+            break;
+        case kHopSize1_2Window:
+            hopActualSize_ = fftActualTransformSize_ / 2;
+            break;
+        case kHopSize1_4Window:
+            hopActualSize_ = fftActualTransformSize_ / 4;
+            break;
+        case kHopSize1_8Window:
+            hopActualSize_ = fftActualTransformSize_ / 8;
+            break;
+    }
+    
+    // Update the factor by which samples are scaled to preserve unity gain
+    updateScaleFactor();
+    
+    // Read pointer lags the write pointer to allow for FFT buffers to accumulate and
+    // be processed. Total latency is sum of the FFT size and the hop size.
+    outputBufferWritePosition_ = hopActualSize_ + fftActualTransformSize_;
+}
+
+
+// (⊙_⊙) Update the pitch shift
+void PVOCPitchShiftAudioProcessor::updatePitchShift()
+{
+    switch(pitchSelectedShift_)
+    {
+        case kShift0:
+            pitchActualShift_ = 1.0;
+            break;
+        case kShiftP1:
+            pitchActualShift_ = pow(2.0, 1.0/12.0 );
+            break;
+        case kShiftP2:
+            pitchActualShift_ = pow(2.0, 2.0/12.0 );
+            break;
+        case kShiftP3:
+            pitchActualShift_ = pow(2.0, 3.0/12.0 );
+            break;
+        case kShiftP4:
+            pitchActualShift_ = pow(2.0, 4.0/12.0 );
+            break;
+        case kShiftP5:
+            pitchActualShift_ = pow(2.0, 5.0/12.0 );
+            break;
+        case kShiftP6:
+            pitchActualShift_ = pow(2.0, 6.0/12.0 );
+            break;
+        case kShiftM1:
+            pitchActualShift_ = pow(2.0, -1.0/12.0 );
+            break;
+        case kShiftM2:
+            pitchActualShift_ = pow(2.0, -2.0/12.0 );
+            break;
+        case kShiftM3:
+            pitchActualShift_ = pow(2.0, -3.0/12.0 );
+            break;
+        case kShiftM4:
+            pitchActualShift_ = pow(2.0, -4.0/12.0 );
+            break;
+        case kShiftM5:
+            pitchActualShift_ = pow(2.0, -5.0/12.0 );
+            break;
+        case kShiftM6:
+            pitchActualShift_ = pow(2.0, -6.0/12.0 );
+            break;
+    }
+    actualRatio_ = round(pitchActualShift_*hopActualSize_)/hopActualSize_;
+    pitchActualShiftRec_ = 1/pitchActualShift_;
+}
+
+// (⊙_⊙) principle phase argument mod(phasein+pi,-2*pi)+pi;
+double PVOCPitchShiftAudioProcessor::princArg(double phaseIn)
+{
+    if (phaseIn >= 0)
+        return fmod(phaseIn + M_PI, 2*M_PI) - M_PI;
+    else
+        return fmod(phaseIn + M_PI, -2*M_PI) + M_PI;
+}
+
+// Update the factor by which each output sample is scaled. This needs to update
+// every time FFT size, hop size, and window type are changed.
+void PVOCPitchShiftAudioProcessor::updateScaleFactor()
+{
+    // The gain needs to be normalised by the sum of the window, which implicitly
+    // accounts for the length of the transform and the window type. From there
+    // we also update based on hop size: smaller hop means more overlap means the
+    // overall gain should be reduced.
+    double windowSum = 0.0;
+    
+    for(int i = 0; i < windowBufferLength_; i++)
+    {
+        windowSum += windowBuffer_[i];
+    }
+    
+    if(windowSum == 0.0)
+        fftScaleFactor_ = 0.0; // Catch invalid cases and mute output
+    else
+    {
+        switch(hopSelectedSize_)
+        {
+            case kHopSize1Window:   // 0dB
+                fftScaleFactor_ = 1.0/(double)windowSum;
+                break;
+            case kHopSize1_2Window: // -6dB
+                fftScaleFactor_ = 0.5/(double)windowSum;
+                break;
+            case kHopSize1_4Window: // -12dB
+                fftScaleFactor_ = 0.25/(double)windowSum;
+                break;
+            case kHopSize1_8Window: // -18dB
+                fftScaleFactor_ = 0.125/(double)windowSum;
+                break;
+        }
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new PVOCPitchShiftAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_pitchshift/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,230 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  PVOC Pitch Shift: pitch shifter using phase vocoder
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+  Based on a project by Xinyuan Lai
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include <fftw3.h>
+
+//==============================================================================
+/**
+*/
+class PVOCPitchShiftAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    PVOCPitchShiftAudioProcessor();
+    ~PVOCPitchShiftAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;   
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kFFTSizeParam = 0,
+        kHopSizeParam,
+        kWindowTypeParam,
+        kPitchShiftParam,   // (⊙_⊙)
+        kNumParameters
+    };
+    
+    enum Window
+    {
+        kWindowRectangular = 1,
+        kWindowBartlett,
+        kWindowHann,
+        kWindowHamming
+    };
+    
+    enum HopSize
+    {
+        kHopSize1Window = 1,
+        kHopSize1_2Window,
+        kHopSize1_4Window,
+        kHopSize1_8Window
+    };
+    
+    enum PitchShift      // (⊙_⊙) pitch shift from 6 semitones rise to 6 semitones drop
+    {
+        kShift0 = 1,
+        kShiftP1,
+        kShiftP2,
+        kShiftP3,
+        kShiftP4,
+        kShiftP5,
+        kShiftP6,
+        kShiftM1,
+        kShiftM2,
+        kShiftM3,
+        kShiftM4,
+        kShiftM5,
+        kShiftM6
+        
+    };
+    
+    // This parameter indicates the FFT size for phase vocoder computation. It is selected
+    // by the GUI and may temporarily differ from the actual size used in calculations.
+    int fftSelectedSize_;
+    int hopSelectedSize_;       // Hop size, chosen from one of the options above
+    int windowType_;            // Type of window used
+    int pitchSelectedShift_;         // (⊙_⊙)semitones of pitch rise or drop
+    
+private:
+    // Methods to initialise and de-initialise the FFT machinery
+    void initFFT(int length);
+    void deinitFFT();
+    
+    // Methods to initialise and de-initialise the window
+    void initWindow(int length, int windowType);
+    void deinitWindow();
+    void initSynthesisWindow(int length, int windowType);
+    void deinitSynthesisWindow();
+    
+    // Methods to update the buffering for the given hop size and the output scaling
+    void updateHopSize();
+    void updateScaleFactor();
+    
+    
+    // (⊙_⊙)Method to update the pitch shift
+    void updatePitchShift();
+    
+    // (⊙_⊙)Method to compute the priciple phase argument
+    double princArg(double phaseIn);
+    
+    
+    // Whether the FFT has been initialised and is therefore ready to go
+    bool fftInitialised_;
+    
+    // Variables for calculating the FFT and IFFT: complex data structures and the
+    // "plan" used by the fftw library to calculate the transforms.
+    fftw_complex *fftTimeDomain_, *fftFrequencyDomain_;
+    fftw_plan fftForwardPlan_, fftBackwardPlan_;
+    
+    // Size of the FFT (generally a power of two) and the hop size (in samples, generally a fraction of FFT size)
+    int fftActualTransformSize_;
+    int hopActualSize_;
+    
+    // (⊙_⊙) The actual pitch shift by ratios
+    double pitchActualShift_;      // the frequency ratio of original and shifted pitch
+    double pitchActualShiftRec_;   // the reciprocal of of pitchActualShift_, just for computing efficiency
+    double actualRatio_;
+    double omega_[2048];           // the arrays for storing the phases
+    double phi_[2048][2];
+    double phi0_[2048][2];
+    double dphi_[2048][2];
+    double psi_[2048][2];
+    
+    // Amount by which to scale the inverse FFT to return to original amplitude: depends on the
+    // transform size (because of fftw implementation) and the hop size (because of inherent overlap)
+    double fftScaleFactor_;
+    
+    // Circular buffer gathers audio samples from the input until enough are available
+    // for the FFT calculation
+    AudioSampleBuffer inputBuffer_;
+    int inputBufferLength_;
+    int inputBufferWritePosition_;
+    
+    // Circular buffer that collects output samples from the FFT overlap-add process
+    // before they are ready to be sent to the output stream
+    AudioSampleBuffer outputBuffer_;
+    int outputBufferLength_;
+    int outputBufferReadPosition_, outputBufferWritePosition_;
+    
+    // How many samples since the last FFT?
+    int samplesSinceLastFFT_;
+    
+    // Stored window function for pre-processing input frames
+    double *windowBuffer_;
+    double *synthesisWindowBuffer_;
+    int windowBufferLength_;
+    int synthesisWindowBufferLength_;
+    
+    // Whether or not prepareToPlay() has been called, i.e. that resources are in use
+    bool preparedToPlay_;
+    
+    // Spin lock that prevents the FFT settings from changing in the middle of the audio
+    // thread.
+    SpinLock fftSpinLock_;
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PVOCPitchShiftAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/pvoc_pitchshift/pvoc_pitchshift.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="AC7ScK" name="pvoc_pitchshift" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.pvocpitchshift" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Pitch Shifter" pluginDesc="Pitch shift using phase vocoder"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="pvps" pluginChannelConfigs="{2,2},{1,1}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="pvoc_pitchshiftAU"
+              pluginAUViewClass="pvoc_passthroughAU_V1" pluginRTASCategory=""
+              jucerVersion="3.1.0" companyName="Reiss and McPherson" buildVST3="0"
+              buildAAX="0" aaxIdentifier="uk.ac.qmul.eecs.pvocpitchshift" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="RZnSpY" vstFolder="../../vstsdk2.4"
+               extraLinkerFlags="-lfftw3 -lm" postbuildCommand="&#13;&#10;# This script takes the build product and copies it to the AU, VST, VST3, RTAS and AAX folders, depending on &#13;&#10;# which plugin types you've built&#13;&#10;&#13;&#10;original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME&#13;&#10;&#13;&#10;# this looks inside the binary to detect which platforms are needed.. &#13;&#10;copyAU=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'AudioUnit' | wc -l&#96;&#13;&#10;copyVST=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'VSTPlugin' | wc -l&#96;&#13;&#10;copyVST3=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'GetPluginFactory' | wc -l&#96;&#13;&#10;copyRTAS=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'CProcess' | wc -l&#96;&#13;&#10;copyAAX=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'ACFStartup' | wc -l&#96;&#13;&#10;&#13;&#10;if [ $copyAU -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AudioUnit folder...&quot;&#13;&#10;  AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component&#13;&#10;  if [ -d &quot;$AU&quot; ]; then &#13;&#10;    rm -r &quot;$AU&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$AU&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$AU/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$AU/Contents/$INFOPLIST_FILE&quot;&#13;&#10;&#13;&#10;  # Fix info.plist for AUs built with Xcode 3&#13;&#10;  if [ -f &quot;$DEVELOPER_DIR/Library/Developer/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp&quot; ]; then&#13;&#10;    echo&#13;&#10;  else&#13;&#10;    echo &quot;Removing AudioComponents entry from Info.plist because this is not a new-format AU&quot;&#13;&#10;    /usr/libexec/PlistBuddy -c &quot;Delete AudioComponents&quot; &quot;$AU/Contents/Info.plist&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST folder...&quot;&#13;&#10;  VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst&#13;&#10;  if [ -d &quot;$VST&quot; ]; then &#13;&#10;    rm -r &quot;$VST&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST3 -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST3 folder...&quot;&#13;&#10;  VST3=~/Library/Audio/Plug-Ins/VST3/$PRODUCT_NAME.vst3&#13;&#10;  if [ -d &quot;$VST3&quot; ]; then &#13;&#10;    rm -r &quot;$VST3&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST3&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST3/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST3/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyRTAS -gt 0 ]; then&#13;&#10;  echo &quot;Copying to RTAS folder...&quot;&#13;&#10;  RTAS=/Library/Application\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm&#13;&#10;  if [ -d &quot;$RTAS&quot; ]; then&#13;&#10;    rm -r &quot;$RTAS&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$RTAS&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyAAX -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AAX folder...&quot;&#13;&#10;&#13;&#10;  if [ -d &quot;/Applications/ProTools_3PDev/Plug-Ins&quot; ]; then&#13;&#10;    AAX1=&quot;/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX1&quot; ]; then&#13;&#10;      rm -r &quot;$AAX1&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX1&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  if [ -d &quot;/Library/Application Support/Avid/Audio/Plug-Ins&quot; ]; then&#13;&#10;    AAX2=&quot;/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX2&quot; ]; then&#13;&#10;      rm -r &quot;$AAX2&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX2&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="pitchshift"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       headerPath="/usr/local/include" libraryPath="/usr/local/lib"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="pitchshift"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       headerPath="/usr/local/include" libraryPath="/usr/local/lib"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="oVUVUz" name="pvoc_pitchshift">
+    <GROUP id="{F4483B04-0E7A-D77C-795E-A491F61E239B}" name="Source">
+      <FILE id="d7EIMU" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="YDAD0P" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="VTO1E6" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="mhOgcd" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/reverb/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/reverb/Source/MVerb.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,848 @@
+//	Copyright (c) 2010 Martin Eastwood
+//  This code is distributed under the terms of the GNU General Public License
+
+//  MVerb is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  at your option) any later version.
+//
+//  MVerb is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this MVerb.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef EMVERB_H
+#define EMVERB_H
+
+//forward declaration
+template<typename T, int maxLength> class Allpass;
+template<typename T, int maxLength> class StaticAllpassFourTap;
+template<typename T, int maxLength> class StaticDelayLine;
+template<typename T, int maxLength> class StaticDelayLineFourTap;
+template<typename T, int maxLength> class StaticDelayLineEightTap;
+template<typename T, int OverSampleCount> class StateVariable;
+
+template<typename T>
+class MVerb
+{
+private:
+    Allpass<T, 96000> allpass[4];
+    StaticAllpassFourTap<T, 96000> allpassFourTap[4];
+    StateVariable<T,4> bandwidthFilter[2];
+    StateVariable<T,4> damping[2];
+    StaticDelayLine<T, 96000> predelay;
+    StaticDelayLineFourTap<T, 96000> staticDelayLine[4];
+    StaticDelayLineEightTap<T, 96000> earlyReflectionsDelayLine[2];
+    T SampleRate, DampingFreq, Density1, Density2, BandwidthFreq, PreDelayTime, Decay, Gain, Mix, EarlyMix, Size;
+    T MixSmooth, EarlyLateSmooth, BandwidthSmooth, DampingSmooth, PredelaySmooth, SizeSmooth, DensitySmooth, DecaySmooth;
+    T PreviousLeftTank, PreviousRightTank;
+    int ControlRate, ControlRateCounter;
+
+public:
+    enum
+		{
+			DAMPINGFREQ=0,
+			DENSITY,
+			BANDWIDTHFREQ,
+            DECAY,
+            PREDELAY,
+            SIZE,
+            GAIN,
+            MIX,
+            EARLYMIX,
+            NUM_PARAMS
+		};
+
+    MVerb(){
+        setParameter (DAMPINGFREQ, 0.0);
+        setParameter (DENSITY, 0.5);
+        setParameter (BANDWIDTHFREQ, 1.0);
+        setParameter (DECAY, 0.5);
+        setParameter (PREDELAY, 0.0);
+        setParameter (SIZE, 0.5);
+        setParameter (GAIN, 1.0);
+        setParameter (MIX, 0.15);
+        setParameter (EARLYMIX, 0.75);
+
+        SampleRate = 44100.;
+        PreviousLeftTank = 0.;
+        PreviousRightTank = 0.;
+        PreDelayTime = 100 * (SampleRate / 1000);
+        MixSmooth = EarlyLateSmooth = BandwidthSmooth = DampingSmooth = PredelaySmooth = SizeSmooth = DecaySmooth = DensitySmooth = 0.;
+        ControlRate = SampleRate / 1000;
+        ControlRateCounter = 0;
+        reset();
+    }
+
+    ~MVerb(){
+        //nowt to do here
+    }
+
+    void process(T **inputs, T **outputs, int sampleFrames){
+        T OneOverSampleFrames = 1. / sampleFrames;
+        T MixDelta	= (Mix - MixSmooth) * OneOverSampleFrames;
+        T EarlyLateDelta = (EarlyMix - EarlyLateSmooth) * OneOverSampleFrames;
+        T BandwidthDelta = (((BandwidthFreq * 18400.) + 100.) - BandwidthSmooth) * OneOverSampleFrames;
+        T DampingDelta = (((DampingFreq * 18400.) + 100.) - DampingSmooth) * OneOverSampleFrames;
+        T PredelayDelta = ((PreDelayTime * 200 * (SampleRate / 1000)) - PredelaySmooth) * OneOverSampleFrames;
+        T SizeDelta	= (Size - SizeSmooth) * OneOverSampleFrames;
+        T DecayDelta = (((0.7995f * Decay) + 0.005) - DecaySmooth) * OneOverSampleFrames;
+        T DensityDelta = (((0.7995f * Density1) + 0.005) - DensitySmooth) * OneOverSampleFrames;
+        for(int i=0;i<sampleFrames;++i){
+            T left = inputs[0][i];
+            T right = inputs[1][i];
+            MixSmooth += MixDelta;
+            EarlyLateSmooth += EarlyLateDelta;
+            BandwidthSmooth += BandwidthDelta;
+            DampingSmooth += DampingDelta;
+            PredelaySmooth += PredelayDelta;
+            SizeSmooth += SizeDelta;
+            DecaySmooth += DecayDelta;
+            DensitySmooth += DensityDelta;
+            if (ControlRateCounter >= ControlRate){
+                ControlRateCounter = 0;
+                bandwidthFilter[0].Frequency(BandwidthSmooth);
+                bandwidthFilter[1].Frequency(BandwidthSmooth);
+                damping[0].Frequency(DampingSmooth);
+                damping[1].Frequency(DampingSmooth);
+            }
+            ++ControlRateCounter;
+            predelay.SetLength(PredelaySmooth);
+            Density2 = DecaySmooth + 0.15;
+            if (Density2 > 0.5)
+                Density2 = 0.5;
+            if (Density2 < 0.25)
+                Density2 = 0.25;
+            allpassFourTap[1].SetFeedback(Density2);
+            allpassFourTap[3].SetFeedback(Density2);
+            allpassFourTap[0].SetFeedback(Density1);
+            allpassFourTap[2].SetFeedback(Density1);
+            T bandwidthLeft = bandwidthFilter[0](left) ;
+            T bandwidthRight = bandwidthFilter[1](right) ;
+            T earlyReflectionsL = earlyReflectionsDelayLine[0] ( bandwidthLeft * 0.5 + bandwidthRight * 0.3 )
+                                + earlyReflectionsDelayLine[0].GetIndex(2) * 0.6
+                                + earlyReflectionsDelayLine[0].GetIndex(3) * 0.4
+                                + earlyReflectionsDelayLine[0].GetIndex(4) * 0.3
+                                + earlyReflectionsDelayLine[0].GetIndex(5) * 0.3
+                                + earlyReflectionsDelayLine[0].GetIndex(6) * 0.1
+                                + earlyReflectionsDelayLine[0].GetIndex(7) * 0.1
+                                + ( bandwidthLeft * 0.4 + bandwidthRight * 0.2 ) * 0.5 ;
+            T earlyReflectionsR = earlyReflectionsDelayLine[1] ( bandwidthLeft * 0.3 + bandwidthRight * 0.5 )
+                                + earlyReflectionsDelayLine[1].GetIndex(2) * 0.6
+                                + earlyReflectionsDelayLine[1].GetIndex(3) * 0.4
+                                + earlyReflectionsDelayLine[1].GetIndex(4) * 0.3
+                                + earlyReflectionsDelayLine[1].GetIndex(5) * 0.3
+                                + earlyReflectionsDelayLine[1].GetIndex(6) * 0.1
+                                + earlyReflectionsDelayLine[1].GetIndex(7) * 0.1
+                                + ( bandwidthLeft * 0.2 + bandwidthRight * 0.4 ) * 0.5 ;
+            T predelayMonoInput = predelay(( bandwidthRight + bandwidthLeft ) * 0.5f);
+            T smearedInput = predelayMonoInput;
+            for(int j=0;j<4;j++)
+                smearedInput = allpass[j] ( smearedInput );
+            T leftTank = allpassFourTap[0] ( smearedInput + PreviousRightTank ) ;
+            leftTank = staticDelayLine[0] (leftTank);
+            leftTank = damping[0](leftTank);
+            leftTank = allpassFourTap[1](leftTank);
+            leftTank = staticDelayLine[1](leftTank);
+            T rightTank = allpassFourTap[2] (smearedInput + PreviousLeftTank) ;
+            rightTank = staticDelayLine[2](rightTank);
+            rightTank = damping[1] (rightTank);
+            rightTank = allpassFourTap[3](rightTank);
+            rightTank = staticDelayLine[3](rightTank);
+            PreviousLeftTank = leftTank * DecaySmooth;
+            PreviousRightTank = rightTank * DecaySmooth;
+            T accumulatorL = (0.6*staticDelayLine[2].GetIndex(1))
+                            +(0.6*staticDelayLine[2].GetIndex(2))
+                            -(0.6*allpassFourTap[3].GetIndex(1))
+                            +(0.6*staticDelayLine[3].GetIndex(1))
+                            -(0.6*staticDelayLine[0].GetIndex(1))
+                            -(0.6*allpassFourTap[1].GetIndex(1))
+                            -(0.6*staticDelayLine[1].GetIndex(1));
+            T accumulatorR = (0.6*staticDelayLine[0].GetIndex(2))
+                            +(0.6*staticDelayLine[0].GetIndex(3))
+                            -(0.6*allpassFourTap[1].GetIndex(2))
+                            +(0.6*staticDelayLine[1].GetIndex(2))
+                            -(0.6*staticDelayLine[2].GetIndex(3))
+                            -(0.6*allpassFourTap[3].GetIndex(2))
+                            -(0.6*staticDelayLine[3].GetIndex(2));
+            accumulatorL = ((accumulatorL * EarlyMix) + ((1 - EarlyMix) * earlyReflectionsL));
+            accumulatorR = ((accumulatorR * EarlyMix) + ((1 - EarlyMix) * earlyReflectionsR));
+            left = ( left + MixSmooth * ( accumulatorL - left ) ) * Gain;
+            right = ( right + MixSmooth * ( accumulatorR - right ) ) * Gain;
+            outputs[0][i] = left;
+            outputs[1][i] = right;
+        }
+    }
+
+    void reset(){
+        ControlRateCounter = 0;
+        bandwidthFilter[0].SetSampleRate (SampleRate );
+        bandwidthFilter[1].SetSampleRate (SampleRate );
+        bandwidthFilter[0].Reset();
+        bandwidthFilter[1].Reset();
+        damping[0].SetSampleRate (SampleRate );
+        damping[1].SetSampleRate (SampleRate );
+        damping[0].Reset();
+        damping[1].Reset();
+        predelay.Clear();
+        predelay.SetLength(PreDelayTime);
+        allpass[0].Clear();
+        allpass[1].Clear();
+        allpass[2].Clear();
+        allpass[3].Clear();
+        allpass[0].SetLength (0.0048 * SampleRate);
+        allpass[1].SetLength (0.0036 * SampleRate);
+        allpass[2].SetLength (0.0127 * SampleRate);
+        allpass[3].SetLength (0.0093 * SampleRate);
+        allpass[0].SetFeedback (0.75);
+        allpass[1].SetFeedback (0.75);
+        allpass[2].SetFeedback (0.625);
+        allpass[3].SetFeedback (0.625);
+        allpassFourTap[0].Clear();
+        allpassFourTap[1].Clear();
+        allpassFourTap[2].Clear();
+        allpassFourTap[3].Clear();
+        allpassFourTap[0].SetLength(0.020 * SampleRate * Size);
+        allpassFourTap[1].SetLength(0.060 * SampleRate * Size);
+        allpassFourTap[2].SetLength(0.030 * SampleRate * Size);
+        allpassFourTap[3].SetLength(0.089 * SampleRate * Size);
+        allpassFourTap[0].SetFeedback(Density1);
+        allpassFourTap[1].SetFeedback(Density2);
+        allpassFourTap[2].SetFeedback(Density1);
+        allpassFourTap[3].SetFeedback(Density2);
+        allpassFourTap[0].SetIndex(0,0,0,0);
+        allpassFourTap[1].SetIndex(0,0.006 * SampleRate * Size, 0.041 * SampleRate * Size, 0);
+        allpassFourTap[2].SetIndex(0,0,0,0);
+        allpassFourTap[3].SetIndex(0,0.031 * SampleRate * Size, 0.011 * SampleRate * Size, 0);
+        staticDelayLine[0].Clear();
+        staticDelayLine[1].Clear();
+        staticDelayLine[2].Clear();
+        staticDelayLine[3].Clear();
+        staticDelayLine[0].SetLength(0.15 * SampleRate * Size);
+        staticDelayLine[1].SetLength(0.12 * SampleRate * Size);
+        staticDelayLine[2].SetLength(0.14 * SampleRate * Size);
+        staticDelayLine[3].SetLength(0.11 * SampleRate * Size);
+        staticDelayLine[0].SetIndex(0, 0.067 * SampleRate * Size, 0.011 * SampleRate * Size , 0.121 * SampleRate * Size);
+        staticDelayLine[1].SetIndex(0, 0.036 * SampleRate * Size, 0.089 * SampleRate * Size , 0);
+        staticDelayLine[2].SetIndex(0, 0.0089 * SampleRate * Size, 0.099 * SampleRate * Size , 0);
+        staticDelayLine[3].SetIndex(0, 0.067 * SampleRate * Size, 0.0041 * SampleRate * Size , 0);
+        earlyReflectionsDelayLine[0].Clear();
+        earlyReflectionsDelayLine[1].Clear();
+        earlyReflectionsDelayLine[0].SetLength(0.089 * SampleRate);
+        earlyReflectionsDelayLine[0].SetIndex (0, 0.0199*SampleRate, 0.0219*SampleRate, 0.0354*SampleRate,0.0389*SampleRate, 0.0414*SampleRate, 0.0692*SampleRate, 0);
+        earlyReflectionsDelayLine[1].SetLength(0.069 * SampleRate);
+        earlyReflectionsDelayLine[1].SetIndex (0, 0.0099*SampleRate, 0.011*SampleRate, 0.0182*SampleRate,0.0189*SampleRate, 0.0213*SampleRate, 0.0431*SampleRate, 0);
+    }
+
+    void setParameter(int index, T value){
+        switch(index){
+            case DAMPINGFREQ:
+                    DampingFreq =  1. - value;
+                    break;
+            case DENSITY:
+                    Density1 = value;
+                    break;
+            case BANDWIDTHFREQ:
+                    BandwidthFreq = value;
+                    break;
+            case PREDELAY:
+                    PreDelayTime = value;
+                    break;
+            case SIZE:
+                    Size = (0.95 * value) + 0.05;
+					allpassFourTap[0].Clear();
+					allpassFourTap[1].Clear();
+					allpassFourTap[2].Clear();
+					allpassFourTap[3].Clear();
+                    allpassFourTap[0].SetLength(0.020 * SampleRate * Size);
+                    allpassFourTap[1].SetLength(0.060 * SampleRate * Size);
+                    allpassFourTap[2].SetLength(0.030 * SampleRate * Size);
+                    allpassFourTap[3].SetLength(0.089 * SampleRate * Size);
+                    allpassFourTap[1].SetIndex(0,0.006 * SampleRate * Size, 0.041 * SampleRate * Size, 0);
+                    allpassFourTap[3].SetIndex(0,0.031 * SampleRate * Size, 0.011 * SampleRate * Size, 0);
+					staticDelayLine[0].Clear();
+					staticDelayLine[1].Clear();
+					staticDelayLine[2].Clear();
+					staticDelayLine[3].Clear();
+                    staticDelayLine[0].SetLength(0.15 * SampleRate * Size);
+                    staticDelayLine[1].SetLength(0.12 * SampleRate * Size);
+                    staticDelayLine[2].SetLength(0.14 * SampleRate * Size);
+                    staticDelayLine[3].SetLength(0.11 * SampleRate * Size);
+                    staticDelayLine[0].SetIndex(0, 0.067 * SampleRate * Size, 0.011 * SampleRate * Size , 0.121 * SampleRate * Size);
+                    staticDelayLine[1].SetIndex(0, 0.036 * SampleRate * Size, 0.089 * SampleRate * Size , 0);
+                    staticDelayLine[2].SetIndex(0, 0.0089 * SampleRate * Size, 0.099 * SampleRate * Size , 0);
+                    staticDelayLine[3].SetIndex(0, 0.067 * SampleRate * Size, 0.0041 * SampleRate * Size , 0);
+                    break;
+            case DECAY:
+                    Decay = value;
+                    break;
+            case GAIN:
+                    Gain = value;
+                    break;
+            case MIX:
+                    Mix = value;
+                    break;
+            case EARLYMIX:
+                    EarlyMix = value;
+                    break;
+        }
+    }
+
+    float getParameter(int index){
+        switch(index){
+            case DAMPINGFREQ:
+                    return DampingFreq * 100.;
+                    break;
+            case DENSITY:
+                    return Density1 * 100.f;
+                    break;
+            case BANDWIDTHFREQ:
+                    return BandwidthFreq * 100.;
+                    break;
+            case PREDELAY:
+                    return PreDelayTime * 100.;
+                    break;
+            case SIZE:
+                    return (((0.95 * Size) + 0.05)*100.);
+                    break;
+            case DECAY:
+                    return Decay * 100.f;
+                    break;
+            case GAIN:
+                    return Gain * 100.f;
+                    break;
+            case MIX:
+                    return Mix * 100.f;
+                    break;
+            case EARLYMIX:
+                    return EarlyMix * 100.f;
+                    break;
+            default: return 0.f;
+                break;
+
+        }
+    }
+
+    void setSampleRate(T sr){
+        SampleRate = sr;
+        ControlRate = SampleRate / 1000;
+        reset();
+    }
+};
+
+
+
+template<typename T, int maxLength>
+class Allpass
+{
+private:
+    T buffer[maxLength];
+	int index;
+	int Length;
+	T Feedback;
+
+public:
+    Allpass()
+    {
+		SetLength ( maxLength - 1 );
+		Clear();
+		Feedback = 0.5;
+    }
+
+	T operator()(T input)
+    {
+		T output;
+		T bufout;
+		bufout = buffer[index];
+		T temp = input * -Feedback;
+		output = bufout + temp;
+		buffer[index] = input + ((bufout+temp)*Feedback);
+		if(++index>=Length) index = 0;
+		return output;
+
+    }
+
+	void SetLength (int Length)
+    {
+       if( Length >= maxLength )
+			Length = maxLength;
+	   if( Length < 0 )
+			Length = 0;
+
+        this->Length = Length;
+    }
+
+	void SetFeedback(T feedback)
+    {
+        Feedback = feedback;
+    }
+
+    void Clear()
+    {
+        memset(buffer, 0, sizeof(buffer));
+		index = 0;
+    }
+
+    int GetLength() const
+    {
+        return Length;
+    }
+};
+
+template<typename T, int maxLength>
+class StaticAllpassFourTap
+{
+private:
+    T buffer[maxLength];
+	int index1, index2, index3, index4;
+	int Length;
+	T Feedback;
+
+public:
+    StaticAllpassFourTap()
+    {
+		SetLength ( maxLength - 1 );
+		Clear();
+		Feedback = 0.5;
+    }
+
+	T operator()(T input)
+    {
+		T output;
+		T bufout;
+
+		bufout = buffer[index1];
+		T temp = input * -Feedback;
+		output = bufout + temp;
+		buffer[index1] = input + ((bufout+temp)*Feedback);
+
+		if(++index1>=Length)
+			index1 = 0;
+		if(++index2 >= Length)
+			index2 = 0;
+		if(++index3 >= Length)
+			index3 = 0;
+		if(++index4 >= Length)
+			index4 = 0;
+
+		return output;
+
+    }
+
+	void SetIndex (int Index1, int Index2, int Index3, int Index4)
+	{
+		index1 = Index1;
+		index2 = Index2;
+		index3 = Index3;
+		index4 = Index4;
+	}
+
+	T GetIndex (int Index)
+	{
+		switch (Index)
+		{
+			case 0:
+				return buffer[index1];
+				break;
+			case 1:
+				return buffer[index2];
+				break;
+			case 2:
+				return buffer[index3];
+				break;
+			case 3:
+				return buffer[index4];
+				break;
+			default:
+				return buffer[index1];
+				break;
+		}
+	}
+
+	void SetLength (int Length)
+    {
+       if( Length >= maxLength )
+			Length = maxLength;
+	   if( Length < 0 )
+			Length = 0;
+
+        this->Length = Length;
+    }
+
+
+    void Clear()
+    {
+        memset(buffer, 0, sizeof(buffer));
+		index1 = index2  = index3 = index4 = 0;
+    }
+
+	void SetFeedback(T feedback)
+    {
+        Feedback = feedback;
+    }
+
+
+    int GetLength() const
+    {
+        return Length;
+    }
+};
+
+template<typename T, int maxLength>
+class StaticDelayLine
+{
+private:
+    T buffer[maxLength];
+	int index;
+	int Length;
+	T Feedback;
+
+public:
+    StaticDelayLine()
+    {
+		SetLength ( maxLength - 1 );
+		Clear();
+    }
+
+	T operator()(T input)
+    {
+		T output = buffer[index];
+		buffer[index++] = input;
+		if(index >= Length)
+			index = 0;
+		return output;
+
+    }
+
+	void SetLength (int Length)
+    {
+       if( Length >= maxLength )
+			Length = maxLength;
+	   if( Length < 0 )
+			Length = 0;
+
+        this->Length = Length;
+    }
+
+    void Clear()
+    {
+        memset(buffer, 0, sizeof(buffer));
+		index = 0;
+    }
+
+    int GetLength() const
+    {
+        return Length;
+    }
+};
+
+template<typename T, int maxLength>
+class StaticDelayLineFourTap
+{
+private:
+    T buffer[maxLength];
+	int index1, index2, index3, index4;
+	int Length;
+	T Feedback;
+
+public:
+    StaticDelayLineFourTap()
+    {
+		SetLength ( maxLength - 1 );
+		Clear();
+    }
+
+	//get ouput and iterate
+	T operator()(T input)
+    {
+		T output = buffer[index1];
+		buffer[index1++] = input;
+		if(index1 >= Length)
+			index1 = 0;
+		if(++index2 >= Length)
+			index2 = 0;
+		if(++index3 >= Length)
+			index3 = 0;
+		if(++index4 >= Length)
+			index4 = 0;
+		return output;
+
+    }
+
+	void SetIndex (int Index1, int Index2, int Index3, int Index4)
+	{
+		index1 = Index1;
+		index2 = Index2;
+		index3 = Index3;
+		index4 = Index4;
+	}
+
+
+	T GetIndex (int Index)
+	{
+		switch (Index)
+		{
+			case 0:
+				return buffer[index1];
+				break;
+			case 1:
+				return buffer[index2];
+				break;
+			case 2:
+				return buffer[index3];
+				break;
+			case 3:
+				return buffer[index4];
+				break;
+			default:
+				return buffer[index1];
+				break;
+		}
+	}
+
+
+	void SetLength (int Length)
+    {
+       if( Length >= maxLength )
+			Length = maxLength;
+	   if( Length < 0 )
+			Length = 0;
+
+        this->Length = Length;
+    }
+
+
+    void Clear()
+    {
+        memset(buffer, 0, sizeof(buffer));
+		index1 = index2  = index3 = index4 = 0;
+    }
+
+
+    int GetLength() const
+    {
+        return Length;
+    }
+};
+
+template<typename T, int maxLength>
+class StaticDelayLineEightTap
+{
+private:
+    T buffer[maxLength];
+	int index1, index2, index3, index4, index5, index6, index7, index8;
+	int Length;
+	T Feedback;
+
+public:
+    StaticDelayLineEightTap()
+    {
+		SetLength ( maxLength - 1 );
+		Clear();
+    }
+
+	//get ouput and iterate
+	T operator()(T input)
+    {
+		T output = buffer[index1];
+		buffer[index1++] = input;
+		if(index1 >= Length)
+			index1 = 0;
+		if(++index2 >= Length)
+			index2 = 0;
+		if(++index3 >= Length)
+			index3 = 0;
+		if(++index4 >= Length)
+			index4 = 0;
+		if(++index5 >= Length)
+			index5 = 0;
+		if(++index6 >= Length)
+			index6 = 0;
+		if(++index7 >= Length)
+			index7 = 0;
+		if(++index8 >= Length)
+			index8 = 0;
+		return output;
+
+    }
+
+	void SetIndex (int Index1, int Index2, int Index3, int Index4, int Index5, int Index6, int Index7, int Index8)
+	{
+		index1 = Index1;
+		index2 = Index2;
+		index3 = Index3;
+		index4 = Index4;
+		index5 = Index5;
+		index6 = Index6;
+		index7 = Index7;
+		index8 = Index8;
+	}
+
+
+	T GetIndex (int Index)
+	{
+		switch (Index)
+		{
+			case 0:
+				return buffer[index1];
+				break;
+			case 1:
+				return buffer[index2];
+				break;
+			case 2:
+				return buffer[index3];
+				break;
+			case 3:
+				return buffer[index4];
+				break;
+            case 4:
+				return buffer[index5];
+				break;
+			case 5:
+				return buffer[index6];
+				break;
+			case 6:
+				return buffer[index7];
+				break;
+			case 7:
+				return buffer[index8];
+				break;
+			default:
+				return buffer[index1];
+				break;
+		}
+	}
+
+
+	void SetLength (int Length)
+    {
+       if( Length >= maxLength )
+			Length = maxLength;
+	   if( Length < 0 )
+			Length = 0;
+
+        this->Length = Length;
+    }
+
+
+    void Clear()
+    {
+        memset(buffer, 0, sizeof(buffer));
+		index1 = index2  = index3 = index4 = index5 = index6 = index7 = index8 = 0;
+    }
+
+
+    int GetLength() const
+    {
+        return Length;
+    }
+};
+
+template<typename T, int OverSampleCount>
+    class StateVariable
+    {
+    public:
+
+        enum FilterType
+        {
+            LOWPASS,
+            HIGHPASS,
+            BANDPASS,
+            NOTCH,
+            FilterTypeCount
+        };
+
+    private:
+
+        T sampleRate;
+        T frequency;
+        T q;
+        T f;
+
+        T low;
+        T high;
+        T band;
+        T notch;
+
+        T *out;
+
+    public:
+        StateVariable()
+        {
+            SetSampleRate(44100.);
+            Frequency(1000.);
+            Resonance(0);
+            Type(LOWPASS);
+            Reset();
+        }
+
+        T operator()(T input)
+        {
+            for(unsigned int i = 0; i < OverSampleCount; i++)
+            {
+                low += f * band + 1e-25;
+                high = input - low - q * band;
+                band += f * high;
+                notch = low + high;
+            }
+			return *out;
+        }
+
+        void Reset()
+        {
+            low = high = band = notch = 0;
+        }
+
+        void SetSampleRate(T sampleRate)
+        {
+            this->sampleRate = sampleRate * OverSampleCount;
+            UpdateCoefficient();
+        }
+
+        void Frequency(T frequency)
+        {
+            this->frequency = frequency;
+            UpdateCoefficient();
+        }
+
+        void Resonance(T resonance)
+        {
+            this->q = 2 - 2 * resonance;
+        }
+
+        void Type(int type)
+        {
+            switch(type)
+            {
+            case LOWPASS:
+                out = &low;
+                break;
+
+            case HIGHPASS:
+                out = &high;
+                break;
+
+            case BANDPASS:
+                out = &band;
+                break;
+
+            case NOTCH:
+                out = &notch;
+                break;
+
+            default:
+                out = &low;
+                break;
+            }
+        }
+
+    private:
+        void UpdateCoefficient()
+        {
+            f = 2. * sinf(3.141592654 * frequency / sampleRate);
+        }
+	};
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/reverb/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,563 @@
+/*
+  ==============================================================================
+
+  This is an automatically generated GUI class created by the Introjucer!
+
+  Be careful when adding custom code to these files, as only the code within
+  the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
+  and re-saved.
+
+  Created with Introjucer version: 3.1.0
+
+  ------------------------------------------------------------------------------
+
+  The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
+  Copyright 2004-13 by Raw Material Software Ltd.
+
+  ==============================================================================
+*/
+
+//[Headers] You can add your own extra header files here...
+#include "PluginProcessor.h"
+#include "MVerb.h"
+//[/Headers]
+
+#include "PluginEditor.h"
+
+
+//[MiscUserDefs] You can add your own user definitions and misc code here...
+
+//LookAndFeelCustom* ReverbAudioProcessorEditor::customLookAndFeel = NULL;
+
+//[/MiscUserDefs]
+
+//==============================================================================
+ReverbAudioProcessorEditor::ReverbAudioProcessorEditor (ReverbAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter)
+{
+    addAndMakeVisible (lateEarlySlider = new Slider ("new slider"));
+    lateEarlySlider->setRange (0, 1, 0.01);
+    lateEarlySlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    lateEarlySlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    lateEarlySlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    lateEarlySlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    lateEarlySlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    lateEarlySlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    lateEarlySlider->addListener (this);
+
+    addAndMakeVisible (mixSlider = new Slider ("new slider"));
+    mixSlider->setRange (0, 1, 0.01);
+    mixSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    mixSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    mixSlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    mixSlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    mixSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    mixSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    mixSlider->addListener (this);
+
+    addAndMakeVisible (gainSlider = new Slider ("new slider"));
+    gainSlider->setRange (0, 1, 0.01);
+    gainSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    gainSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    gainSlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    gainSlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    gainSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    gainSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    gainSlider->addListener (this);
+
+    addAndMakeVisible (preDelaySlider = new Slider ("new slider"));
+    preDelaySlider->setRange (0, 1, 0.01);
+    preDelaySlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    preDelaySlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    preDelaySlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    preDelaySlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    preDelaySlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    preDelaySlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    preDelaySlider->addListener (this);
+
+    addAndMakeVisible (bandWidthSlider = new Slider ("new slider"));
+    bandWidthSlider->setRange (0, 1, 0.01);
+    bandWidthSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    bandWidthSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    bandWidthSlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    bandWidthSlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    bandWidthSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    bandWidthSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    bandWidthSlider->addListener (this);
+
+    addAndMakeVisible (dampSlider = new Slider ("new slider"));
+    dampSlider->setRange (0, 1, 0.01);
+    dampSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    dampSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    dampSlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    dampSlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    dampSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    dampSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    dampSlider->addListener (this);
+
+    addAndMakeVisible (sizeSlider = new Slider ("new slider"));
+    sizeSlider->setRange (0, 1, 0.01);
+    sizeSlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    sizeSlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    sizeSlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    sizeSlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    sizeSlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    sizeSlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    sizeSlider->addListener (this);
+
+    addAndMakeVisible (decaySlider = new Slider ("new slider"));
+    decaySlider->setRange (0, 1, 0.01);
+    decaySlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    decaySlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    decaySlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    decaySlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    decaySlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    decaySlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    decaySlider->addListener (this);
+
+    addAndMakeVisible (densitySlider = new Slider ("new slider"));
+    densitySlider->setRange (0, 1, 0.01);
+    densitySlider->setSliderStyle (Slider::RotaryHorizontalVerticalDrag);
+    densitySlider->setTextBoxStyle (Slider::TextBoxBelow, false, 40, 20);
+    densitySlider->setColour (Slider::rotarySliderFillColourId, Colour (0x7fffffff));
+    densitySlider->setColour (Slider::textBoxTextColourId, Colours::white);
+    densitySlider->setColour (Slider::textBoxBackgroundColourId, Colour (0x00ffffff));
+    densitySlider->setColour (Slider::textBoxOutlineColourId, Colour (0x00808080));
+    densitySlider->addListener (this);
+
+
+    //[UserPreSize]
+    addAndMakeVisible (resizer = new ResizableCornerComponent (this, &resizeLimits));
+    resizeLimits.setSizeLimits (150, 150, 850, 290);
+    //[/UserPreSize]
+
+    setSize (470, 470);
+
+
+    //[Constructor] You can add your own custom stuff here..
+
+	UpdateInterfaceValues();
+
+	//************************************ SET LOOKANDFEEL **********************************
+//	if( customLookAndFeel == NULL )
+//	{
+//		customLookAndFeel = new LookAndFeelCustom();
+//		LookAndFeel::setDefaultLookAndFeel (/*&*/customLookAndFeel);
+//	}
+
+	//***************************************************************************************
+
+    startTimer (50);
+
+    //[/Constructor]
+}
+
+ReverbAudioProcessorEditor::~ReverbAudioProcessorEditor()
+{
+    //[Destructor_pre]. You can add your own custom destruction code here..
+    //[/Destructor_pre]
+
+    lateEarlySlider = nullptr;
+    mixSlider = nullptr;
+    gainSlider = nullptr;
+    preDelaySlider = nullptr;
+    bandWidthSlider = nullptr;
+    dampSlider = nullptr;
+    sizeSlider = nullptr;
+    decaySlider = nullptr;
+    densitySlider = nullptr;
+
+
+    //[Destructor]. You can add your own custom destruction code here..
+
+    //[/Destructor]
+}
+
+//==============================================================================
+void ReverbAudioProcessorEditor::paint (Graphics& g)
+{
+    //[UserPrePaint] Add your own custom painting code here..
+    //[/UserPrePaint]
+
+    g.fillAll (Colour (0xff000a39));
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (332.0f, 204.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (348.0f, 220.0f, 56.0f, 56.0f);
+
+    g.setColour (Colour (0xff2f3d6a));
+    g.fillRoundedRectangle (136.0f, 5.0f, 175.0f, 37.0f, 10.000f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 22.30f, Font::bold));
+    g.drawText (TRANS("reverb"),
+                1, 13, 446, 24,
+                Justification::centredTop, true);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("MIX"),
+                346, 183, 59, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (332.0f, 337.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (348.0f, 353.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("LATE/EARLY"),
+                333, 316, 83, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (332.0f, 78.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (348.0f, 94.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("GAIN"),
+                346, 57, 59, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (190.0f, 204.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (206.0f, 220.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("BANDWITH"),
+                201, 183, 65, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (190.0f, 337.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (206.0f, 353.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("PREDELAY"),
+                202, 316, 64, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (190.0f, 78.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (206.0f, 94.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("DAMP"),
+                204, 57, 59, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (48.0f, 204.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (64.0f, 220.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("DECAY"),
+                62, 183, 59, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (48.0f, 337.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (64.0f, 353.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("SIZE"),
+                62, 316, 59, 30,
+                Justification::centred, true);
+
+    g.setColour (Colour (0xff315d9d));
+    g.fillEllipse (48.0f, 78.0f, 88.0f, 88.0f);
+
+    g.setColour (Colour (0xff2c333b));
+    g.fillEllipse (64.0f, 94.0f, 56.0f, 56.0f);
+
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 15.00f, Font::plain));
+    g.drawText (TRANS("DENSITY"),
+                63, 57, 59, 30,
+                Justification::centred, true);
+
+    //[UserPaint] Add your own custom painting code here..
+
+    // Version number
+    String str("v ");
+    str.append(JucePlugin_VersionString, 4);
+    g.setColour (Colours::white);
+    g.setFont (Font (Font::getDefaultMonospacedFontName(), 11.00f, Font::plain));
+    g.drawText (str,
+                189, 37, 54, 30,
+                Justification::centredLeft, true);
+
+    //[/UserPaint]
+}
+
+void ReverbAudioProcessorEditor::resized()
+{
+    lateEarlySlider->setBounds (294, 339, 164, 102);
+    mixSlider->setBounds (294, 207, 164, 102);
+    gainSlider->setBounds (294, 81, 164, 102);
+    preDelaySlider->setBounds (152, 340, 164, 102);
+    bandWidthSlider->setBounds (152, 207, 164, 102);
+    dampSlider->setBounds (152, 80, 164, 102);
+    sizeSlider->setBounds (11, 340, 164, 102);
+    decaySlider->setBounds (10, 207, 164, 102);
+    densitySlider->setBounds (10, 81, 164, 102);
+    //[UserResized] Add your own custom resize handling here..
+    getProcessor()->_lastUIWidth = getWidth();
+    getProcessor()->_lastUIHeight = getHeight();
+    //[/UserResized]
+}
+
+void ReverbAudioProcessorEditor::sliderValueChanged (Slider* sliderThatWasMoved)
+{
+    //[UsersliderValueChanged_Pre]
+    ReverbAudioProcessor* ourProcessor = getProcessor();
+    //[/UsersliderValueChanged_Pre]
+
+    if (sliderThatWasMoved == lateEarlySlider)
+    {
+        //[UserSliderCode_lateEarlySlider] -- add your slider handling code here..
+        ourProcessor->SetLateEarly(lateEarlySlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::EARLYMIX);
+        //[/UserSliderCode_lateEarlySlider]
+    }
+    else if (sliderThatWasMoved == mixSlider)
+    {
+        //[UserSliderCode_mixSlider] -- add your slider handling code here..
+        ourProcessor->SetMix(mixSlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::MIX);
+        //[/UserSliderCode_mixSlider]
+    }
+    else if (sliderThatWasMoved == gainSlider)
+    {
+        //[UserSliderCode_gainSlider] -- add your slider handling code here..
+        ourProcessor->SetGain(gainSlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::GAIN);
+        //[/UserSliderCode_gainSlider]
+    }
+    else if (sliderThatWasMoved == preDelaySlider)
+    {
+        //[UserSliderCode_preDelaySlider] -- add your slider handling code here..
+        ourProcessor->SetPredelay(preDelaySlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::PREDELAY);
+        //[/UserSliderCode_preDelaySlider]
+    }
+    else if (sliderThatWasMoved == bandWidthSlider)
+    {
+        //[UserSliderCode_bandWidthSlider] -- add your slider handling code here..
+        ourProcessor->SetBandwidth(bandWidthSlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::BANDWIDTHFREQ);
+        //[/UserSliderCode_bandWidthSlider]
+    }
+    else if (sliderThatWasMoved == dampSlider)
+    {
+        //[UserSliderCode_dampSlider] -- add your slider handling code here..
+        ourProcessor->SetDamp(dampSlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::DAMPINGFREQ);
+        //[/UserSliderCode_dampSlider]
+    }
+    else if (sliderThatWasMoved == sizeSlider)
+    {
+        //[UserSliderCode_sizeSlider] -- add your slider handling code here..
+        ourProcessor->SetSize(sizeSlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::SIZE);
+        //[/UserSliderCode_sizeSlider]
+    }
+    else if (sliderThatWasMoved == decaySlider)
+    {
+        //[UserSliderCode_decaySlider] -- add your slider handling code here..
+        ourProcessor->SetDecay(decaySlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::DECAY);
+        //[/UserSliderCode_decaySlider]
+    }
+    else if (sliderThatWasMoved == densitySlider)
+    {
+        //[UserSliderCode_densitySlider] -- add your slider handling code here..
+        ourProcessor->SetDensity(densitySlider->getValue());
+        ourProcessor->updateParameters(MVerb<float>::DENSITY);
+        //[/UserSliderCode_densitySlider]
+    }
+
+    //[UsersliderValueChanged_Post]
+    //[/UsersliderValueChanged_Post]
+}
+
+
+
+//[MiscUserCode] You can add your own definitions of your custom methods or any other code here...
+
+void ReverbAudioProcessorEditor::UpdateInterfaceValues()
+{
+	ReverbAudioProcessor* ourProcessor = getProcessor();
+
+    // Update Sliders
+    lateEarlySlider	->setValue(ourProcessor->_lateEarly,dontSendNotification);
+    densitySlider	->setValue(ourProcessor->_density,dontSendNotification);
+    mixSlider       ->setValue(ourProcessor->_mix,dontSendNotification);
+    preDelaySlider	->setValue(ourProcessor->_predelay,dontSendNotification);
+    dampSlider      ->setValue(ourProcessor->_damp,dontSendNotification);
+    sizeSlider      ->setValue(ourProcessor->_size,dontSendNotification);
+    decaySlider     ->setValue(ourProcessor->_decay,dontSendNotification);
+    bandWidthSlider	->setValue(ourProcessor->_bandwidth,dontSendNotification);
+    gainSlider      ->setValue(ourProcessor->_gain,dontSendNotification);
+}
+
+void ReverbAudioProcessorEditor::timerCallback()
+{
+	//DistortionAudioProcessor* ourProcessor = getProcessor();
+
+
+}
+
+//[/MiscUserCode]
+
+
+//==============================================================================
+#if 0
+/*  -- Introjucer information section --
+
+    This is where the Introjucer stores the metadata that describe this GUI layout, so
+    make changes in here at your peril!
+
+BEGIN_JUCER_METADATA
+
+<JUCER_COMPONENT documentType="Component" className="ReverbAudioProcessorEditor"
+                 componentName="" parentClasses="public AudioProcessorEditor, public Timer"
+                 constructorParams="ReverbAudioProcessor* ownerFilter" variableInitialisers="AudioProcessorEditor (ownerFilter)"
+                 snapPixels="8" snapActive="0" snapShown="1" overlayOpacity="0.330"
+                 fixedSize="1" initialWidth="470" initialHeight="470">
+  <BACKGROUND backgroundColour="ff000a39">
+    <ELLIPSE pos="332 204 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="348 220 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <ROUNDRECT pos="136 5 175 37" cornerSize="10" fill="solid: ff2f3d6a" hasStroke="0"/>
+    <TEXT pos="1 13 446 24" fill="solid: ffffffff" hasStroke="0" text="reverb"
+          fontname="Default monospaced font" fontsize="22.300000000000000711"
+          bold="1" italic="0" justification="12"/>
+    <TEXT pos="346 183 59 30" fill="solid: ffffffff" hasStroke="0" text="MIX"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="332 337 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="348 353 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="333 316 83 30" fill="solid: ffffffff" hasStroke="0" text="LATE/EARLY"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="332 78 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="348 94 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="346 57 59 30" fill="solid: ffffffff" hasStroke="0" text="GAIN"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="190 204 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="206 220 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="201 183 65 30" fill="solid: ffffffff" hasStroke="0" text="BANDWITH"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="190 337 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="206 353 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="202 316 64 30" fill="solid: ffffffff" hasStroke="0" text="PREDELAY"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="190 78 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="206 94 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="204 57 59 30" fill="solid: ffffffff" hasStroke="0" text="DAMP"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="48 204 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="64 220 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="62 183 59 30" fill="solid: ffffffff" hasStroke="0" text="DECAY"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="48 337 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="64 353 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="62 316 59 30" fill="solid: ffffffff" hasStroke="0" text="SIZE"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+    <ELLIPSE pos="48 78 88 88" fill="solid: ff315d9d" hasStroke="0"/>
+    <ELLIPSE pos="64 94 56 56" fill="solid: ff2c333b" hasStroke="0"/>
+    <TEXT pos="63 57 59 30" fill="solid: ffffffff" hasStroke="0" text="DENSITY"
+          fontname="Default monospaced font" fontsize="15" bold="0" italic="0"
+          justification="36"/>
+  </BACKGROUND>
+  <SLIDER name="new slider" id="b7cd5ae6d0a3bfc6" memberName="lateEarlySlider"
+          virtualName="" explicitFocusOrder="0" pos="294 339 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="8312c8e1102eca31" memberName="mixSlider"
+          virtualName="" explicitFocusOrder="0" pos="294 207 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="a0cf664fb4a85f44" memberName="gainSlider"
+          virtualName="" explicitFocusOrder="0" pos="294 81 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="55b568b536e67525" memberName="preDelaySlider"
+          virtualName="" explicitFocusOrder="0" pos="152 340 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="391314f65024cc7c" memberName="bandWidthSlider"
+          virtualName="" explicitFocusOrder="0" pos="152 207 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="8ec0d4dbfb348651" memberName="dampSlider"
+          virtualName="" explicitFocusOrder="0" pos="152 80 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="6120b55e7065ff03" memberName="sizeSlider"
+          virtualName="" explicitFocusOrder="0" pos="11 340 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="5aa10525b640e47e" memberName="decaySlider"
+          virtualName="" explicitFocusOrder="0" pos="10 207 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+  <SLIDER name="new slider" id="4aebd74c8aeafbac" memberName="densitySlider"
+          virtualName="" explicitFocusOrder="0" pos="10 81 164 102" rotarysliderfill="7fffffff"
+          textboxtext="ffffffff" textboxbkgd="ffffff" textboxoutline="808080"
+          min="0" max="1" int="0.010000000000000000208" style="RotaryHorizontalVerticalDrag"
+          textBoxPos="TextBoxBelow" textBoxEditable="1" textBoxWidth="40"
+          textBoxHeight="20" skewFactor="1"/>
+</JUCER_COMPONENT>
+
+END_JUCER_METADATA
+*/
+#endif
+
+
+//[EndFile] You can add extra defines here...
+//[/EndFile]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/reverb/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,102 @@
+/*
+  ==============================================================================
+
+  This is an automatically generated GUI class created by the Introjucer!
+
+  Be careful when adding custom code to these files, as only the code within
+  the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
+  and re-saved.
+
+  Created with Introjucer version: 3.1.0
+
+  ------------------------------------------------------------------------------
+
+  The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
+  Copyright 2004-13 by Raw Material Software Ltd.
+
+  ==============================================================================
+*/
+
+#ifndef __JUCE_HEADER_3DB9693590AE4D1__
+#define __JUCE_HEADER_3DB9693590AE4D1__
+
+//[Headers]     -- You can add your own extra header files here --
+
+//#include "../../Shared/LookAndFeelCustom.h" //used to be _nographics
+//[/Headers]
+
+
+
+//==============================================================================
+/**
+                                                                    //[Comments]
+    An auto-generated component, created by the Jucer.
+
+    Describe your class and how it works here!
+                                                                    //[/Comments]
+*/
+class ReverbAudioProcessorEditor  : public AudioProcessorEditor,
+                                    public Timer,
+                                    public SliderListener
+{
+public:
+    //==============================================================================
+    ReverbAudioProcessorEditor (ReverbAudioProcessor* ownerFilter);
+    ~ReverbAudioProcessorEditor();
+
+    //==============================================================================
+    //[UserMethods]     -- You can add your own custom methods in this section.
+    void timerCallback();
+    //[/UserMethods]
+
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider* sliderThatWasMoved);
+
+
+
+private:
+    //[UserVariables]   -- You can add your own custom variables in this section.
+
+    ScopedPointer<ResizableCornerComponent> resizer;
+    ComponentBoundsConstrainer resizeLimits;
+
+	//static LookAndFeelCustom* customLookAndFeel;
+
+	AudioPlayHead::CurrentPositionInfo lastDisplayedPosition;
+
+    ReverbAudioProcessor* getProcessor() const
+    {
+        return static_cast <ReverbAudioProcessor*> (getAudioProcessor());
+    }
+
+    void displayPositionInfo (const AudioPlayHead::CurrentPositionInfo& pos);
+
+	void UpdateInterfaceValues();
+
+	void SetComboBoxActivity(ComboBox * comboBox, bool active);
+	void SetSliderActivity(Slider * slider, bool active);
+
+
+    //[/UserVariables]
+
+    //==============================================================================
+    ScopedPointer<Slider> lateEarlySlider;
+    ScopedPointer<Slider> mixSlider;
+    ScopedPointer<Slider> gainSlider;
+    ScopedPointer<Slider> preDelaySlider;
+    ScopedPointer<Slider> bandWidthSlider;
+    ScopedPointer<Slider> dampSlider;
+    ScopedPointer<Slider> sizeSlider;
+    ScopedPointer<Slider> decaySlider;
+    ScopedPointer<Slider> densitySlider;
+
+
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ReverbAudioProcessorEditor)
+};
+
+//[EndFile] You can add extra defines here...
+//[/EndFile]
+
+#endif   // __JUCE_HEADER_3DB9693590AE4D1__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/reverb/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,396 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Reverb: algorithmic reverb effect based on MVerb
+  See textbook Chapter 11: Reverberation
+ 
+  Original code by Martin Eastwood: MVerb (see MVerb.h)
+  Adapted for JUCE by Brecht De Man
+ 
+  When using this code (or a modified version thereof) please cite:
+
+  R. Stables, S. Enderby, B. De Man, G. Fazekas, J. D. Reiss, "SAFE:
+  A System for the Extraction and Retrieval of Semantic Audio
+  Descriptors," 15th International Society for Music Information
+  Retrieval Conference (ISMIR 2014), 2014.
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+#if JUCE_INTEL
+ #define JUCE_SNAP_TO_ZERO(n)    if (! (n < -1.0e-8 || n > 1.0e-8)) n = 0;
+#else
+ #define JUCE_SNAP_TO_ZERO(n)
+#endif
+
+ReverbAudioProcessor::ReverbAudioProcessor()
+:
+    _numChannels            (1)
+    ,_numSamples			(1)  // dummy - will be set in prepareToPlay
+    ,_sampleRate			(1)  // dummy - will be set in prepareToPlay
+    ,_density               (1.0)
+    ,_decay                 (1.0)
+    ,_size                  (1.0)
+    ,_damp                  (1.0)
+    ,_bandwidth             (1.0)
+    ,_predelay              (0.0)
+    ,_gain                  (1.0)
+    ,_mix                   (0.5)
+    ,_lateEarly             (0.5)
+    ,tempInput              (1,1)// dummy - will be set in prepareToPlay
+    ,tempOutput             (1,1)// dummy - will be set in prepareToPlay
+    ,_lastUIWidth			(850)
+    ,_lastUIHeight			(650)
+    
+{
+    // Update all parameters
+    for (int index = 0; index < MVerb<float>::NUM_PARAMS; ++index)
+    {
+        updateParameters(index);
+    }
+}
+
+ReverbAudioProcessor::~ReverbAudioProcessor()
+{
+}
+
+//-----------------------------------------------------------------------------
+// P R E P A R E   T O   P L A Y
+void ReverbAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // If sample rate/block size changes or straight after construction
+    if (_numSamples != samplesPerBlock || _sampleRate != sampleRate)
+    {
+        _sampleRate  = sampleRate;
+        _numSamples  = samplesPerBlock;
+        _numChannels = getNumInputChannels();
+        
+        tempInput.setSize (_numChannels,_numSamples);
+        tempOutput.setSize(_numChannels,_numSamples);
+        tempInput.clear();
+        tempOutput.clear();
+        
+        _mverb.reset();
+        _mverb.setSampleRate (_sampleRate);  // set reverb sample rate
+    }
+}
+
+
+//-----------------------------------------------------------------------------
+// P R O C E S S   B L O C K
+void ReverbAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    int numSamples = buffer.getNumSamples();
+    int numChannels = buffer.getNumChannels();
+    
+    for(int channel = 0; channel < numChannels; channel++)
+    {
+        tempInput.copyFrom (channel, 0, buffer, channel, 0, numSamples);
+    }
+    
+    float** input = tempInput.getArrayOfWritePointers();
+    float** output = tempOutput.getArrayOfWritePointers();
+    
+    _mverb.process (input, output, numSamples); // processing by MVerb
+    
+    for(int channel = 0; channel < numChannels; channel++)
+    {
+        buffer.copyFrom (channel, 0, output [channel], numSamples);
+    }
+}
+
+
+//-----------------------------------------------------------------------------
+// U P D A T E   P A R A M E T E R S
+void ReverbAudioProcessor::updateParameters (int index)
+{
+    switch(index)
+    {
+        case MVerb<float>::DAMPINGFREQ:
+            _mverb.setParameter (index, _damp);
+            break;
+            
+        case MVerb<float>::DENSITY:
+            _mverb.setParameter (index, _density);
+            break;
+            
+        case MVerb<float>::BANDWIDTHFREQ:
+            _mverb.setParameter (index, _bandwidth);
+            break;
+            
+        case MVerb<float>::PREDELAY:
+            _mverb.setParameter (index, _predelay);
+            break;
+            
+        case MVerb<float>::DECAY:
+            _mverb.setParameter (index, _decay);
+            break;
+            
+        case MVerb<float>::SIZE:
+            _mverb.setParameter (index, _size);
+            break;
+            
+        case MVerb<float>::GAIN:
+            _mverb.setParameter (index, _gain);
+            break;
+            
+        case MVerb<float>::MIX:
+            _mverb.setParameter (index, _mix);
+            break;
+            
+        case MVerb<float>::EARLYMIX:
+            _mverb.setParameter (index, _lateEarly);
+            break;
+    }
+}
+
+
+//-----------------------------------------------------------------------------
+// R E S E T
+void ReverbAudioProcessor::Reset()
+{
+    _mverb.reset(); // not used
+}
+
+
+//-----------------------------------------------------------------------------
+//
+void ReverbAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this to free up any spare memory, etc.
+}
+
+
+bool ReverbAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* ReverbAudioProcessor::createEditor()
+{
+    return new ReverbAudioProcessorEditor (this);
+}
+
+
+//==============================================================================
+void ReverbAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // SAVE STATE INFO
+    XmlElement xml("JRAMReverb_XML");
+    
+    // Knobs
+    xml.setAttribute("_density"     ,_density);
+    xml.setAttribute("_decay"       ,_decay);
+    xml.setAttribute("_size"        ,_size);
+    xml.setAttribute("_damp"        ,_damp);
+    xml.setAttribute("_bandwidth"   ,_bandwidth);
+    xml.setAttribute("_predelay"    ,_predelay);
+    xml.setAttribute("_gain"        ,_gain);
+    xml.setAttribute("_mix"         ,_mix);
+    xml.setAttribute("_lateEarly"   ,_lateEarly);
+    
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void ReverbAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // LOAD STATE INFO
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    // make sure that it's actually our type of XML object..
+    if(xmlState->hasTagName("JRAMReverb_XML"))
+    {
+        // Knobs
+        _density        = (float) xmlState->getDoubleAttribute("_density",true);
+        _decay          = (float) xmlState->getDoubleAttribute("_decay",true);
+        _size           = (float) xmlState->getDoubleAttribute("_size",true);
+        _damp           = (float) xmlState->getDoubleAttribute("_damp",true);
+        _bandwidth      = (float) xmlState->getDoubleAttribute("_bandwidth",true);
+        _predelay       = (float) xmlState->getDoubleAttribute("_predelay",true);
+        _gain           = (float) xmlState->getDoubleAttribute("_gain",true);
+        _mix            = (float) xmlState->getDoubleAttribute("_mix",true);
+        _lateEarly      = (float) xmlState->getDoubleAttribute("_lateEarly",true);
+    }
+}
+
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new ReverbAudioProcessor();
+}
+
+const String ReverbAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+bool ReverbAudioProcessor::silenceInProducesSilenceOut() const
+{
+    return true;
+}
+
+int ReverbAudioProcessor::getNumParameters()
+{
+    return MVerb<float>::NUM_PARAMS;
+}
+
+float ReverbAudioProcessor::getParameter (int index) // externally accessible
+{
+    switch (index)
+    {
+        case MVerb<float>::DENSITY:         return GetDensity();
+        case MVerb<float>::DECAY:           return GetDecay();
+        case MVerb<float>::SIZE:            return GetSize();
+        case MVerb<float>::DAMPINGFREQ:     return GetDamp();
+        case MVerb<float>::BANDWIDTHFREQ:   return GetBandwidth();
+        case MVerb<float>::PREDELAY:        return GetPredelay();
+        case MVerb<float>::GAIN:            return GetGain();
+        case MVerb<float>::MIX:             return GetMix();
+        case MVerb<float>::EARLYMIX:        return GetLateEarly();
+		default:                            return 0.0f;
+    }
+}
+
+void ReverbAudioProcessor::setParameter (int index, float newValue) // externally accessible
+{
+    switch (index)
+    {
+        case MVerb<float>::DENSITY:
+            SetDensity(newValue);
+            break;
+        case MVerb<float>::DECAY:
+            SetDecay(newValue);
+            break;
+        case MVerb<float>::SIZE:
+            SetSize(newValue);
+            break;
+        case MVerb<float>::DAMPINGFREQ:
+            SetDamp(newValue);
+            break;
+        case MVerb<float>::BANDWIDTHFREQ:
+            SetBandwidth(newValue);
+            break;
+        case MVerb<float>::PREDELAY:
+            SetPredelay(newValue);
+            break;
+        case MVerb<float>::GAIN:
+            SetGain(newValue);
+            break;
+        case MVerb<float>::MIX:
+            SetMix(newValue);
+            break;
+        case MVerb<float>::EARLYMIX:
+            SetLateEarly(newValue);
+            break;
+        default:
+            break;
+    }
+}
+
+const String ReverbAudioProcessor::getParameterName (int index) // externally accessible
+{
+    switch (index)
+    {
+        case MVerb<float>::DENSITY:         return "Density";
+        case MVerb<float>::DECAY:           return "Decay";
+        case MVerb<float>::SIZE:            return "Size";
+        case MVerb<float>::DAMPINGFREQ:     return "Damp";
+        case MVerb<float>::BANDWIDTHFREQ:   return "Bandwidth";
+        case MVerb<float>::PREDELAY:        return "Predelay";
+        case MVerb<float>::GAIN:            return "Gain";
+        case MVerb<float>::MIX:             return "Mix";
+        case MVerb<float>::EARLYMIX:        return "Late vs. early reflections";
+		default:                            break;
+    }
+    return String::empty;
+}
+
+const String ReverbAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String ReverbAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String ReverbAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool ReverbAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool ReverbAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool ReverbAudioProcessor::acceptsMidi() const
+{
+    #if JucePlugin_WantsMidiInput
+        return true;
+    #else
+        return false;
+    #endif
+}
+
+bool ReverbAudioProcessor::producesMidi() const
+{
+    #if JucePlugin_ProducesMidiOutput
+        return true;
+    #else
+        return false;
+    #endif
+}
+
+int ReverbAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int ReverbAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void ReverbAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String ReverbAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void ReverbAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/reverb/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,297 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Reverb: algorithmic reverb effect based on MVerb
+  See textbook Chapter 11: Reverberation
+ 
+  Original code by Martin Eastwood: MVerb (see MVerb.h)
+  Adapted for JUCE by Brecht De Man
+ 
+  When using this code (or a modified version thereof) please cite:
+
+  R. Stables, S. Enderby, B. De Man, G. Fazekas, J. D. Reiss, "SAFE:
+  A System for the Extraction and Retrieval of Semantic Audio
+  Descriptors," 15th International Society for Music Information
+  Retrieval Conference (ISMIR 2014), 2014.
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef __PLUGINPROCESSOR_H_88534BAA__
+#define __PLUGINPROCESSOR_H_88534BAA__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "MVerb.h"
+#include <math.h>
+
+class ReverbAudioProcessor  : public AudioProcessor
+{
+public:
+    ReverbAudioProcessor();
+    ~ReverbAudioProcessor();
+    
+    //==============================================================================
+	// V S T   M E T H O D S
+
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+	void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    void updateParameters(int index);
+    AudioProcessorEditor* createEditor();
+	bool silenceInProducesSilenceOut() const;
+	virtual double getTailLengthSeconds() const {return 0;};
+    bool hasEditor() const;
+    const String getName() const;
+    int getNumParameters();
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+
+    //==============================================================================
+	// O U R   M E T H O D S
+    
+    void Reset();
+
+private:
+
+	// Accessors and mutators
+    inline float    GetDensity();
+    inline void     SetDensity(float density);
+    inline float    GetDecay();
+    inline void     SetDecay(float decay);
+    inline float    GetSize();
+    inline void     SetSize(float size);
+    inline float    GetDamp();
+    inline void     SetDamp(float damp);
+    inline float    GetBandwidth();
+    inline void     SetBandwidth(float bandwith);
+    inline float    GetPredelay();
+    inline void     SetPredelay(float predelay);
+    inline float    GetGain();
+    inline void     SetGain(float gain);
+    inline float    GetMix();
+    inline void     SetMix(float mix);
+    inline float    GetLateEarly();
+    inline void     SetLateEarly(float lateEarly);
+
+	int	_numChannels;
+	int	_numSamples;
+    int _sampleRate;
+    
+    // parameters
+    float _density;
+    float _decay;
+    float _size;
+    float _damp;
+    float _bandwidth;
+    float _predelay;
+    float _gain;
+    float _mix;
+    float _lateEarly;
+    
+    MVerb<float> _mverb;
+    
+
+	bool _isFirstFrame;
+
+	// Buffers
+	AudioSampleBuffer tempInput, tempOutput;
+
+	int _lastUIWidth, _lastUIHeight;
+    
+	friend class ReverbAudioProcessorEditor;
+    
+	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ReverbAudioProcessor);
+};
+
+//============================================================================= 
+// I N L I N E   F U N C T I O N S   C O D E   S E C T I O N 
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetDensity()
+{
+	return _density;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetDensity(float density)
+{
+	_density = density;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetDecay()
+{
+	return _decay;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetDecay(float decay)
+{
+	_decay = decay;
+}
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetSize()
+{
+	return _size;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetSize(float size)
+{
+	_size = size;
+}
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetDamp()
+{
+	return _damp;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetDamp(float damp)
+{
+	_damp = damp;
+}
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetBandwidth()
+{
+	return _bandwidth;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetBandwidth(float bandwidth)
+{
+	_bandwidth = bandwidth;
+}
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetPredelay()
+{
+	return _predelay;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetPredelay(float predelay)
+{
+	_predelay = predelay;
+}
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetGain()
+{
+	return _gain;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetGain(float gain)
+{
+	_gain = gain;
+}
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetMix()
+{
+	return _mix;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetMix(float mix)
+{
+	_mix = mix;
+}
+
+//-----------------------------------------------------------------------------
+//
+inline float
+ReverbAudioProcessor::GetLateEarly()
+{
+	return _lateEarly;
+}
+
+
+//-----------------------------------------------------------------------------
+//
+inline void
+ReverbAudioProcessor::SetLateEarly(float lateEarly)
+{
+	_lateEarly = lateEarly;
+}
+#endif  // __PLUGINPROCESSOR_H_88534BAA__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/reverb/Source/gpl-3.0.txt	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/reverb/reverb.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="MBaMzn" name="algoreverb" projectType="audioplug" version="0.1"
+              bundleIdentifier="uk.ac.qmul.eecs.reverb" buildVST="1" buildRTAS="0"
+              buildAU="1" pluginName="Algorithmic Reverb" pluginDesc="Algorithmic Reverb"
+              pluginManufacturer="Brecht De Man" pluginManufacturerCode="BDM"
+              pluginCode="rev" pluginChannelConfigs="{2,2},{1,1}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="reverbAU"
+              pluginAUViewClass="MasterCompressorAU_V1" pluginRTASCategory=""
+              jucerVersion="3.1.0" aaxIdentifier="uk.ac.qmul.eecs.reverb" pluginAAXCategory=""
+              includeBinaryInAppConfig="1" buildVST3="0" buildAAX="0" companyName="Brecht De Man">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" vstFolder="../../vstsdk2.4" postbuildCommand="&#10;# This script takes the build product and copies it to the AU, VST, and RTAS folders, depending on &#10;# which plugin types you've built&#10;&#10;original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME&#10;&#10;# this looks inside the binary to detect which platforms are needed.. &#10;copyAU=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'AudioUnit' | wc -l&#96;&#10;copyVST=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'VSTPlugin' | wc -l&#96;&#10;copyRTAS=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'CProcess' | wc -l&#96;&#10;copyAAX=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'ACFStartup' | wc -l&#96;&#10;&#10;if [ $copyAU -gt 0 ]; then&#10;  echo &quot;Copying to AudioUnit folder...&quot;&#10;  AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component&#10;  if [ -d &quot;$AU&quot; ]; then &#10;    rm -r &quot;$AU&quot;&#10;  fi&#10;&#10;  cp -r &quot;$original&quot; &quot;$AU&quot;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$AU/Contents/PkgInfo&quot;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$AU/Contents/$INFOPLIST_FILE&quot;&#10;&#10;  # Fix info.plist for AUs built with Xcode 3&#10;  if [ -f &quot;$DEVELOPER_DIR/Library/Developer/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp&quot; ]; then&#10;    echo&#10;  else&#10;    echo &quot;Removing AudioComponents entry from Info.plist because this is not a new-format AU&quot;&#10;    /usr/libexec/PlistBuddy -c &quot;Delete AudioComponents&quot; &quot;$AU/Contents/Info.plist&quot;&#10;  fi&#10;fi&#10;&#10;if [ $copyVST -gt 0 ]; then&#10;  echo &quot;Copying to VST folder...&quot;&#10;  VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst&#10;  if [ -d &quot;$VST&quot; ]; then &#10;    rm -r &quot;$VST&quot;&#10;  fi&#10;&#10;  cp -r &quot;$original&quot; &quot;$VST&quot;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST/Contents/PkgInfo&quot;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST/Contents/$INFOPLIST_FILE&quot;&#10;fi&#10;&#10;if [ $copyRTAS -gt 0 ]; then&#10;  echo &quot;Copying to RTAS folder...&quot;&#10;  RTAS=/Library/Application\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm&#10;  if [ -d &quot;$RTAS&quot; ]; then&#10;    rm -r &quot;$RTAS&quot;&#10;  fi&#10;&#10;  cp -r &quot;$original&quot; &quot;$RTAS&quot;&#10;fi&#10;&#10;if [ $copyAAX -gt 0 ]; then&#10;  echo &quot;Copying to AAX folder...&quot;&#10;&#10;  if [ -d &quot;/Applications/ProTools_3PDev/Plug-Ins&quot; ]; then&#10;    AAX1=&quot;/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#10;&#10;    if [ -d &quot;$AAX1&quot; ]; then&#10;      rm -r &quot;$AAX1&quot;&#10;    fi&#10;&#10;    cp -r &quot;$original&quot; &quot;$AAX1&quot;&#10;  fi&#10;&#10;  if [ -d &quot;/Library/Application Support/Avid/Audio/Plug-Ins&quot; ]; then&#10;    AAX2=&quot;/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#10;&#10;    if [ -d &quot;$AAX2&quot; ]; then&#10;      rm -r &quot;$AAX2&quot;&#10;    fi&#10;&#10;    cp -r &quot;$original&quot; &quot;$AAX2&quot;&#10;  fi&#10;fi&#10;">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       isDebug="1" optimisation="1" targetName="algoreverb"/>
+        <CONFIGURATION name="Release" osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       isDebug="0" optimisation="2" targetName="algoreverb"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_gui_extra" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="R56iUz" name="algoreverb">
+    <GROUP id="{839367BB-53A9-7137-E15E-D2DD800BA26D}" name="Source">
+      <FILE id="RUKlAk" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="uEbtTW" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="vo9R27" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="IiR9iQ" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+      <FILE id="rNIElM" name="MVerb.h" compile="0" resource="0" file="Source/MVerb.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/ringmod/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/ringmod/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,157 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ring Modulator: modulation using a carrier oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+//==============================================================================
+RingModulatorAudioProcessorEditor::RingModulatorAudioProcessorEditor (RingModulatorAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      sweepWidthLabel_("", "LFO Sweep Width (Hz):"),
+      lfoFrequencyLabel_("", "LFO Frequency:"),
+      carrierFrequencyLabel_("", "Carrier Frequency:"),
+      waveformLabel_("", "LFO Waveform:")
+{
+    // Set up the sliders
+    addAndMakeVisible (&carrierFrequencySlider_);
+    carrierFrequencySlider_.setSliderStyle (Slider::Rotary);
+    carrierFrequencySlider_.addListener (this);
+    carrierFrequencySlider_.setRange (1.0, 1000.0, 1.0);
+    
+    addAndMakeVisible (&sweepWidthSlider_);
+    sweepWidthSlider_.setSliderStyle (Slider::Rotary);
+    sweepWidthSlider_.addListener (this);
+    sweepWidthSlider_.setRange (0.0, 100.0, 0.2);
+
+    addAndMakeVisible (&lfoFrequencySlider_);
+    lfoFrequencySlider_.setSliderStyle (Slider::Rotary);
+    lfoFrequencySlider_.addListener (this);
+    lfoFrequencySlider_.setRange (0.1, 10.0, 0.05);
+    
+    addAndMakeVisible(&waveformComboBox_);
+    waveformComboBox_.setEditableText(false);
+    waveformComboBox_.setJustificationType(Justification::left);
+    waveformComboBox_.addItem("Sine", RingModulatorAudioProcessor::kWaveformSine);
+    waveformComboBox_.addItem("Triangle", RingModulatorAudioProcessor::kWaveformTriangle);
+    waveformComboBox_.addItem("Square", RingModulatorAudioProcessor::kWaveformSquare);
+    waveformComboBox_.addItem("Sawtooth (rising)", RingModulatorAudioProcessor::kWaveformSawtooth);
+    waveformComboBox_.addItem("Sawtooth (falling)", RingModulatorAudioProcessor::kWaveformInverseSawtooth);
+    waveformComboBox_.addListener(this);
+
+    carrierFrequencyLabel_.attachToComponent(&carrierFrequencySlider_, false);
+    carrierFrequencyLabel_.setFont(Font (11.0f));
+    
+    sweepWidthLabel_.attachToComponent(&sweepWidthSlider_, false);
+    sweepWidthLabel_.setFont(Font (11.0f));
+    
+    lfoFrequencyLabel_.attachToComponent(&lfoFrequencySlider_, false);
+    lfoFrequencyLabel_.setFont(Font (11.0f));
+    
+    waveformLabel_.attachToComponent(&waveformComboBox_, false);
+    waveformLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 160, 600, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+RingModulatorAudioProcessorEditor::~RingModulatorAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void RingModulatorAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void RingModulatorAudioProcessorEditor::resized()
+{
+    carrierFrequencySlider_.setBounds(20, 20, 150, 40);
+    lfoFrequencySlider_.setBounds(200, 20, 150, 40);
+    sweepWidthSlider_.setBounds (20, 80, 150, 40);
+    waveformComboBox_.setBounds (200, 80, 150, 30);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void RingModulatorAudioProcessorEditor::timerCallback()
+{
+    RingModulatorAudioProcessor* ourProcessor = getProcessor();
+    
+    carrierFrequencySlider_.setValue(ourProcessor->carrierFrequency_, dontSendNotification);
+    sweepWidthSlider_.setValue(ourProcessor->sweepWidth_, dontSendNotification);
+    lfoFrequencySlider_.setValue(ourProcessor->lfoFrequency_, dontSendNotification);
+    waveformComboBox_.setSelectedId(ourProcessor->waveform_, false);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void RingModulatorAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &carrierFrequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (RingModulatorAudioProcessor::kCarrierFrequencyParam,
+                                                   (float)carrierFrequencySlider_.getValue());
+    }
+    else if (slider == &sweepWidthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (RingModulatorAudioProcessor::kSweepWidthParam,
+                                                   (float)sweepWidthSlider_.getValue());
+    }
+    else if (slider == &lfoFrequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (RingModulatorAudioProcessor::kLFOFrequencyParam,
+                                                   (float)lfoFrequencySlider_.getValue());
+    }
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void RingModulatorAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &waveformComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (RingModulatorAudioProcessor::kWaveformParam,
+                                                   (float)waveformComboBox_.getSelectedId());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/ringmod/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,73 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ring Modulator: modulation using a carrier oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class RingModulatorAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Timer
+{
+public:
+    RingModulatorAudioProcessorEditor (RingModulatorAudioProcessor* ownerFilter);
+    ~RingModulatorAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    
+private:
+    Label sweepWidthLabel_, lfoFrequencyLabel_;
+    Label carrierFrequencyLabel_, waveformLabel_;
+    Slider sweepWidthSlider_, lfoFrequencySlider_;
+    Slider carrierFrequencySlider_;
+    ComboBox waveformComboBox_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    RingModulatorAudioProcessor* getProcessor() const
+    {
+        return static_cast <RingModulatorAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/ringmod/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,382 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ring Modulator: modulation using a carrier oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <math.h>
+
+//==============================================================================
+RingModulatorAudioProcessor::RingModulatorAudioProcessor()
+{
+    // Set default values:
+    carrierFrequency_ = 100.0;
+    sweepWidth_ = 0.0;
+    lfoFrequency_ = 1.0;
+    waveform_ = kWaveformSine;
+    
+    lfoPhase_ = carrierPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/44100.0;
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 160;
+}
+
+RingModulatorAudioProcessor::~RingModulatorAudioProcessor()
+{
+}
+
+//==============================================================================
+const String RingModulatorAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int RingModulatorAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float RingModulatorAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kCarrierFrequencyParam: return carrierFrequency_;
+        case kSweepWidthParam:       return sweepWidth_;
+        case kLFOFrequencyParam:     return lfoFrequency_;
+        case kWaveformParam:         return (float)waveform_;
+        default:                     return 0.0f;
+    }
+}
+
+void RingModulatorAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+
+    switch (index)
+    {
+        case kCarrierFrequencyParam:
+            carrierFrequency_ = newValue;
+            break;
+        case kSweepWidthParam:
+            sweepWidth_ = newValue;
+            break;
+        case kLFOFrequencyParam:
+            lfoFrequency_ = newValue;
+            break;
+        case kWaveformParam:
+            waveform_ = (int)newValue;
+            break;
+        default:
+            break;
+    }
+}
+
+const String RingModulatorAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kCarrierFrequencyParam: return "carrier frequency";
+        case kSweepWidthParam:       return "LFO sweep width";
+        case kLFOFrequencyParam:     return "LFO frequency";
+        case kWaveformParam:         return "LFO waveform";
+        default:                     break;
+    }
+    
+    return String::empty;
+}
+
+const String RingModulatorAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String RingModulatorAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String RingModulatorAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool RingModulatorAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool RingModulatorAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool RingModulatorAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double RingModulatorAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool RingModulatorAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool RingModulatorAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int RingModulatorAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int RingModulatorAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void RingModulatorAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String RingModulatorAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void RingModulatorAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void RingModulatorAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Calculations that happen before play begins. Pretty simple in this effect, just
+    // reset the previous state.
+    lfoPhase_ = 0.0;
+    carrierPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/sampleRate;
+}
+
+void RingModulatorAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+}
+
+void RingModulatorAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    lfoPhase_ = 0.0;
+    carrierPhase_ = 0.0;
+}
+
+
+void RingModulatorAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel;
+    float cph, lph;
+    
+    // Go through each channel of audio that's passed in. In this example we apply identical
+    // effects to each channel, regardless of how many input channels there are. For some effects, like
+    // a stereo chorus or panner, you might do something different for each channel.
+    
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // Make a temporary copy of any state variables declared in PluginProcessor.h which need to be
+        // maintained between calls to processBlock(). Each channel needs to be processed identically
+        // which means that the activity of processing one channel can't affect the state variable for
+        // the next channel.
+        
+        cph = carrierPhase_;
+        lph = lfoPhase_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+
+            // Ring modulation is easy! Just multiply the waveform by a periodic carrier
+            channelData[i] = in * sinf(2.0 * M_PI * cph);
+
+            // Update the carrier and LFO phases, keeping them in the range 0-1
+            lph += lfoFrequency_*inverseSampleRate_;
+            if(lph >= 1.0)
+                lph -= 1.0;
+            cph += (carrierFrequency_ + sweepWidth_*lfo(lfoPhase_, waveform_))*inverseSampleRate_;
+            if(cph >= 1.0)
+                cph -= 1.0;
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    
+    carrierPhase_ = cph;
+    lfoPhase_ = lph;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool RingModulatorAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* RingModulatorAudioProcessor::createEditor()
+{
+    return new RingModulatorAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void RingModulatorAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("carrierFrequency", carrierFrequency_);
+    xml.setAttribute("sweepWidth", sweepWidth_);
+    xml.setAttribute("lfoFrequency", lfoFrequency_);
+    xml.setAttribute("waveform", waveform_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void RingModulatorAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            carrierFrequency_  = (float)xmlState->getDoubleAttribute("carrierFrequency", carrierFrequency_);
+            sweepWidth_ = (float)xmlState->getDoubleAttribute("sweepWidth", sweepWidth_);
+            lfoFrequency_  = (float)xmlState->getDoubleAttribute("lfoFrequency", lfoFrequency_);
+            waveform_   = xmlState->getIntAttribute("waveform", waveform_);
+        }
+    }
+}
+
+//==============================================================================
+// Function for calculating LFO waveforms. Phase runs from 0-1, output is scaled
+// from -1 to 1 (note: not 0 to 1 as in delay-based effects)
+float RingModulatorAudioProcessor::lfo(float phase, int waveform)
+{
+    switch(waveform)
+    {
+        case kWaveformTriangle:
+            if(phase < 0.25f)
+                return 4.0f*phase;
+            else if(phase < 0.75f)
+                return 1.0f - 4.0f*(phase - 0.25f);
+            else
+                return -1.0f + 4.0f*(phase - 0.75f);
+        case kWaveformSquare:
+            if(phase < 0.5f)
+                return 1.0f;
+            else
+                return -1.0f;
+        case kWaveformSawtooth:
+            if(phase < 0.5f)
+                return 2.0f*phase;
+            else
+                return 2.0f*phase - 2.0f;
+        case kWaveformInverseSawtooth:
+            if(phase < 0.5f)
+                return -2.0f*phase;
+            else
+                return 2.0f - 2.0f*phase;
+        case kWaveformSine:
+        default:
+            return sinf(2.0 * M_PI * phase);
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new RingModulatorAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/ringmod/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,134 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Ring Modulator: modulation using a carrier oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class RingModulatorAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    RingModulatorAudioProcessor();
+    ~RingModulatorAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;    
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kCarrierFrequencyParam,
+        kSweepWidthParam,
+        kLFOFrequencyParam,
+        kWaveformParam,
+        kNumParameters
+    };
+    
+    enum Waveforms
+    {
+        kWaveformSine = 1,
+        kWaveformTriangle,
+        kWaveformSquare,
+        kWaveformSawtooth,
+        kWaveformInverseSawtooth,
+        kNumWaveforms
+    };
+    
+    // Adjustable parameters:
+    float carrierFrequency_; // Frequency of main modulator (Hz)
+    float sweepWidth_;    // Amount of change from min to max delay
+    float lfoFrequency_;  // LFO frequency (Hz)
+    int   waveform_;      // What shape should be used for the LFO
+    
+private:
+    float lfo(float phase, int waveform);
+    
+    float lfoPhase_;     // Phase of the low-frequency oscillator
+    float carrierPhase_; // Phase of the main (carrier) oscillator
+    double inverseSampleRate_; // It's more efficient to multiply than divide, so
+                               // cache the inverse of the sample rate
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RingModulatorAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/ringmod/ringmod.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="oWPLeR" name="ringmod" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.ringmodeffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Ring Modulator" pluginDesc="Ring Modulator effect"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="ring" pluginChannelConfigs="{1, 1}, {2, 2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="ringmodAU"
+              pluginAUViewClass="ringmodAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.ringmod" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="UMBlvU" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="ringmod"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="ringmod"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="NkQfRK" name="ringmod">
+    <GROUP id="{4A4D713A-8716-DB71-ED0A-080389925811}" name="Source">
+      <FILE id="jlkrmn" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="OZu8fz" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="h3QZHS" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="als4N2" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/robotisation/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/robotisation/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,154 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Robotisation: robot effect using phase vocoder
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+RobotisationAudioProcessorEditor::RobotisationAudioProcessorEditor (RobotisationAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      fftSizeLabel_("", "FFT Size:"),
+      hopSizeLabel_("", "Hop Size:"),
+      windowTypeLabel_("", "Window Type:")
+{
+    // This is where our plugin's editor size is set.
+    // setSize(170, 80);
+    
+    // Set up the selection boxes
+    
+    addAndMakeVisible(&fftSizeComboBox_);
+    fftSizeComboBox_.setEditableText(false);
+    fftSizeComboBox_.setJustificationType(Justification::left);
+    fftSizeComboBox_.addItem("64", 64);
+    fftSizeComboBox_.addItem("128", 128);
+    fftSizeComboBox_.addItem("256", 256);
+    fftSizeComboBox_.addItem("512", 512);
+    fftSizeComboBox_.addItem("1024", 1024);
+    fftSizeComboBox_.addItem("2048", 2048);
+    fftSizeComboBox_.addListener(this);
+    
+    addAndMakeVisible (&hopSizeSlider_);
+    hopSizeSlider_.setSliderStyle (Slider::Rotary);
+    hopSizeSlider_.addListener (this);
+    hopSizeSlider_.setRange (32, 2048, 1.0);
+    
+    addAndMakeVisible(&windowTypeComboBox_);
+    windowTypeComboBox_.setEditableText(false);
+    windowTypeComboBox_.setJustificationType(Justification::left);
+    windowTypeComboBox_.addItem("Rectangular", RobotisationAudioProcessor::kWindowRectangular);
+    windowTypeComboBox_.addItem("Bartlett", RobotisationAudioProcessor::kWindowBartlett);
+    windowTypeComboBox_.addItem("Hann", RobotisationAudioProcessor::kWindowHann);
+    windowTypeComboBox_.addItem("Hamming", RobotisationAudioProcessor::kWindowHamming);
+    windowTypeComboBox_.addListener(this);
+    
+    fftSizeLabel_.attachToComponent(&fftSizeComboBox_, false);
+    fftSizeLabel_.setFont(Font (11.0f));
+    
+    hopSizeLabel_.attachToComponent(&hopSizeSlider_, false);
+    hopSizeLabel_.setFont(Font (11.0f));
+    
+    windowTypeLabel_.attachToComponent(&windowTypeComboBox_, false);
+    windowTypeLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 120, 400, 160);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+RobotisationAudioProcessorEditor::~RobotisationAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void RobotisationAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void RobotisationAudioProcessorEditor::resized()
+{
+    fftSizeComboBox_.setBounds(20, 20, 150, 30);
+    hopSizeSlider_.setBounds(200, 20, 150, 30);
+    windowTypeComboBox_.setBounds(20, 70, 150, 30);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void RobotisationAudioProcessorEditor::timerCallback()
+{
+    RobotisationAudioProcessor* ourProcessor = getProcessor();
+    
+    fftSizeComboBox_.setSelectedId(ourProcessor->fftSelectedSize_, dontSendNotification);
+    hopSizeSlider_.setValue(ourProcessor->hopSelectedSize_, dontSendNotification);
+    windowTypeComboBox_.setSelectedId(ourProcessor->windowType_, dontSendNotification);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void RobotisationAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &hopSizeSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (RobotisationAudioProcessor::kHopSizeParam,
+                                                   (float)hopSizeSlider_.getValue());
+    }
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void RobotisationAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &fftSizeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (RobotisationAudioProcessor::kFFTSizeParam,
+                                                   (float)fftSizeComboBox_.getSelectedId());
+    }
+    else if(comboBox == &windowTypeComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (RobotisationAudioProcessor::kWindowTypeParam,
+                                                   (float)windowTypeComboBox_.getSelectedId());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/robotisation/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,74 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Robotisation: robot effect using phase vocoder
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class RobotisationAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Timer
+{
+public:
+    RobotisationAudioProcessorEditor (RobotisationAudioProcessor* ownerFilter);
+    ~RobotisationAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    
+private:
+    Label fftSizeLabel_, hopSizeLabel_, windowTypeLabel_;
+    ComboBox fftSizeComboBox_, windowTypeComboBox_;
+    Slider hopSizeSlider_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    RobotisationAudioProcessor* getProcessor() const
+    {
+        return static_cast <RobotisationAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/robotisation/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,664 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Robotisation: robot effect using phase vocoder;
+  see also whisperisation code in processBlock() below.
+ 
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+
+//==============================================================================
+RobotisationAudioProcessor::RobotisationAudioProcessor() : inputBuffer_(2, 1), outputBuffer_(2, 1)
+{
+    // Set default values:
+    fftSelectedSize_ = 512;
+    hopSelectedSize_ = hopActualSize_ = 256;
+    windowType_ = kWindowRectangular;
+
+    fftInitialised_ = false;
+    fftActualTransformSize_ = 0;
+    inputBufferLength_ = 1;
+    outputBufferLength_ = 1;
+    inputBufferWritePosition_ = outputBufferWritePosition_ = outputBufferReadPosition_ = 0;
+    samplesSinceLastFFT_ = 0;
+    windowBuffer_ = 0;
+    windowBufferLength_ = 0;
+    preparedToPlay_ = false;
+    fftScaleFactor_ = 0.0;
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 120;
+}
+
+RobotisationAudioProcessor::~RobotisationAudioProcessor()
+{
+    // Release FFT resources if allocated. This should be handled by
+    // releaseResources() but in the event it doesn't happen, this avoids
+    // a leak. Harmless to call it twice.
+    deinitFFT();
+    deinitWindow();
+}
+
+//==============================================================================
+const String RobotisationAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int RobotisationAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float RobotisationAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kFFTSizeParam:    return (float)fftSelectedSize_;
+        case kHopSizeParam:    return (float)hopSelectedSize_;
+        case kWindowTypeParam: return (float)windowType_;
+        default:               return 0.0f;
+    }
+}
+
+void RobotisationAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kFFTSizeParam:
+            if((int)newValue != fftSelectedSize_)
+            {
+                fftSelectedSize_ = (int)newValue;
+                if(preparedToPlay_)
+                {
+                    // Update settings if currently playing, else wait until prepareToPlay() called
+                    initFFT(fftSelectedSize_);
+                    initWindow(fftSelectedSize_, windowType_);
+                }
+            }
+            break;
+        case kHopSizeParam:
+            hopSelectedSize_ = (int)newValue;
+            if(preparedToPlay_)
+                updateHopSize();
+            break;
+        case kWindowTypeParam:
+            // Recalculate window if needed
+            if((int)newValue != windowType_)
+            {
+                windowType_ = (int)newValue;
+                if(preparedToPlay_)
+                    initWindow(fftActualTransformSize_, (int)newValue);
+            }
+            break;
+        default:
+            break;
+    }
+}
+
+const String RobotisationAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kFFTSizeParam:    return "FFT size";
+        case kHopSizeParam:    return "hop size";
+        case kWindowTypeParam: return "window type";
+        default:               break;
+    }
+    
+    return String::empty;
+}
+
+const String RobotisationAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String RobotisationAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String RobotisationAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool RobotisationAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool RobotisationAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool RobotisationAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double RobotisationAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool RobotisationAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool RobotisationAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int RobotisationAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int RobotisationAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void RobotisationAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String RobotisationAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void RobotisationAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void RobotisationAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback
+    // initialisation that you need..
+    
+    initFFT(fftSelectedSize_);
+    initWindow(fftSelectedSize_, windowType_);
+    preparedToPlay_ = true;
+}
+
+void RobotisationAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    deinitFFT();
+    deinitWindow();
+    preparedToPlay_ = false;
+}
+
+void RobotisationAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel, inwritepos, sampsincefft;
+    int outreadpos, outwritepos;
+    
+    // Grab the lock that prevents the FFT settings from changing
+    fftSpinLock_.enter();
+    
+    // Check that we're initialised and ready to go. If not, set output to 0
+    if(!fftInitialised_)
+    {
+        for (channel = 0; channel < numOutputChannels; ++channel)
+        {
+            buffer.clear (channel, 0, buffer.getNumSamples());
+        }
+        
+        fftSpinLock_.exit();
+        return;
+    }
+
+    // Go through each channel of audio that's passed in. Collect the samples in the input
+    // buffer. When we've reached the next hop interval, calculate the FFT.
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // inputBufferData is the circular buffer for collecting input samples for the FFT
+        float* inputBufferData = inputBuffer_.getSampleData(jmin (channel, inputBuffer_.getNumChannels() - 1));
+        float* outputBufferData = outputBuffer_.getSampleData(jmin (channel, inputBuffer_.getNumChannels() - 1));
+        
+        // State variables need to be temporarily cached for each channel. We don't want the
+        // operations on one channel to affect the identical behaviour of the next channel
+        inwritepos = inputBufferWritePosition_;
+        outwritepos = outputBufferWritePosition_;
+        outreadpos = outputBufferReadPosition_;
+        sampsincefft = samplesSinceLastFFT_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+            
+            // Store the next buffered sample in the output. Do this first before anything
+            // changes the output buffer-- we will have at least one FFT size worth of data
+            // stored and ready to go. Set the result to 0 when finished in preparation for the
+            // next overlap/add procedure.
+            channelData[i] = outputBufferData[outreadpos];
+            outputBufferData[outreadpos] = 0.0;
+            if(++outreadpos >= outputBufferLength_)
+                outreadpos = 0;
+
+            // Store the current sample in the input buffer, incrementing the write pointer. Also
+            // increment how many samples we've stored since the last transform. If it reaches the
+            // hop size, perform an FFT and any frequency-domain processing.
+            inputBufferData[inwritepos] = in;
+            if (++inwritepos >= inputBufferLength_)
+                inwritepos = 0;
+            if (++sampsincefft >= hopActualSize_)
+            {
+                sampsincefft = 0;
+                
+                // Find the index of the starting sample in the buffer. When the buffer length
+                // is equal to the transform size, this will be the current write position but
+                // this code is more general for larger buffers.
+                int inputBufferStartPosition = (inwritepos + inputBufferLength_
+                                                - fftActualTransformSize_) % inputBufferLength_;
+                
+                // Window the buffer and copy it into the FFT input
+                int inputBufferIndex = inputBufferStartPosition;
+                for(int fftBufferIndex = 0; fftBufferIndex < fftActualTransformSize_; fftBufferIndex++)
+                {
+                    // Set real part to windowed signal; imaginary part to 0.
+                    fftTimeDomain_[fftBufferIndex][1] = 0.0;
+                    if(fftBufferIndex >= windowBufferLength_) // Safety check, in case window isn't ready
+                        fftTimeDomain_[fftBufferIndex][0] = 0.0;
+                    else
+                        fftTimeDomain_[fftBufferIndex][0] = windowBuffer_[fftBufferIndex]
+                                                                * inputBufferData[inputBufferIndex];
+                    inputBufferIndex++;
+                    if(inputBufferIndex >= inputBufferLength_)
+                        inputBufferIndex = 0;
+                }
+
+                // Perform the FFT on the windowed data, going into the frequency domain.
+                // Result will be in fftFrequencyDomain_
+                fftw_execute(fftForwardPlan_);
+                
+                // ********** PHASE VOCODER PROCESSING GOES HERE **************
+                // This is the place where frequency-domain calculations are made
+                // on the transformed signal. Put the result back into fftFrequencyDomain_
+                // before transforming back.
+                // ************************************************************
+                
+                // Whisperiser
+                /*for(int bin = 0; bin <= fftActualTransformSize_ / 2; bin++)
+                {
+                    float amplitude = sqrt(fftFrequencyDomain_[bin][0]*fftFrequencyDomain_[bin][0] +
+                                           fftFrequencyDomain_[bin][1]*fftFrequencyDomain_[bin][1]);
+                    
+                    // This is what we would use to exactly reconstruct the signal:
+                    // float phase = atan2(fftFrequencyDomain_[bin][1], fftFrequencyDomain_[bin][0]);
+                    
+                    // But instead, this is what we use to scramble the phase:
+                    float phase = 2.0 * M_PI * (float)rand() / (float)RAND_MAX;
+
+                    // Set the phase of each bin to 0. phase = 0 means the signal is entirely
+                    // positive-real, but the overall amplitude is the same as before.
+                    fftFrequencyDomain_[bin][0] = amplitude * cos(phase);
+                    fftFrequencyDomain_[bin][1] = amplitude * sin(phase);
+                    
+                    // FFTs of real signals are conjugate-symmetric. We need to maintain that symmetry
+                    // to produce a real output, even as we randomize the phase.
+                    if(bin > 0 && bin < fftActualTransformSize_ / 2) {
+                        fftFrequencyDomain_[fftActualTransformSize_ - bin][0] = amplitude * cos(phase);
+                        fftFrequencyDomain_[fftActualTransformSize_ - bin][1] = - amplitude * sin(phase);
+                    }
+                }*/
+                
+                for(int bin = 0; bin < fftActualTransformSize_; bin++)
+                {
+                    float amplitude = sqrt(fftFrequencyDomain_[bin][0]*fftFrequencyDomain_[bin][0] +
+                                           fftFrequencyDomain_[bin][1]*fftFrequencyDomain_[bin][1]);
+                    
+                    // Set the phase of each bin to 0. phase = 0 means the signal is entirely
+                    // positive-real, but the overall amplitude is the same as before.
+                    fftFrequencyDomain_[bin][0] = amplitude;
+                    fftFrequencyDomain_[bin][1] = 0.0;
+                }
+                
+                // Perform the inverse FFT to get back to the time domain. Result wll be
+                // in fftTimeDomain_. If we've done it right (kept the frequency domain
+                // symmetric), the time domain resuld should be strictly real allowing us
+                // to ignore the imaginary part.
+                fftw_execute(fftBackwardPlan_);
+                
+                // Add the result to the output buffer, starting at the current write position
+                // (Output buffer will have been zeroed after reading the last time around)
+                // Output needs to be scaled by the transform size to get back to original amplitude:
+                // this is a property of how fftw is implemented. Scaling will also need to be adjusted
+                // based on hop size to get the same output level (smaller hop size produces more overlap
+                // and hence higher signal level)
+                int outputBufferIndex = outwritepos;
+                for(int fftBufferIndex = 0; fftBufferIndex < fftActualTransformSize_; fftBufferIndex++)
+                {
+                    // Reapply the window since phase changes will result in discontinities at the edges
+                    // of the window
+                    if(fftBufferIndex < windowBufferLength_)
+                        outputBufferData[outputBufferIndex] += windowBuffer_[fftBufferIndex] *
+                                                            fftTimeDomain_[fftBufferIndex][0] * fftScaleFactor_;
+                    if(++outputBufferIndex >= outputBufferLength_)
+                        outputBufferIndex = 0;
+                }
+                
+                // Advance the write position within the buffer by the hop size
+                outwritepos = (outwritepos + hopActualSize_) % outputBufferLength_;
+            }
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    inputBufferWritePosition_ = inwritepos;
+    outputBufferWritePosition_ = outwritepos;
+    outputBufferReadPosition_ = outreadpos;
+    samplesSinceLastFFT_ = sampsincefft;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+    
+    fftSpinLock_.exit();
+}
+
+//==============================================================================
+bool RobotisationAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* RobotisationAudioProcessor::createEditor()
+{
+    return new RobotisationAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void RobotisationAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("fftSize", fftSelectedSize_);
+    xml.setAttribute("hopSize", hopSelectedSize_);
+    xml.setAttribute("windowType", windowType_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void RobotisationAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            fftSelectedSize_  = (int)xmlState->getDoubleAttribute("fftSize", fftSelectedSize_);
+            hopSelectedSize_  = (int)xmlState->getDoubleAttribute("hopSize", hopSelectedSize_);
+            windowType_  = (int)xmlState->getDoubleAttribute("windowType", windowType_);
+            
+            if(preparedToPlay_)
+            {
+                // Update settings if currently playing, else wait until prepareToPlay() called
+                initFFT(fftSelectedSize_);
+                initWindow(fftSelectedSize_, windowType_);
+            }
+        }
+    }
+}
+
+//==============================================================================
+// Initialise the FFT data structures for a given length transform
+void RobotisationAudioProcessor::initFFT(int length)
+{
+    if(fftInitialised_)
+        deinitFFT();
+    
+    // Save the current length so we know how big our results are later
+    fftActualTransformSize_ = length;
+    
+    // Here we allocate the complex-number buffers for the FFT. This uses
+    // a convenient wrapper on the more general fftw_malloc()
+    fftTimeDomain_ = fftw_alloc_complex(length);
+    fftFrequencyDomain_ = fftw_alloc_complex(length);
+    
+    // FFTW_ESTIMATE doesn't necessarily produce the fastest executing code (FFTW_MEASURE
+    // will get closer) but it carries a minimum startup cost. FFTW_MEASURE might stall for
+    // several seconds which would be annoying in an audio plug-in context.
+    fftForwardPlan_ = fftw_plan_dft_1d(fftActualTransformSize_, fftTimeDomain_,
+                                       fftFrequencyDomain_, FFTW_FORWARD, FFTW_ESTIMATE);
+    fftBackwardPlan_ = fftw_plan_dft_1d(fftActualTransformSize_, fftFrequencyDomain_,
+                                       fftTimeDomain_, FFTW_BACKWARD, FFTW_ESTIMATE);
+    
+    // Allocate the buffer that the samples will be collected in
+    inputBufferLength_ = fftActualTransformSize_;
+    inputBuffer_.setSize(2, inputBufferLength_);
+    inputBuffer_.clear();
+    inputBufferWritePosition_ = 0;
+    samplesSinceLastFFT_ = 0;
+    
+    // Allocate the output buffer to be twice the size of the FFT
+    // This will be enough for all hop size cases
+    outputBufferLength_ = 2*fftActualTransformSize_;
+    outputBuffer_.setSize(2, outputBufferLength_);
+    outputBuffer_.clear();
+    outputBufferReadPosition_ = 0;
+    
+    updateHopSize();
+    
+    fftInitialised_ = true;
+}
+
+// Free the FFT data structures
+void RobotisationAudioProcessor::deinitFFT()
+{
+    if(!fftInitialised_)
+        return;
+    
+    // Prevent this variable from changing while an audio callback is running.
+    // Once it has changed, the next audio callback will find that it's not
+    // initialised and will return silence instead of attempting to work with the
+    // (invalid) FFT structures. This produces an audible glitch but no crash,
+    // and is the simplest way to handle parameter changes in this example code.
+    fftSpinLock_.enter();
+    fftInitialised_ = false;
+    fftSpinLock_.exit();
+    
+    fftw_destroy_plan(fftForwardPlan_);
+    fftw_destroy_plan(fftBackwardPlan_);
+    fftw_free(fftTimeDomain_);
+    fftw_free(fftFrequencyDomain_);
+    
+    // Leave the input buffer in memory until the plugin is released
+}
+
+//==============================================================================
+// Create a new window of a given length and type
+void RobotisationAudioProcessor::initWindow(int length, int windowType)
+{
+    if(windowBuffer_ != 0)
+        deinitWindow();
+    if(length == 0) // Sanity check
+        return;
+    
+    // Allocate memory for the window
+    windowBuffer_ = (double *)malloc(length * sizeof(double));
+    
+    // Write the length as a double here to simplify the code below (otherwise
+    // typecasts would be wise)
+    double windowLength = length;
+    
+    // Set values for the window, depending on its type
+    for(int i = 0; i < length; i++)
+    {
+        // Window functions are typically defined to be symmetrical. This will cause a
+        // problem in the overlap-add process: the windows instead need to be periodic
+        // when arranged end-to-end. As a result we calculate the window of one sample
+        // larger than usual, and drop the last sample. (This works as long as N is even.)
+        // See Julius Smith, "Spectral Audio Signal Processing" for details.
+        switch(windowType)
+        {
+            case kWindowBartlett:
+                windowBuffer_[i] = (2.0/(windowLength + 2.0))*
+                    (0.5*(windowLength + 2.0) - abs((double)i - 0.5*windowLength));
+                break;
+            case kWindowHann:
+                windowBuffer_[i] = 0.5*(1.0 - cos(2.0*M_PI*(double)i/windowLength));
+                break;
+            case kWindowHamming:
+                windowBuffer_[i] = 0.54 - 0.46*cos(2.0*M_PI*(double)i/windowLength);
+                break;
+            case kWindowRectangular:
+            default:
+                windowBuffer_[i] = 1.0;
+                break;
+        }
+    }
+    
+    windowBufferLength_ = length;
+    updateScaleFactor();
+}
+
+// Free the window buffer
+void RobotisationAudioProcessor::deinitWindow()
+{
+    if(windowBuffer_ == 0)
+        return;
+    
+    // Delay clearing the window until the audio thread is not running
+    // to avoid a crash if the code tries to access an invalid window
+    fftSpinLock_.enter();
+    windowBufferLength_ = 0;
+    fftSpinLock_.exit();
+    
+    free(windowBuffer_);
+    windowBuffer_ = 0;
+}
+
+// Update the actual hop size depending on the window size and hop size settings
+// Hop size is expressed as a fraction of a window in the parameters.
+void RobotisationAudioProcessor::updateHopSize()
+{
+    hopActualSize_ = hopSelectedSize_;
+    
+    // Update the factor by which samples are scaled to preserve unity gain
+    updateScaleFactor();
+    
+    // Read pointer lags the write pointer to allow for FFT buffers to accumulate and
+    // be processed. Total latency is sum of the FFT size and the hop size.
+    outputBufferWritePosition_ = hopActualSize_ + fftActualTransformSize_;
+}
+
+// Update the factor by which each output sample is scaled. This needs to update
+// every time FFT size, hop size, and window type are changed.
+void RobotisationAudioProcessor::updateScaleFactor()
+{
+    // The gain needs to be normalised by the sum of the window, which implicitly
+    // accounts for the length of the transform and the window type. From there
+    // we also update based on hop size: smaller hop means more overlap means the
+    // overall gain should be reduced.
+    double windowSum = 0.0;
+    
+    for(int i = 0; i < windowBufferLength_; i++)
+    {
+        windowSum += windowBuffer_[i];
+    }
+    
+    if(windowSum == 0.0)
+        fftScaleFactor_ = 0.0; // Catch invalid cases and mute output
+    else
+    {
+        fftScaleFactor_ = ((float)hopSelectedSize_/(float)fftActualTransformSize_)/(double)windowSum;
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new RobotisationAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/robotisation/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,179 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Robotisation: robot effect using phase vocoder
+  See textbook Chapter 8: The Phase Vocoder
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  This code requires the fftw library version 3 to compile:
+  http://fftw.org
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include <fftw3.h>
+
+//==============================================================================
+/**
+*/
+class RobotisationAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    RobotisationAudioProcessor();
+    ~RobotisationAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;    
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kFFTSizeParam = 0,
+        kHopSizeParam,
+        kWindowTypeParam,
+        kNumParameters
+    };
+    
+    enum Window
+    {
+        kWindowRectangular = 1,
+        kWindowBartlett,
+        kWindowHann,
+        kWindowHamming
+    };
+    
+    // This parameter indicates the FFT size for phase vocoder computation. It is selected
+    // by the GUI and may temporarily differ from the actual size used in calculations.
+    int fftSelectedSize_;
+    int hopSelectedSize_;       // Hop size, as chosen by user
+    int windowType_;            // Type of window used
+    
+private:
+    // Methods to initialise and de-initialise the FFT machinery
+    void initFFT(int length);
+    void deinitFFT();
+    
+    // Methods to initialise and de-initialise the window
+    void initWindow(int length, int windowType);
+    void deinitWindow();
+    
+    // Methods to update the buffering for the given hop size and the output scaling
+    void updateHopSize();
+    void updateScaleFactor();
+    
+    // Whether the FFT has been initialised and is therefore ready to go
+    bool fftInitialised_;
+    
+    // Variables for calculating the FFT and IFFT: complex data structures and the
+    // "plan" used by the fftw library to calculate the transforms.
+    fftw_complex *fftTimeDomain_, *fftFrequencyDomain_;
+    fftw_plan fftForwardPlan_, fftBackwardPlan_;
+    
+    // Size of the FFT (generally a power of two) and the hop size (in samples, generally a fraction of FFT size)
+    int fftActualTransformSize_;
+    int hopActualSize_;
+    
+    // Amount by which to scale the inverse FFT to return to original amplitude: depends on the
+    // transform size (because of fftw implementation) and the hop size (because of inherent overlap)
+    double fftScaleFactor_;
+    
+    // Circular buffer gathers audio samples from the input until enough are available
+    // for the FFT calculation
+    AudioSampleBuffer inputBuffer_;
+    int inputBufferLength_;
+    int inputBufferWritePosition_;
+    
+    // Circular buffer that collects output samples from the FFT overlap-add process
+    // before they are ready to be sent to the output stream
+    AudioSampleBuffer outputBuffer_;
+    int outputBufferLength_;
+    int outputBufferReadPosition_, outputBufferWritePosition_;
+    
+    // How many samples since the last FFT?
+    int samplesSinceLastFFT_;
+    
+    // Stored window function for pre-processing input frames
+    double *windowBuffer_;
+    int windowBufferLength_;
+    
+    // Whether or not prepareToPlay() has been called, i.e. that resources are in use
+    bool preparedToPlay_;
+    
+    // Spin lock that prevents the FFT settings from changing in the middle of the audio
+    // thread.
+    SpinLock fftSpinLock_;
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (RobotisationAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/robotisation/robotisation.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="AC7ScK" name="robotisation" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.robotisation" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Robotisation" pluginDesc="Robotisation effect using phase vocoder"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="pvrb" pluginChannelConfigs="{1, 1}, {2, 2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="robotisationAU"
+              pluginAUViewClass="pvoc_passthroughAU_V1" pluginRTASCategory=""
+              jucerVersion="3.1.0" companyName="Reiss and McPherson" aaxIdentifier="com.yourcompany.pvoc_passthrough"
+              pluginAAXCategory="AAX_ePlugInCategory_Dynamics" buildVST3="0"
+              buildAAX="0" includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="RZnSpY" vstFolder="../../vstsdk2.4"
+               extraLinkerFlags="-lfftw3 -lm" postbuildCommand="&#13;&#10;# This script takes the build product and copies it to the AU, VST, and RTAS folders, depending on &#13;&#10;# which plugin types you've built&#13;&#10;&#13;&#10;original=$CONFIGURATION_BUILD_DIR/$FULL_PRODUCT_NAME&#13;&#10;&#13;&#10;# this looks inside the binary to detect which platforms are needed.. &#13;&#10;copyAU=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'AudioUnit' | wc -l&#96;&#13;&#10;copyVST=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'VSTPlugin' | wc -l&#96;&#13;&#10;copyRTAS=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'CProcess' | wc -l&#96;&#13;&#10;copyAAX=&#96;nm -g &quot;$CONFIGURATION_BUILD_DIR/$EXECUTABLE_PATH&quot; | grep -i 'ACFStartup' | wc -l&#96;&#13;&#10;&#13;&#10;if [ $copyAU -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AudioUnit folder...&quot;&#13;&#10;  AU=~/Library/Audio/Plug-Ins/Components/$PRODUCT_NAME.component&#13;&#10;  if [ -d &quot;$AU&quot; ]; then &#13;&#10;    rm -r &quot;$AU&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$AU&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$AU/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$AU/Contents/$INFOPLIST_FILE&quot;&#13;&#10;&#13;&#10;  # Fix info.plist for AUs built with Xcode 3&#13;&#10;  if [ -f &quot;$DEVELOPER_DIR/Library/Developer/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp&quot; ]; then&#13;&#10;    echo&#13;&#10;  else&#13;&#10;    echo &quot;Removing AudioComponents entry from Info.plist because this is not a new-format AU&quot;&#13;&#10;    /usr/libexec/PlistBuddy -c &quot;Delete AudioComponents&quot; &quot;$AU/Contents/Info.plist&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyVST -gt 0 ]; then&#13;&#10;  echo &quot;Copying to VST folder...&quot;&#13;&#10;  VST=~/Library/Audio/Plug-Ins/VST/$PRODUCT_NAME.vst&#13;&#10;  if [ -d &quot;$VST&quot; ]; then &#13;&#10;    rm -r &quot;$VST&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$VST&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMwPTul/BNDLPTul/g' &quot;$VST/Contents/PkgInfo&quot;&#13;&#10;  sed -i &quot;&quot; -e 's/TDMw/BNDL/g' &quot;$VST/Contents/$INFOPLIST_FILE&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyRTAS -gt 0 ]; then&#13;&#10;  echo &quot;Copying to RTAS folder...&quot;&#13;&#10;  RTAS=/Library/Application\ Support/Digidesign/Plug-Ins/$PRODUCT_NAME.dpm&#13;&#10;  if [ -d &quot;$RTAS&quot; ]; then&#13;&#10;    rm -r &quot;$RTAS&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  cp -r &quot;$original&quot; &quot;$RTAS&quot;&#13;&#10;fi&#13;&#10;&#13;&#10;if [ $copyAAX -gt 0 ]; then&#13;&#10;  echo &quot;Copying to AAX folder...&quot;&#13;&#10;&#13;&#10;  if [ -d &quot;/Applications/ProTools_3PDev/Plug-Ins&quot; ]; then&#13;&#10;    AAX1=&quot;/Applications/ProTools_3PDev/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX1&quot; ]; then&#13;&#10;      rm -r &quot;$AAX1&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX1&quot;&#13;&#10;  fi&#13;&#10;&#13;&#10;  if [ -d &quot;/Library/Application Support/Avid/Audio/Plug-Ins&quot; ]; then&#13;&#10;    AAX2=&quot;/Library/Application Support/Avid/Audio/Plug-Ins/$PRODUCT_NAME.aaxplugin&quot;&#13;&#10;&#13;&#10;    if [ -d &quot;$AAX2&quot; ]; then&#13;&#10;      rm -r &quot;$AAX2&quot;&#13;&#10;    fi&#13;&#10;&#13;&#10;    cp -r &quot;$original&quot; &quot;$AAX2&quot;&#13;&#10;  fi&#13;&#10;fi&#13;&#10;">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="robotisation"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       headerPath="/usr/local/include" libraryPath="/usr/local/lib"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="robotisation"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"
+                       headerPath="/usr/local/include" libraryPath="/usr/local/lib"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="oVUVUz" name="robotisation">
+    <GROUP id="{F4483B04-0E7A-D77C-795E-A491F61E239B}" name="Source">
+      <FILE id="d7EIMU" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="YDAD0P" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="VTO1E6" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="mhOgcd" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/tremolo/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/tremolo/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,140 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Tremolo: amplitude modulation using a low-frequency oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+//==============================================================================
+TremoloAudioProcessorEditor::TremoloAudioProcessorEditor (TremoloAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      depthLabel_("", "Depth:"),
+      frequencyLabel_("", "Frequency:"),
+      waveformLabel_("", "Waveform:")
+{
+    // Set up the sliders
+    addAndMakeVisible (&depthSlider_);
+    depthSlider_.setSliderStyle (Slider::Rotary);
+    depthSlider_.addListener (this);
+    depthSlider_.setRange (0.0, 1.0, 0.01);
+
+    addAndMakeVisible (&frequencySlider_);
+    frequencySlider_.setSliderStyle (Slider::Rotary);
+    frequencySlider_.addListener (this);
+    frequencySlider_.setRange (0.2, 20.0, 0.05);
+    
+    addAndMakeVisible(&waveformComboBox_);
+    waveformComboBox_.setEditableText(false);
+    waveformComboBox_.setJustificationType(Justification::left);
+    waveformComboBox_.addItem("Sine", TremoloAudioProcessor::kWaveformSine);
+    waveformComboBox_.addItem("Triangle", TremoloAudioProcessor::kWaveformTriangle);
+    waveformComboBox_.addItem("Square", TremoloAudioProcessor::kWaveformSquare);
+    waveformComboBox_.addItem("Square (with sloped edges)", TremoloAudioProcessor::kWaveformSquareSlopedEdges);
+    waveformComboBox_.addListener(this);
+
+    depthLabel_.attachToComponent(&depthSlider_, false);
+    depthLabel_.setFont(Font (11.0f));
+    
+    frequencyLabel_.attachToComponent(&frequencySlider_, false);
+    frequencyLabel_.setFont(Font (11.0f));
+    
+    waveformLabel_.attachToComponent(&waveformComboBox_, false);
+    waveformLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 140, 600, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+TremoloAudioProcessorEditor::~TremoloAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void TremoloAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void TremoloAudioProcessorEditor::resized()
+{
+    frequencySlider_.setBounds(20, 20, 150, 40);
+    depthSlider_.setBounds (200, 20, 150, 40);
+    waveformComboBox_.setBounds (20, 80, 200, 30);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void TremoloAudioProcessorEditor::timerCallback()
+{
+    TremoloAudioProcessor* ourProcessor = getProcessor();
+    
+    depthSlider_.setValue(ourProcessor->depth_, dontSendNotification);
+    frequencySlider_.setValue(ourProcessor->frequency_, dontSendNotification);
+    waveformComboBox_.setSelectedId(ourProcessor->waveform_, dontSendNotification);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void TremoloAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &depthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (TremoloAudioProcessor::kDepthParam,
+                                                   (float)depthSlider_.getValue());
+    }
+    else if (slider == &frequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (TremoloAudioProcessor::kFrequencyParam,
+                                                   (float)frequencySlider_.getValue());
+    }
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void TremoloAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &waveformComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (TremoloAudioProcessor::kWaveformParam,
+                                                   (float)waveformComboBox_.getSelectedId());
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/tremolo/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,71 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Tremolo: amplitude modulation using a low-frequency oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class TremoloAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Timer
+{
+public:
+    TremoloAudioProcessorEditor (TremoloAudioProcessor* ownerFilter);
+    ~TremoloAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    
+private:
+    Label depthLabel_, frequencyLabel_, waveformLabel_;
+    Slider depthSlider_, frequencySlider_;
+    ComboBox waveformComboBox_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    TremoloAudioProcessor* getProcessor() const
+    {
+        return static_cast <TremoloAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/tremolo/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,367 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Tremolo: amplitude modulation using a low-frequency oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <math.h>
+
+//==============================================================================
+TremoloAudioProcessor::TremoloAudioProcessor()
+{
+    // Set default values:
+    frequency_ = 2.0;
+    depth_ = 1.0;
+    waveform_ = kWaveformSine;
+    
+    lfoPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/44100.0;
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 140;
+}
+
+TremoloAudioProcessor::~TremoloAudioProcessor()
+{
+}
+
+//==============================================================================
+const String TremoloAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int TremoloAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float TremoloAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kFrequencyParam:     return frequency_;
+        case kDepthParam:         return depth_;
+        case kWaveformParam:      return (float)waveform_;
+        default:                  return 0.0f;
+    }
+}
+
+void TremoloAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+
+    switch (index)
+    {
+        case kFrequencyParam:
+            frequency_ = newValue;
+            break;
+        case kDepthParam:
+            depth_ = newValue;
+            break;
+        case kWaveformParam:
+            waveform_ = (int)newValue;
+            break;
+        default:
+            break;
+    }
+}
+
+const String TremoloAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kFrequencyParam:     return "frequency";
+        case kDepthParam:         return "depth";
+        case kWaveformParam:      return "waveform";
+        default:                  break;
+    }
+    
+    return String::empty;
+}
+
+const String TremoloAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String TremoloAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String TremoloAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool TremoloAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool TremoloAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool TremoloAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double TremoloAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool TremoloAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool TremoloAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int TremoloAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int TremoloAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void TremoloAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String TremoloAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void TremoloAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void TremoloAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Calculations that happen before play begins. Pretty simple in this effect, just
+    // reset the previous state.
+    lfoPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/sampleRate;
+}
+
+void TremoloAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+}
+
+void TremoloAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    lfoPhase_ = 0.0;
+}
+
+
+void TremoloAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel;
+    float ph;
+    
+    // Go through each channel of audio that's passed in. In this example we apply identical
+    // effects to each channel, regardless of how many input channels there are. For some effects, like
+    // a stereo chorus or panner, you might do something different for each channel.
+    
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // Make a temporary copy of any state variables declared in PluginProcessor.h which need to be
+        // maintained between calls to processBlock(). Each channel needs to be processed identically
+        // which means that the activity of processing one channel can't affect the state variable for
+        // the next channel.
+        
+        ph = lfoPhase_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+
+            // Ring modulation is easy! Just multiply the waveform by a periodic carrier
+            channelData[i] = in * (1.0f - depth_*lfo(ph, waveform_));
+
+            // Update the carrier and LFO phases, keeping them in the range 0-1
+            ph += frequency_*inverseSampleRate_;
+            if(ph >= 1.0)
+                ph -= 1.0;
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    
+    lfoPhase_ = ph;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool TremoloAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* TremoloAudioProcessor::createEditor()
+{
+    return new TremoloAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void TremoloAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("frequency", frequency_);
+    xml.setAttribute("depth", depth_);
+    xml.setAttribute("waveform", waveform_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void TremoloAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+
+            depth_ = (float)xmlState->getDoubleAttribute("depth", depth_);
+            frequency_  = (float)xmlState->getDoubleAttribute("frequency", frequency_);
+            waveform_   = xmlState->getIntAttribute("waveform", waveform_);
+        }
+    }
+}
+
+//==============================================================================
+// Function for calculating LFO waveforms. Phase runs from 0-1, output is scaled
+// from 0 to 1 (note: not -1 to 1 as would be typical of sine).
+float TremoloAudioProcessor::lfo(float phase, int waveform)
+{
+    switch(waveform)
+    {
+        case kWaveformTriangle:
+            if(phase < 0.25f)
+                return 0.5f + 2.0f*phase;
+            else if(phase < 0.75f)
+                return 1.0f - 2.0f*(phase - 0.25f);
+            else
+                return 2.0f*(phase-0.75f);
+        case kWaveformSquare:
+            if(phase < 0.5f)
+                return 1.0f;
+            else
+                return 0.0f;
+        case kWaveformSquareSlopedEdges:
+            if(phase < 0.48f)
+                return 1.0f;
+            else if(phase < 0.5f)
+                return 1.0f - 50.0f*(phase - 0.48f);
+            else if(phase < 0.98f)
+                return 0.0f;
+            else
+                return 50.0f*(phase - 0.98f);
+        case kWaveformSine:
+        default:
+            return 0.5f + 0.5f*sinf(2.0 * M_PI * phase);
+    }
+}
+
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new TremoloAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/tremolo/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,130 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Tremolo: amplitude modulation using a low-frequency oscillator
+  See textbook Chapter 5: Amplitude Modulation
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class TremoloAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    TremoloAudioProcessor();
+    ~TremoloAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;        
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kFrequencyParam,
+        kDepthParam,
+        kWaveformParam,
+        kNumParameters
+    };
+    
+    enum Waveforms
+    {
+        kWaveformSine = 1,
+        kWaveformTriangle,
+        kWaveformSquare,
+        kWaveformSquareSlopedEdges,
+        kNumWaveforms
+    };
+    
+    // Adjustable parameters:
+    float frequency_;  // LFO frequency (Hz)
+    float depth_;      // Depth of effect (0-1)
+    int   waveform_;      // What shape should be used for the LFO
+    
+private:
+    float lfo(float phase, int waveform);
+    
+    float lfoPhase_;     // Phase of the low-frequency oscillator
+    double inverseSampleRate_; // It's more efficient to multiply than divide, so
+                               // cache the inverse of the sample rate
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TremoloAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/tremolo/tremolo.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="pUBjFb" name="tremolo" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.tremoloeffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Tremolo" pluginDesc="Tremolo (amplitude modulation) effect"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="Plug" pluginChannelConfigs="{2,2},{1,1}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="tremoloAU"
+              pluginAUViewClass="tremoloAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.tremolo" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="huErol" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="tremolo"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="tremolo"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="jo9oJe" name="tremolo">
+    <GROUP id="{4E1BC53A-EEBE-0090-2B40-0CB474CEE092}" name="Source">
+      <FILE id="R0uTQk" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="TAmnwW" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="bbhVFv" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="Q8mSSU" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/vibrato/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/vibrato/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,249 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Vibrato: frequency modulation using delay lines
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <cstring>
+
+#ifdef _MSC_VER
+#define snprintf _snprintf_s //support for pre-2014 versions of Visual Studio
+#endif // _MSC_VER
+
+//==============================================================================
+VibratoAudioProcessorEditor::VibratoAudioProcessorEditor (VibratoAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      sweepWidthLabel_("", "Sweep Width (sec.):"),
+      frequencyLabel_("", "LFO Frequency:"),
+      waveformLabel_("", "LFO Waveform:"),
+      interpolationLabel_("", "Interpolation Type:"),
+      pitchShiftLabel_("", "Maximum Pitch Shift:")
+{
+    // Initialise variables
+    oldSweepWidth_ = oldFrequency_ = -1.0;
+    oldWaveform_ = -1;
+    
+    // Set up the sliders
+    addAndMakeVisible (&sweepWidthSlider_);
+    sweepWidthSlider_.setSliderStyle (Slider::Rotary);
+    sweepWidthSlider_.addListener (this);
+    sweepWidthSlider_.setRange (.001, VibratoAudioProcessor::kMaximumSweepWidth, 0.0005);
+
+    addAndMakeVisible (&frequencySlider_);
+    frequencySlider_.setSliderStyle (Slider::Rotary);
+    frequencySlider_.addListener (this);
+    frequencySlider_.setRange (0.5, 5.0, 0.025);
+    
+    addAndMakeVisible(&waveformComboBox_);
+    waveformComboBox_.setEditableText(false);
+    waveformComboBox_.setJustificationType(Justification::left);
+    waveformComboBox_.addItem("Sine", VibratoAudioProcessor::kWaveformSine);
+    waveformComboBox_.addItem("Triangle", VibratoAudioProcessor::kWaveformTriangle);
+    waveformComboBox_.addItem("Sawtooth (rising)", VibratoAudioProcessor::kWaveformSawtooth);
+    waveformComboBox_.addItem("Sawtooth (falling)", VibratoAudioProcessor::kWaveformInverseSawtooth);
+    waveformComboBox_.addListener(this);
+    
+    addAndMakeVisible(&interpolationComboBox_);
+    interpolationComboBox_.setEditableText(false);
+    interpolationComboBox_.setJustificationType(Justification::left);
+    interpolationComboBox_.addItem("None", VibratoAudioProcessor::kInterpolationNearestNeighbour);
+    interpolationComboBox_.addItem("Linear", VibratoAudioProcessor::kInterpolationLinear);
+    interpolationComboBox_.addItem("Cubic", VibratoAudioProcessor::kInterpolationCubic);
+    interpolationComboBox_.addListener(this);
+    
+    // This label is informational and exists apart from other controls
+    // The other labels are attached to sliders and combo boxes
+    addAndMakeVisible(&pitchShiftLabel_);
+    pitchShiftLabel_.setFont(Font (12.0f));
+
+    sweepWidthLabel_.attachToComponent(&sweepWidthSlider_, false);
+    sweepWidthLabel_.setFont(Font (11.0f));
+    
+    frequencyLabel_.attachToComponent(&frequencySlider_, false);
+    frequencyLabel_.setFont(Font (11.0f));
+    
+    waveformLabel_.attachToComponent(&waveformComboBox_, false);
+    waveformLabel_.setFont(Font (11.0f));
+    
+    interpolationLabel_.attachToComponent(&interpolationComboBox_, false);
+    interpolationLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 160, 600, 300);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+VibratoAudioProcessorEditor::~VibratoAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void VibratoAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void VibratoAudioProcessorEditor::resized()
+{
+    sweepWidthSlider_.setBounds (20, 20, 150, 40);
+    frequencySlider_.setBounds(200, 20, 150, 40);
+    pitchShiftLabel_.setBounds(20, 60, 350, 20);
+    waveformComboBox_.setBounds(20, 100, 150, 30);
+    interpolationComboBox_.setBounds(200, 100, 150, 30);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void VibratoAudioProcessorEditor::timerCallback()
+{
+    VibratoAudioProcessor* ourProcessor = getProcessor();
+    
+    sweepWidthSlider_.setValue(ourProcessor->sweepWidth_, dontSendNotification);
+    frequencySlider_.setValue(ourProcessor->frequency_, dontSendNotification);
+    waveformComboBox_.setSelectedId(ourProcessor->waveform_, false);
+    interpolationComboBox_.setSelectedId(ourProcessor->interpolation_, false);
+    
+    // Update the pitch shift label only when something changes to avoid
+    // needless calculations
+    if(ourProcessor->sweepWidth_ != oldSweepWidth_ ||
+       ourProcessor->frequency_ != oldFrequency_ ||
+       ourProcessor->waveform_ != oldWaveform_)
+    {
+        updatePitchShiftLabel();
+        oldSweepWidth_ = ourProcessor->sweepWidth_;
+        oldFrequency_ = ourProcessor->frequency_;
+        oldWaveform_ = ourProcessor->waveform_;
+    }
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void VibratoAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &sweepWidthSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (VibratoAudioProcessor::kSweepWidthParam,
+                                                   (float)sweepWidthSlider_.getValue());
+        updatePitchShiftLabel();
+    }
+    else if (slider == &frequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (VibratoAudioProcessor::kFrequencyParam,
+                                                   (float)frequencySlider_.getValue());
+        updatePitchShiftLabel();
+    }
+}
+
+// Similar callback to sliderValueChanged for ComboBox updates
+void VibratoAudioProcessorEditor::comboBoxChanged (ComboBox *comboBox)
+{
+    if(comboBox == &waveformComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (VibratoAudioProcessor::kWaveformParam,
+                                                   (float)waveformComboBox_.getSelectedId());
+        updatePitchShiftLabel();
+    }
+    else if(comboBox == &interpolationComboBox_)
+    {
+        getProcessor()->setParameterNotifyingHost (VibratoAudioProcessor::kInterpolationParam,
+                                                   (float)interpolationComboBox_.getSelectedId());
+        // This parameter doesn't affect the maximum pitch shift
+    }
+}
+
+// Update the content of the pitch shift label (whenever controls change)
+void VibratoAudioProcessorEditor::updatePitchShiftLabel()
+{
+    VibratoAudioProcessor* ourProcessor = getProcessor();
+    
+    // The amount of pitch shift depends on the derivative of the delay, which
+    // is given by: delay = width * f(frequency * t)
+    // where f(x) is one of:
+    //   sine --> 0.5 + 0.5*sin(2*pi*x) --> derivative pi*cos(x)*dx
+    //   triangle --> {2.0*x or 1.0-(2.0*(x-0.5)) ---> derivative +/- 2.0*dx
+    //   sawtooth rising --> x --> derivative 1.0*dx
+    //   sawtooth falling --> 1.0 - x --> derivative -1.0*dx
+    // For f(frequency*t), "dx" = frequency
+    
+    float maxSpeed = 1.0, minSpeed = 1.0;
+    float maxPitch = 0.0, minPitch = 0.0;
+    char str[256];
+    
+    switch(ourProcessor->waveform_)
+    {
+        case VibratoAudioProcessor::kWaveformSine:
+            maxSpeed = 1.0 + M_PI * ourProcessor->frequency_ * ourProcessor->sweepWidth_;
+            minSpeed = 1.0 - M_PI * ourProcessor->frequency_ * ourProcessor->sweepWidth_;
+            break;
+        case VibratoAudioProcessor::kWaveformTriangle:
+            maxSpeed = 1.0 + 2.0 * ourProcessor->frequency_ * ourProcessor->sweepWidth_;
+            minSpeed = 1.0 - 2.0 * ourProcessor->frequency_ * ourProcessor->sweepWidth_;
+            break;
+        case VibratoAudioProcessor::kWaveformSawtooth:
+            // Standard (rising) sawtooth means delay is increasing --> pitch is lower
+            maxSpeed = 1.0;
+            minSpeed = 1.0 - ourProcessor->frequency_ * ourProcessor->sweepWidth_;
+            break;
+        case VibratoAudioProcessor::kWaveformInverseSawtooth:
+            // Inverse (falling) sawtooth means delay is decreasing --> pitch is higher
+            maxSpeed = 1.0 + ourProcessor->frequency_ * ourProcessor->sweepWidth_;
+            minSpeed = 1.0;
+            break;
+    }
+    
+    // Convert speed to pitch shift --> semitones = 12*log2(speed)
+    maxPitch = 12.0*logf(maxSpeed)/logf(2.0);
+    
+    if(minSpeed > 0)
+    {
+        minPitch = 12.0*logf(minSpeed)/logf(2.0);
+        snprintf(str, 256, "Vibrato range: %+.2f to %+.2f semitones (speed %.3f to %.3f)",
+                 minPitch, maxPitch, minSpeed, maxSpeed);
+    }
+    else
+    {
+        snprintf(str, 256, "Vibrato range: --- to %+.2f semitones (speed %.3f to %.3f)",
+                 maxPitch, minSpeed, maxSpeed);
+    }
+    
+    pitchShiftLabel_.setText(str, dontSendNotification);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/vibrato/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,77 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Vibrato: frequency modulation using delay lines
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class VibratoAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public ComboBox::Listener,
+                                   public Timer
+{
+public:
+    VibratoAudioProcessorEditor (VibratoAudioProcessor* ownerFilter);
+    ~VibratoAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    void comboBoxChanged (ComboBox *);
+    
+private:
+    void updatePitchShiftLabel();
+    
+    Label sweepWidthLabel_, frequencyLabel_, waveformLabel_;
+    Label interpolationLabel_, pitchShiftLabel_;
+    Slider sweepWidthSlider_, frequencySlider_;
+    ComboBox waveformComboBox_, interpolationComboBox_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    float oldSweepWidth_, oldFrequency_;
+    int oldWaveform_;
+    
+    VibratoAudioProcessor* getProcessor() const
+    {
+        return static_cast <VibratoAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/vibrato/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,465 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Vibrato: frequency modulation using delay lines
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <math.h>
+
+const float VibratoAudioProcessor::kMaximumSweepWidth = 0.05;
+
+//==============================================================================
+VibratoAudioProcessor::VibratoAudioProcessor() : delayBuffer_ (2, 1)
+{
+    // Set default values:
+    sweepWidth_ = .01;
+    frequency_ = 2.0;
+    waveform_ = kWaveformSine;
+    interpolation_ = kInterpolationLinear;
+    
+    delayBufferLength_ = 1;
+    lfoPhase_ = 0.0;
+    inverseSampleRate_ = 1.0/44100.0;
+    
+    // Start the circular buffer pointer at the beginning
+    delayWritePosition_ = 0;
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 160;
+}
+
+VibratoAudioProcessor::~VibratoAudioProcessor()
+{
+}
+
+//==============================================================================
+const String VibratoAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int VibratoAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float VibratoAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kSweepWidthParam:    return sweepWidth_;
+        case kFrequencyParam:     return frequency_;
+        case kWaveformParam:      return (float)waveform_;
+        case kInterpolationParam: return (float)interpolation_;
+        default:                  return 0.0f;
+    }
+}
+
+void VibratoAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+
+    switch (index)
+    {
+        case kSweepWidthParam:
+            sweepWidth_ = newValue;
+            break;
+        case kFrequencyParam:
+            frequency_ = newValue;
+            break;
+        case kWaveformParam:
+            waveform_ = (int)newValue;
+            break;
+        case kInterpolationParam:
+            interpolation_ = (int)newValue;
+            break;
+        default:
+            break;
+    }
+}
+
+const String VibratoAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kSweepWidthParam:    return "sweep width";
+        case kFrequencyParam:     return "frequency";
+        case kWaveformParam:      return "waveform";
+        case kInterpolationParam: return "interpolation";
+        default:                  break;
+    }
+    
+    return String::empty;
+}
+
+const String VibratoAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String VibratoAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String VibratoAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool VibratoAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool VibratoAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool VibratoAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double VibratoAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool VibratoAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool VibratoAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int VibratoAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int VibratoAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void VibratoAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String VibratoAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void VibratoAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void VibratoAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Allocate and zero the delay buffer (size will depend on current sample rate)
+    // Add 3 extra samples to allow cubic interpolation even at maximum delay
+    delayBufferLength_ = (int)(kMaximumSweepWidth*sampleRate) + 3;
+    delayBuffer_.setSize(2, delayBufferLength_);
+    delayBuffer_.clear();
+    lfoPhase_ = 0.0;
+    
+    inverseSampleRate_ = 1.0/sampleRate;
+}
+
+void VibratoAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    
+    // The delay buffer will stay in memory until the effect is unloaded.
+}
+
+void VibratoAudioProcessor::reset()
+{
+    // Use this method as the place to clear any delay lines, buffers, etc, as it
+    // means there's been a break in the audio's continuity.
+    
+    delayBuffer_.clear();
+}
+
+
+void VibratoAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    
+    int channel, dpw; // dpr = delay read pointer; dpw = delay write pointer
+    float dpr, currentDelay, ph;
+    
+    // Go through each channel of audio that's passed in. In this example we apply identical
+    // effects to each channel, regardless of how many input channels there are. For some effects, like
+    // a stereo chorus or panner, you might do something different for each channel.
+    
+    for (channel = 0; channel < numInputChannels; ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+        
+        // delayData is the circular buffer for implementing delay on this channel
+        float* delayData = delayBuffer_.getSampleData (jmin (channel, delayBuffer_.getNumChannels() - 1));
+        
+        // Make a temporary copy of any state variables declared in PluginProcessor.h which need to be
+        // maintained between calls to processBlock(). Each channel needs to be processed identically
+        // which means that the activity of processing one channel can't affect the state variable for
+        // the next channel.
+        
+        dpw = delayWritePosition_;
+        ph = lfoPhase_;
+        
+        for (int i = 0; i < numSamples; ++i)
+        {
+            const float in = channelData[i];
+            float interpolatedSample = 0.0;
+            
+            // Recalculate the read pointer position with respect to the write pointer. A more efficient
+            // implementation might increment the read pointer based on the derivative of the LFO without
+            // running the whole equation again, but this format makes the operation clearer.
+            
+            currentDelay = sweepWidth_*lfo(ph, waveform_);
+            
+            // Subtract 3 samples to the delay pointer to make sure we have enough previously written
+            // samples to interpolate with
+            dpr = fmodf((float)dpw - (float)(currentDelay * getSampleRate()) + (float)delayBufferLength_ - 3.0,
+                        (float)delayBufferLength_);
+            
+            // In this example, the output is the input plus the contents of the delay buffer (weighted by delayMix)
+            // The last term implements a tremolo (variable amplitude) on the whole thing.
+  
+            if(interpolation_ == kInterpolationLinear)
+            {
+                // Find the fraction by which the read pointer sits between two
+                // samples and use this to adjust weights of the samples
+                float fraction = dpr - floorf(dpr);
+                int previousSample = (int)floorf(dpr);
+                int nextSample = (previousSample + 1) % delayBufferLength_;
+                interpolatedSample = fraction*delayData[nextSample]
+                + (1.0f-fraction)*delayData[previousSample];
+            }
+            else if(interpolation_ == kInterpolationCubic)
+            {
+                // Cubic interpolation will produce cleaner results at the expense
+                // of more computation. This code uses the Catmull-Rom variant of
+                // cubic interpolation. To reduce the load, calculate a few quantities
+                // in advance that will be used several times in the equation:
+                
+                int sample1 = (int)floorf(dpr);
+                int sample2 = (sample1 + 1) % delayBufferLength_;
+                int sample3 = (sample2 + 1) % delayBufferLength_;
+                int sample0 = (sample1 - 1 + delayBufferLength_) % delayBufferLength_;
+                
+                float fraction = dpr - floorf(dpr);
+                float frsq = fraction*fraction;
+                
+                float a0 = -0.5f*delayData[sample0] + 1.5f*delayData[sample1]
+                            - 1.5f*delayData[sample2] + 0.5f*delayData[sample3];
+                float a1 = delayData[sample0] - 2.5f*delayData[sample1]
+                            + 2.0f*delayData[sample2] - 0.5f*delayData[sample3];
+                float a2 = -0.5f*delayData[sample0] + 0.5f*delayData[sample2];
+                float a3 = delayData[sample1];
+                
+                interpolatedSample = a0*fraction*frsq + a1*frsq + a2*fraction + a3;
+            }
+            else // Nearest neighbour interpolation
+            {
+                // Find the nearest input sample by rounding the fractional index to the
+                // nearest integer. It's possible this will round it to the end of the buffer,
+                // in which case we need to roll it back to the beginning.
+                int closestSample = (int)floorf(dpr + 0.5);
+                if(closestSample == delayBufferLength_)
+                    closestSample = 0;
+                interpolatedSample = delayData[closestSample];
+            }
+            
+            // Store the current information in the delay buffer. With feedback, what we read is
+            // included in what gets stored in the buffer, otherwise it's just a simple delay line
+            // of the input signal.
+            
+            delayData[dpw] = in;
+            
+            // Increment the write pointer at a constant rate. The read pointer will move at different
+            // rates depending on the settings of the LFO, the delay and the sweep width.
+            
+            if (++dpw >= delayBufferLength_)
+                dpw = 0;
+
+            // Store the output sample in the buffer, replacing the input. In the vibrato effect,
+            // the delaye sample is the only component of the output (no mixing with the dry signal)
+            channelData[i] = interpolatedSample;
+
+            // Update the LFO phase, keeping it in the range 0-1
+            ph += frequency_*inverseSampleRate_;
+            if(ph >= 1.0)
+                ph -= 1.0;
+        }
+    }
+    
+    // Having made a local copy of the state variables for each channel, now transfer the result
+    // back to the main state variable so they will be preserved for the next call of processBlock()
+    
+    delayWritePosition_ = dpw;
+    lfoPhase_ = ph;
+    
+    // In case we have more outputs than inputs, we'll clear any output
+    // channels that didn't contain input data, (because these aren't
+    // guaranteed to be empty - they may contain garbage).
+    for (int i = numInputChannels; i < numOutputChannels; ++i)
+    {
+        buffer.clear (i, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool VibratoAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* VibratoAudioProcessor::createEditor()
+{
+    return new VibratoAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void VibratoAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("sweepWidth", sweepWidth_);
+    xml.setAttribute("frequency", frequency_);
+    xml.setAttribute("waveform", waveform_);
+    xml.setAttribute("interpolation", interpolation_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void VibratoAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            sweepWidth_ = (float)xmlState->getDoubleAttribute("sweepWidth", sweepWidth_);
+            frequency_  = (float)xmlState->getDoubleAttribute("frequency", frequency_);
+            waveform_   = xmlState->getIntAttribute("waveform", waveform_);
+            interpolation_ = xmlState->getIntAttribute("interpolation", interpolation_);
+        }
+    }
+}
+
+//==============================================================================
+// Function for calculating LFO waveforms. Phase runs from 0-1, output is scaled
+// from 0 to 1 (note: not -1 to 1 as would be typical of sine).
+float VibratoAudioProcessor::lfo(float phase, int waveform)
+{
+    switch(waveform)
+    {
+        case kWaveformTriangle:
+            if(phase < 0.25f)
+                return 0.5f + 2.0f*phase;
+            else if(phase < 0.75f)
+                return 1.0f - 2.0f*(phase - 0.25f);
+            else
+                return 2.0f*(phase-0.75f);
+        case kWaveformSquare:
+            if(phase < 0.5f)
+                return 1.0f;
+            else
+                return 0.0f;
+        case kWaveformSawtooth:
+            if(phase < 0.5f)
+                return 0.5f + phase;
+            else
+                return phase - 0.5f;
+        case kWaveformInverseSawtooth:
+            if(phase < 0.5f)
+                return 0.5f - phase;
+            else
+                return 1.5f - phase;
+        case kWaveformSine:
+        default:
+            return 0.5f + 0.5f*sinf(2.0 * M_PI * phase);
+    }
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new VibratoAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/vibrato/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,148 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Vibrato: frequency modulation using delay lines
+  See textbook Chapter 2: Delay Line Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+
+//==============================================================================
+/**
+*/
+class VibratoAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    VibratoAudioProcessor();
+    ~VibratoAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+    void reset();
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+    
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kSweepWidthParam,
+        kFrequencyParam,
+        kWaveformParam,
+        kInterpolationParam,
+        kNumParameters
+    };
+    
+    enum Waveforms
+    {
+        kWaveformSine = 1,
+        kWaveformTriangle,
+        kWaveformSquare,
+        kWaveformSawtooth,
+        kWaveformInverseSawtooth,
+        kNumWaveforms
+    };
+    
+    enum Interpolation
+    {
+        kInterpolationNearestNeighbour = 1,
+        kInterpolationLinear,
+        kInterpolationCubic,
+        kNumInterpolations
+    };
+    
+    static const float kMaximumSweepWidth;
+    
+    // Adjustable parameters:
+    float sweepWidth_; // Amount of change from min to max delay
+    float frequency_;  // LFO frequency (Hz)
+    int   waveform_;   // What shape should be used for the LFO
+    int   interpolation_; // What type of interpolation to use
+    
+private:
+    float lfo(float phase, int waveform);
+    
+    // Circular buffer variables for implementing delay
+    AudioSampleBuffer delayBuffer_;
+    int delayBufferLength_;
+    int delayWritePosition_;
+    
+    float lfoPhase_;   // Phase of the low-frequency oscillator
+    double inverseSampleRate_; // It's more efficient to multiply than divide, so
+                               // cache the inverse of the sample rate
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (VibratoAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/vibrato/vibrato.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="v6Hele" name="vibrato" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.vibratoeffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Vibrato" pluginDesc="Vibrato effect"
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="vibr" pluginChannelConfigs="{2, 2}, {1, 1}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="vibratoAU"
+              pluginAUViewClass="vibratoAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.vibrato" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="jTd9NF" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="vibrato"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="vibrato"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="ALF6VO" name="vibrato">
+    <GROUP id="{513EA84C-3809-DD4E-47BB-057919321B7F}" name="Source">
+      <FILE id="t9Lt5C" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="OMF0sI" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="Z6tpEX" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="DXVIYX" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>
Binary file effects/wahwah/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/wahwah/Source/PluginEditor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,121 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Wah-Wah: filter effect using variable-frequency filter
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+#include <cstring>
+
+//==============================================================================
+WahwahAudioProcessorEditor::WahwahAudioProcessorEditor (WahwahAudioProcessor* ownerFilter)
+    : AudioProcessorEditor (ownerFilter),
+      centreFrequencyLabel_("", "Centre frequency (Hz):"),
+      qLabel_("", "Q:")
+{
+    // Set up the sliders
+
+    addAndMakeVisible(&centreFrequencySlider_);
+    centreFrequencySlider_.setSliderStyle(Slider::Rotary);
+    centreFrequencySlider_.addListener(this);
+    centreFrequencySlider_.setRange(400.0, 2000.0, 0.1);
+
+    addAndMakeVisible(&qSlider_);
+    qSlider_.setSliderStyle(Slider::Rotary);
+    qSlider_.addListener(this);
+    qSlider_.setRange(2.0, 20.0, 0.1);
+    
+    // Make the centre frequency slider (approximately) logarithmic for a
+    // more natural feel
+    centreFrequencySlider_.setSkewFactorFromMidPoint(sqrt(400.0 * 2000.0));
+    
+    centreFrequencyLabel_.attachToComponent(&centreFrequencySlider_, false);
+    centreFrequencyLabel_.setFont(Font (11.0f));
+    
+    qLabel_.attachToComponent(&qSlider_, false);
+    qLabel_.setFont(Font (11.0f));
+    
+    // add the triangular resizer component for the bottom-right of the UI
+    addAndMakeVisible(resizer_ = new ResizableCornerComponent (this, &resizeLimits_));
+    resizeLimits_.setSizeLimits(370, 100, 550, 160);
+    
+    // set our component's initial size to be the last one that was stored in the filter's settings
+    setSize(ownerFilter->lastUIWidth_,
+            ownerFilter->lastUIHeight_);
+    
+    startTimer(50);
+}
+
+WahwahAudioProcessorEditor::~WahwahAudioProcessorEditor()
+{
+}
+
+//==============================================================================
+void WahwahAudioProcessorEditor::paint (Graphics& g)
+{
+    g.fillAll (Colours::grey);
+}
+
+void WahwahAudioProcessorEditor::resized()
+{
+    centreFrequencySlider_.setBounds(20, 20, 150, 40);
+    qSlider_.setBounds(200, 20, 150, 40);
+    
+    resizer_->setBounds(getWidth() - 16, getHeight() - 16, 16, 16);
+    
+    getProcessor()->lastUIWidth_ = getWidth();
+    getProcessor()->lastUIHeight_ = getHeight();
+}
+
+//==============================================================================
+// This timer periodically checks whether any of the filter's parameters have changed...
+void WahwahAudioProcessorEditor::timerCallback()
+{
+    WahwahAudioProcessor* ourProcessor = getProcessor();
+    
+    centreFrequencySlider_.setValue(ourProcessor->centreFrequency_, dontSendNotification);
+    qSlider_.setValue(ourProcessor->q_, dontSendNotification);
+}
+
+// This is our Slider::Listener callback, when the user drags a slider.
+void WahwahAudioProcessorEditor::sliderValueChanged (Slider* slider)
+{
+    // It's vital to use setParameterNotifyingHost to change any parameters that are automatable
+    // by the host, rather than just modifying them directly, otherwise the host won't know
+    // that they've changed.
+    
+    if (slider == &centreFrequencySlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (WahwahAudioProcessor::kCentreFrequencyParam,
+                                                   (float)centreFrequencySlider_.getValue());
+    }
+    else if (slider == &qSlider_)
+    {
+        getProcessor()->setParameterNotifyingHost (WahwahAudioProcessor::kQParam,
+                                                   (float)qSlider_.getValue());
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/wahwah/Source/PluginEditor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,68 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Wah-Wah: filter effect using variable-frequency filter
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINEDITOR_H_6E48F605__
+#define __PLUGINEDITOR_H_6E48F605__
+
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "PluginProcessor.h"
+
+
+//==============================================================================
+
+class WahwahAudioProcessorEditor  : public AudioProcessorEditor,
+                                   public SliderListener,
+                                   public Timer
+{
+public:
+    WahwahAudioProcessorEditor (WahwahAudioProcessor* ownerFilter);
+    ~WahwahAudioProcessorEditor();
+
+    //==============================================================================
+    // This is just a standard Juce paint method...
+    void timerCallback();
+    void paint (Graphics& g);
+    void resized();
+    void sliderValueChanged (Slider*);
+    
+private:
+    Label centreFrequencyLabel_, qLabel_;
+    Slider centreFrequencySlider_, qSlider_;
+    
+    ScopedPointer<ResizableCornerComponent> resizer_;
+    ComponentBoundsConstrainer resizeLimits_;
+    
+    WahwahAudioProcessor* getProcessor() const
+    {
+        return static_cast <WahwahAudioProcessor*> (getAudioProcessor());
+    }
+};
+
+
+#endif  // __PLUGINEDITOR_H_6E48F605__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/wahwah/Source/PluginProcessor.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,328 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Wah-Wah: filter effect using variable-frequency filter
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "PluginProcessor.h"
+#include "PluginEditor.h"
+
+// The filter will produce a resonant peak of amplitude Q; bring everything
+// down somewhat to compensate, though try to maintain some perceptual balance
+// of being similar loudness. (This factor has been chosen somewhat arbitrarily.)
+const double kWahwahFilterGain = 0.5;
+
+//==============================================================================
+WahwahAudioProcessor::WahwahAudioProcessor()
+{
+    // Set default values:
+    centreFrequency_ = 400.0;
+    q_ = 5.0;
+    
+    // Initialise the filters later when we know how many channels
+    wahFilters_ = 0;
+    numWahFilters_ = 0;
+    
+    inverseSampleRate_ = 1.0/44100.0; // start with a sensible default
+    
+    lastUIWidth_ = 370;
+    lastUIHeight_ = 100;
+}
+
+WahwahAudioProcessor::~WahwahAudioProcessor()
+{
+}
+
+//==============================================================================
+const String WahwahAudioProcessor::getName() const
+{
+    return JucePlugin_Name;
+}
+
+int WahwahAudioProcessor::getNumParameters()
+{
+    return kNumParameters;
+}
+
+float WahwahAudioProcessor::getParameter (int index)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kCentreFrequencyParam: return centreFrequency_;
+        case kQParam:               return q_;
+        default:                    return 0.0f;
+    }
+}
+
+void WahwahAudioProcessor::setParameter (int index, float newValue)
+{
+    // This method will be called by the host, probably on the audio thread, so
+    // it's absolutely time-critical. Don't use critical sections or anything
+    // UI-related, or anything at all that may block in any way!
+    switch (index)
+    {
+        case kCentreFrequencyParam:
+            centreFrequency_ = newValue;
+            updateFilter();
+            break;
+        case kQParam:
+            q_ = newValue;
+            updateFilter();
+            break;
+        default:
+            break;
+    }
+}
+
+const String WahwahAudioProcessor::getParameterName (int index)
+{
+    switch (index)
+    {
+        case kCentreFrequencyParam:  return "centre frequency";
+        case kQParam:                return "Q";
+        default:                     break;
+    }
+    
+    return String::empty;
+}
+
+const String WahwahAudioProcessor::getParameterText (int index)
+{
+    return String (getParameter (index), 2);
+}
+
+const String WahwahAudioProcessor::getInputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+const String WahwahAudioProcessor::getOutputChannelName (int channelIndex) const
+{
+    return String (channelIndex + 1);
+}
+
+bool WahwahAudioProcessor::isInputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool WahwahAudioProcessor::isOutputChannelStereoPair (int index) const
+{
+    return true;
+}
+
+bool WahwahAudioProcessor::silenceInProducesSilenceOut() const
+{
+#if JucePlugin_SilenceInProducesSilenceOut
+    return true;
+#else
+    return false;
+#endif
+}
+
+double WahwahAudioProcessor::getTailLengthSeconds() const
+{
+    return 0.0;
+}
+
+bool WahwahAudioProcessor::acceptsMidi() const
+{
+#if JucePlugin_WantsMidiInput
+    return true;
+#else
+    return false;
+#endif
+}
+
+bool WahwahAudioProcessor::producesMidi() const
+{
+#if JucePlugin_ProducesMidiOutput
+    return true;
+#else
+    return false;
+#endif
+}
+
+int WahwahAudioProcessor::getNumPrograms()
+{
+    return 0;
+}
+
+int WahwahAudioProcessor::getCurrentProgram()
+{
+    return 0;
+}
+
+void WahwahAudioProcessor::setCurrentProgram (int index)
+{
+}
+
+const String WahwahAudioProcessor::getProgramName (int index)
+{
+    return String::empty;
+}
+
+void WahwahAudioProcessor::changeProgramName (int index, const String& newName)
+{
+}
+
+//==============================================================================
+void WahwahAudioProcessor::prepareToPlay (double sampleRate, int samplesPerBlock)
+{
+    // Use this method as the place to do any pre-playback
+    // initialisation that you need..
+    
+    // Create as many filters as we have input channels
+    numWahFilters_ = getNumInputChannels();
+    wahFilters_ = (ResonantLowpassFilter**)malloc(numWahFilters_ * sizeof(ResonantLowpassFilter*));
+    if(wahFilters_ == 0)
+        numWahFilters_ = 0;
+    else {
+        for(int i = 0; i < numWahFilters_; i++)
+            wahFilters_[i] = new ResonantLowpassFilter;
+    }
+    
+    inverseSampleRate_ = 1.0 / sampleRate;
+    
+    // Update the filter settings to work with the current parameters and sample rate
+    updateFilter();
+}
+
+void WahwahAudioProcessor::releaseResources()
+{
+    // When playback stops, you can use this as an opportunity to free up any
+    // spare memory, etc.
+    for(int i = 0; i < numWahFilters_; i++)
+        delete wahFilters_[i];
+    if(numWahFilters_ != 0)
+        free(wahFilters_);
+    numWahFilters_ = 0;
+    wahFilters_ = 0;
+}
+
+void WahwahAudioProcessor::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
+{
+    // Helpful information about this block of samples:
+    const int numInputChannels = getNumInputChannels();     // How many input channels for our effect?
+    const int numOutputChannels = getNumOutputChannels();   // How many output channels for our effect?
+    const int numSamples = buffer.getNumSamples();          // How many samples in the buffer for this block?
+    int channel;
+    
+    // Go through each channel of audio that's passed in
+    
+    for (channel = 0; channel < jmin(numInputChannels, numWahFilters_); ++channel)
+    {
+        // channelData is an array of length numSamples which contains the audio for one channel
+        float* channelData = buffer.getSampleData(channel);
+     
+        // Run the samples through the IIR filter whose coefficients define the parametric
+        // equaliser. See juce_IIRFilter.cpp for the implementation.
+        wahFilters_[channel]->processSamples(channelData, numSamples);
+    }
+    
+    // Go through the remaining channels. In case we have more outputs
+    // than inputs, or there aren't enough filters, we'll clear any
+    // remaining output channels (which could otherwise contain garbage)
+    while(channel < numOutputChannels)
+    {
+        buffer.clear (channel++, 0, buffer.getNumSamples());
+    }
+}
+
+//==============================================================================
+bool WahwahAudioProcessor::hasEditor() const
+{
+    return true; // (change this to false if you choose to not supply an editor)
+}
+
+AudioProcessorEditor* WahwahAudioProcessor::createEditor()
+{
+    return new WahwahAudioProcessorEditor (this);
+}
+
+//==============================================================================
+void WahwahAudioProcessor::getStateInformation (MemoryBlock& destData)
+{
+    // You should use this method to store your parameters in the memory block.
+    // You could do that either as raw data, or use the XML or ValueTree classes
+    // as intermediaries to make it easy to save and load complex data.
+    
+    // Create an outer XML element..
+    XmlElement xml("C4DMPLUGINSETTINGS");
+    
+    // add some attributes to it..
+    xml.setAttribute("uiWidth", lastUIWidth_);
+    xml.setAttribute("uiHeight", lastUIHeight_);
+    xml.setAttribute("centreFrequency", centreFrequency_);
+    xml.setAttribute("q", q_);
+    
+    // then use this helper function to stuff it into the binary blob and return it..
+    copyXmlToBinary(xml, destData);
+}
+
+void WahwahAudioProcessor::setStateInformation (const void* data, int sizeInBytes)
+{
+    // You should use this method to restore your parameters from this memory block,
+    // whose contents will have been created by the getStateInformation() call.
+    
+    // This getXmlFromBinary() helper function retrieves our XML from the binary blob..
+    ScopedPointer<XmlElement> xmlState (getXmlFromBinary (data, sizeInBytes));
+    
+    if(xmlState != 0)
+    {
+        // make sure that it's actually our type of XML object..
+        if(xmlState->hasTagName("C4DMPLUGINSETTINGS"))
+        {
+            // ok, now pull out our parameters..
+            lastUIWidth_  = xmlState->getIntAttribute("uiWidth", lastUIWidth_);
+            lastUIHeight_ = xmlState->getIntAttribute("uiHeight", lastUIHeight_);
+            
+            q_ = (float)xmlState->getDoubleAttribute("q", q_);
+            centreFrequency_ = (float)xmlState->getDoubleAttribute("centreFrequency", centreFrequency_);
+            inverseSampleRate_ = 1.0 / getSampleRate();
+            updateFilter();
+        }
+    }
+}
+
+//==============================================================================
+// Update the coefficients of the resonant lowpass filter
+void WahwahAudioProcessor::updateFilter()
+{
+    for(int i = 0; i < numWahFilters_; i++)
+        wahFilters_[i]->makeResonantLowpass(inverseSampleRate_, centreFrequency_, q_,
+                                            kWahwahFilterGain);
+}
+
+//==============================================================================
+// This creates new instances of the plugin..
+AudioProcessor* JUCE_CALLTYPE createPluginFilter()
+{
+    return new WahwahAudioProcessor();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/wahwah/Source/PluginProcessor.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,115 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Wah-Wah: filter effect using variable-frequency filter
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __PLUGINPROCESSOR_H_4693CB6E__
+#define __PLUGINPROCESSOR_H_4693CB6E__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+#include "ResonantLowpassFilter.h"
+
+//==============================================================================
+/**
+*/
+class WahwahAudioProcessor  : public AudioProcessor
+{
+public:
+    //==============================================================================
+    WahwahAudioProcessor();
+    ~WahwahAudioProcessor();
+
+    //==============================================================================
+    void prepareToPlay (double sampleRate, int samplesPerBlock);
+    void releaseResources();
+
+    void processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages);
+
+    //==============================================================================
+    AudioProcessorEditor* createEditor();
+    bool hasEditor() const;
+
+    //==============================================================================
+    const String getName() const;
+
+    int getNumParameters();
+
+    float getParameter (int index);
+    void setParameter (int index, float newValue);
+
+    const String getParameterName (int index);
+    const String getParameterText (int index);
+
+    const String getInputChannelName (int channelIndex) const;
+    const String getOutputChannelName (int channelIndex) const;
+    bool isInputChannelStereoPair (int index) const;
+    bool isOutputChannelStereoPair (int index) const;
+
+    bool silenceInProducesSilenceOut() const;
+    double getTailLengthSeconds() const;
+    bool acceptsMidi() const;
+    bool producesMidi() const;
+
+    //==============================================================================
+    int getNumPrograms();
+    int getCurrentProgram();
+    void setCurrentProgram (int index);
+    const String getProgramName (int index);
+    void changeProgramName (int index, const String& newName);
+
+    //==============================================================================
+    void getStateInformation (MemoryBlock& destData);
+    void setStateInformation (const void* data, int sizeInBytes);
+    
+    //==============================================================================
+    
+    // these are used to persist the UI's size - the values are stored along with the
+    // filter's other parameters, and the UI component will update them when it gets
+    // resized.
+    int lastUIWidth_, lastUIHeight_;
+    
+    enum Parameters
+    {
+        kCentreFrequencyParam = 0, /* Centre frequency in Hz */
+        kQParam, /* Q of the resonant filter */
+        kNumParameters
+    };
+    
+    float centreFrequency_, q_;
+private:
+    void updateFilter();
+    
+    ResonantLowpassFilter **wahFilters_;
+    int numWahFilters_;
+    double inverseSampleRate_; // Save the inverse of the sample rate for faster calculation
+    
+    //==============================================================================
+    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WahwahAudioProcessor);
+};
+
+#endif  // __PLUGINPROCESSOR_H_4693CB6E__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/wahwah/Source/ResonantLowpassFilter.cpp	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,71 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Wah-Wah: filter effect using variable-frequency filter
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "ResonantLowpassFilter.h"
+
+/* The actual audio processing is handled by the Juce IIRFilter parent
+ * class. This subclass is used to define the coefficients for our
+ * implementation of a parametric equaliser.
+ */
+
+void ResonantLowpassFilter::makeResonantLowpass(const double inverseSampleRate,
+                                                const double centreFrequency,
+                                                const double Q,
+                                                const double gain) noexcept
+{
+    jassert (Q > 0);
+    
+    // Use inverse sample rate since multiplication is more efficient than
+    // division, and the sample rate is unlikely to change each call.
+    const double discreteFrequency = 2.0 * M_PI * centreFrequency * inverseSampleRate;
+    const double alpha = sin(discreteFrequency) / (2.0 * Q);
+    const double cos_w0 = cos(discreteFrequency);
+
+    /* setCoefficients() takes arguments: b0, b1, b2, a0, a1, a2
+     * It will normalise the filter according to the value of a0
+     * to allow standard time-domain implementations
+     */
+    
+    coefficients = IIRCoefficients(0.5*(1.0 - cos_w0)*gain, /* b0 */
+                     (1.0 - cos_w0)*gain, /* b1 */
+                     0.5*(1.0 - cos_w0)*gain, /* b2 */
+                     1.0 + alpha, /* a0 */
+                     -2.0 * cos_w0, /* a1 */
+                     1.0 - alpha /* a2 */);
+    
+    setCoefficients(coefficients);
+}
+
+/* Copy coefficients from another object of the same class */
+
+void ResonantLowpassFilter::copyCoefficientsFrom (const ResonantLowpassFilter& other) noexcept
+{
+    setCoefficients(other.coefficients);
+    active = other.active;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/wahwah/Source/ResonantLowpassFilter.h	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,66 @@
+/*
+  This code accompanies the textbook:
+ 
+  Digital Audio Effects: Theory, Implementation and Application
+  Joshua D. Reiss and Andrew P. McPherson
+ 
+  ---
+ 
+  Wah-Wah: filter effect using variable-frequency filter
+  See textbook Chapter 4: Filter Effects
+ 
+  Code by Andrew McPherson, Brecht De Man and Joshua Reiss
+ 
+  ---
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+ 
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#ifndef __ResonantLowpassFilter_H_6E48F605__
+#define __ResonantLowpassFilter_H_6E48F605__
+
+#define _USE_MATH_DEFINES
+#include "../JuceLibraryCode/JuceHeader.h"
+
+//==============================================================================
+/**
+ * This class implements a resonant lowpass filter used in the wah-wah
+ * effect and its variants
+ */
+
+class ResonantLowpassFilter : public IIRFilter
+{
+public:
+    //==============================================================================
+	
+	/* Sets the filter coefficients to produce a resonant lowpass with a given
+     * centre frequency and Q. Also include a gain term to offset resonant peak.
+     */
+	void makeResonantLowpass(const double inverseSampleRate,
+                             const double centreFrequency,
+                             const double Q,
+                             const double gain) noexcept;
+	
+    /** Makes this filter duplicate the set-up of another one.
+	 */
+    void copyCoefficientsFrom (const ResonantLowpassFilter& other) noexcept;
+	
+private:
+    //==============================================================================
+	JUCE_LEAK_DETECTOR (ResonantLowpassFilter);
+};
+
+
+#endif // __ResonantLowpassFilter_H_6E48F605__
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/effects/wahwah/wahwah.jucer	Fri Oct 10 15:41:23 2014 +0100
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<JUCERPROJECT id="i4Zn9f" name="wahwah" projectType="audioplug" version="1.0.0"
+              bundleIdentifier="uk.ac.qmul.eecs.wahwaheffect" buildVST="1"
+              buildRTAS="0" buildAU="1" pluginName="Wah-Wah" pluginDesc="Wah guitar pedal effect "
+              pluginManufacturer="Reiss and McPherson" pluginManufacturerCode="JRAM"
+              pluginCode="wawa" pluginChannelConfigs="{1, 1}, {2, 2}" pluginIsSynth="0"
+              pluginWantsMidiIn="0" pluginProducesMidiOut="0" pluginSilenceInIsSilenceOut="1"
+              pluginTailLength="0" pluginEditorRequiresKeys="0" pluginAUExportPrefix="wahwahAU"
+              pluginAUViewClass="wahwahAU_V1" pluginRTASCategory="" jucerVersion="3.1.0"
+              companyName="Reiss and McPherson" buildVST3="0" buildAAX="0"
+              aaxIdentifier="com.yourcompany.wahwah" pluginAAXCategory="AAX_ePlugInCategory_Dynamics"
+              includeBinaryInAppConfig="1">
+  <EXPORTFORMATS>
+    <XCODE_MAC targetFolder="Builds/MacOSX" objCExtraSuffix="b0WmNJ" vstFolder="../../vstsdk2.4">
+      <CONFIGURATIONS>
+        <CONFIGURATION name="Debug" isDebug="1" optimisation="1" targetName="wahwah"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+        <CONFIGURATION name="Release" isDebug="0" optimisation="2" targetName="wahwah"
+                       osxSDK="default" osxCompatibility="default" osxArchitecture="64BitUniversal"/>
+      </CONFIGURATIONS>
+      <MODULEPATHS>
+        <MODULEPATH id="juce_opengl" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_extra" path="../../juce/modules"/>
+        <MODULEPATH id="juce_gui_basics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_graphics" path="../../juce/modules"/>
+        <MODULEPATH id="juce_events" path="../../juce/modules"/>
+        <MODULEPATH id="juce_data_structures" path="../../juce/modules"/>
+        <MODULEPATH id="juce_core" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_utils" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_processors" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_plugin_client" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_formats" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_devices" path="../../juce/modules"/>
+        <MODULEPATH id="juce_audio_basics" path="../../juce/modules"/>
+      </MODULEPATHS>
+    </XCODE_MAC>
+  </EXPORTFORMATS>
+  <MAINGROUP id="hBlDAz" name="wahwah">
+    <GROUP id="{29C739A1-6D78-C493-BA18-73906A32A47F}" name="Source">
+      <FILE id="R1huWV" name="ResonantLowpassFilter.cpp" compile="1" resource="0"
+            file="Source/ResonantLowpassFilter.cpp"/>
+      <FILE id="XAvPSX" name="ResonantLowpassFilter.h" compile="0" resource="0"
+            file="Source/ResonantLowpassFilter.h"/>
+      <FILE id="Youmve" name="PluginProcessor.cpp" compile="1" resource="0"
+            file="Source/PluginProcessor.cpp"/>
+      <FILE id="z6plO3" name="PluginProcessor.h" compile="0" resource="0"
+            file="Source/PluginProcessor.h"/>
+      <FILE id="DFYBNF" name="PluginEditor.cpp" compile="1" resource="0"
+            file="Source/PluginEditor.cpp"/>
+      <FILE id="TUym3B" name="PluginEditor.h" compile="0" resource="0" file="Source/PluginEditor.h"/>
+    </GROUP>
+  </MAINGROUP>
+  <MODULES>
+    <MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_plugin_client" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_processors" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_audio_utils" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_core" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_data_structures" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_events" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_graphics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_basics" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_gui_extra" showAllCode="1" useLocalCopy="0"/>
+    <MODULE id="juce_opengl" showAllCode="1" useLocalCopy="0"/>
+  </MODULES>
+  <JUCEOPTIONS JUCE_QUICKTIME="disabled"/>
+</JUCERPROJECT>