gk-nik82 / Нямка от Рóмана

/**
 * GNU GENERAL PUBLIC LICENSE
 * Version 3, 29 June 2007
 *
 * Copyright (C) 2007 Free Software Foundation, Inc. <https://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 <https://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
 * <https://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
 * <https://www.gnu.org/licenses/why-not-lgpl.html>.
 */

var UserScriptStorage, updateBodyCssClassByView;

var CSS_PREFIX = 'nyamka-from-romano-userscript';

var timeout = function(ms) {
  return new Promise(function(resolve) {
    return setTimeout(resolve, ms);
  });
};

var createElement = function(htmlText) {
  var element;
  if (htmlText.startsWith("<!DOCTYPE HTML PUBLIC")) {
    element = document.createElement('html');
  } else {
    element = document.createElement('div');
  }
  element.innerHTML = htmlText;
  if (element.children.length === 1) {
    return element.children[0];
  }
  return element;
};

var createStyle = function(styleText) {
  var element;
  element = document.createElement('style');
  element.type = 'text/css';
  element.updateStyleText = function(styleText) {
    styleText = styleText || '';
    if (element.styleSheet) {
      element.styleSheet.cssText = styleText;
    } else {
      while (element.lastElementChild) {
        element.removeChild(element.lastElementChild);
      }
      element.appendChild(document.createTextNode(styleText));
    }
  };
  element.updateStyleText(styleText);
  return element;
};

var extname = function(filename) {
  var data, splitPathRe;
  splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
  data = splitPathRe.exec(filename).slice(1);
  return data[3].toLowerCase();
};

var isObject = function(value) {
  return typeof value === 'object' && (value !== null && value !== (void 0));
};

var isString = function(value) {
  return typeof value === 'string';
};

var isEmpty = function(value) {
  if (value === null || value === void 0) {
    return true;
  }
  if (value.length > 0) {
    return false;
  }
  if (value.length === 0) {
    return true;
  }
  if (typeof value !== 'object') {
    return false;
  }
  return Object.keys(value).length === 0;
};

var generateUniqueId = (function() {
  var id;
  id = 0;
  return function() {
    id += 1;
    return id;
  };
})();

var getInputCaretPosition = function(input) {
  if (input.selectionStart || input.selectionStart === '0') {
    return {
      startPos: input.selectionStart,
      endPos: input.selectionEnd
    };
  }
  return {
    startPos: input.value.length,
    endPos: input.value.length
  };
};

var copyToClipboard = function(data, dataType) {
  var clipboardItem;
  dataType = dataType || 'text/plain';
  clipboardItem = {};
  clipboardItem[dataType] = new Blob([data], {
    type: dataType
  });
  if (dataType.startsWith('text/') && dataType !== 'text/plain') {
    clipboardItem['text/plain'] = new Blob([data], {
      type: 'text/plain'
    });
  }
  return navigator.clipboard.write([new ClipboardItem(clipboardItem)]);
};

var downloadDataAsFile = function(value, fileName, fileType) {
  var a, blob, event;
  if (isObject(value)) {
    fileName = fileName || "download.json";
    fileType = fileType || "application/json";
    value = JSON.stringify(value, null, 4);
  }
  fileName = fileName || "download";
  fileType = fileType || "text/plain";
  blob = new Blob([value], {
    type: fileType
  });
  event = document.createEvent('MouseEvents');
  a = document.createElement('a');
  a.download = fileName;
  a.href = window.URL.createObjectURL(blob);
  a.dataset.downloadurl = [fileType, a.download, a.href].join(':');
  event.initEvent('click', true, false, unsafeWindow, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  a.dispatchEvent(event);
};

updateBodyCssClassByView = function() {
  var cssClass, i, len, pathname, ref;
  ref = document.body.classList || [];
  for (i = 0, len = ref.length; i < len; i++) {
    cssClass = ref[i];
    if (cssClass && cssClass.startsWith(`${CSS_PREFIX}-app-view`)) {
      document.body.classList.remove(cssClass);
    }
  }
  pathname = location.pathname.split('/')[1];
  if (pathname === 'user_properties') {
    pathname = 'user-properties';
  } else if (pathname.startsWith('user')) {
    pathname = 'user';
  }
  document.body.classList.add(`${CSS_PREFIX}-app-view-${pathname}`);
};

var onLocationChange = (function() {
  var allCallbacks;
  allCallbacks = null;
  updateBodyCssClassByView();
  return function(cb) {
    var cbId, onChange, origPushState, origReplaceState;
    if (allCallbacks === null) {
      // декорируем функции смены url в 1 и единственный раз
      onChange = function() {
        var error, k, ref, v;
        updateBodyCssClassByView();
        ref = allCallbacks || {};
        for (k in ref) {
          v = ref[k];
          if (v) {
            try {
              v();
            } catch (error1) {
              error = error1;
              console.warn(error);
            }
          }
        }
      };
      unsafeWindow.addEventListener('popstate', onChange);
      unsafeWindow.addEventListener('pushstate', onChange);
      unsafeWindow.addEventListener('hashchange', onChange);
      origPushState = unsafeWindow.history.pushState;
      unsafeWindow.history.pushState = function() {
        var result;
        result = origPushState.apply(unsafeWindow.history, arguments);
        onChange();
        return result;
      };
      origReplaceState = unsafeWindow.history.replaceState;
      unsafeWindow.history.replaceState = function() {
        var result;
        result = origReplaceState.apply(unsafeWindow.history, arguments);
        onChange();
        return result;
      };
      updateBodyCssClassByView();
    }
    // добавляем коллбак к очереди
    cbId = generateUniqueId();
    allCallbacks = allCallbacks || {};
    allCallbacks[cbId] = cb;
    // и сразу запускаем функцию
    cb();
    // возвращаем функцию дерегистратор
    return function() {
      delete onLocationChangeCallbacks[cbId];
    };
  };
})();

var onDomMutations = (function() {
  var allCallbacks, observer;
  observer = null;
  allCallbacks = null;
  return function(cb) {
    var MutationObserver, cbId;
    if (!observer) {
      MutationObserver = unsafeWindow.MutationObserver || unsafeWindow.WebkitMutationObserver || unsafeWindow.MozMutationObserver;
      observer = new MutationObserver(function(mutationsList) {
        var error, k, ref, v;
        if (isEmpty(allCallbacks)) {
          observer.disconnect();
          return;
        }
        ref = allCallbacks || {};
        for (k in ref) {
          v = ref[k];
          if (v) {
            try {
              v(mutationsList);
            } catch (error1) {
              error = error1;
              console.warn(error);
            }
          }
        }
      });
      observer.observe(document.body, {
        childList: true,
        subtree: true
      });
    }
    // добавляем коллбак к очереди
    cbId = generateUniqueId();
    allCallbacks = allCallbacks || {};
    allCallbacks[cbId] = cb;
    // возвращаем функцию дерегистратор
    return function() {
      delete allCallbacks[cbId];
      if (isEmpty(allCallbacks)) {
        observer.disconnect();
        observer = null;
      }
    };
  };
})();

var onClipboardPaste = function(cb) {
  var onPaste;
  onPaste = function(event) {
    var clipboardData;
    clipboardData = event.clipboardData || {};
    clipboardData.items = clipboardData.items || [];
    cb(clipboardData);
  };
  document.addEventListener('paste', onPaste);
  // возвращаем функцию дерегистратор
  return function() {
    document.removeEventListener('paste', onPaste);
  };
};

var loadOnce = (function() {
  var callbacks, loadOnceDone, loadStarted, loaded, preLoadOnce;
  loadStarted = {};
  loaded = {};
  callbacks = {};
  loadOnceDone = function(_type, url, data) {
    var cb, i, len, ref;
    switch (_type) {
      case 'js':
      case 'css':
        loaded[url] = data || true;
        break;
      case 'data':
        if (extname(url) === '.json') {
          try {
            data = JSON.parse(data);
          } catch (error1) {
          }
        }
        loaded[url] = data;
    }
    loadStarted[url] = false;
    ref = callbacks[url] || [];
    for (i = 0, len = ref.length; i < len; i++) {
      cb = ref[i];
      cb(data);
    }
    delete callbacks[url];
  };
  preLoadOnce = function(url, cb, notLoadedFn) {
    if (!loadStarted[url] && !loaded[url]) {
      loadStarted[url] = true;
      callbacks[url] = callbacks[url] || [];
      if (cb) {
        callbacks[url].push(cb);
      }
      return notLoadedFn();
    }
    if (!cb) {
      return;
    }
    if (loaded[url]) {
      cb(loaded[url]);
    } else {
      callbacks[url] = callbacks[url] || [];
      callbacks[url].push(cb);
    }
  };
  return {
    js: function(url, options) {
      options = options || {};
      return new Promise(function(resolve, reject) {
        preLoadOnce(url, resolve, function() {
          var script;
          if (options.module) {
            import(url).then(function(result){
                            loadOnceDone('js', url, result);
                        }, reject);
            return;
          }
          script = document.createElement('script');
          script.onload = function() {
            loadOnceDone('js', url, void 0);
          };
          script.onerror = reject;
          script.src = url;
          script.type = "text/javascript";
          document.getElementsByTagName('head')[0].appendChild(script);
        });
      });
    },
    css: function(url) {
      return new Promise(function(resolve, reject) {
        preLoadOnce(url, resolve, function() {
          var link;
          link = document.createElement("link");
          link.rel = "stylesheet";
          link.href = url;
          if (link.addEventListener) {
            link.addEventListener("load", function() {
              return loadOnceDone('css', url, void 0, true);
            });
          } else if (link.attachEvent) {
            link.attachEvent("onload", function() {
              return loadOnceDone('css', url, void 0, true);
            });
          } else {
            // поддержки коллбэка нет. просто запускаем loadOnceDone
            loadOnceDone('css', url, void 0);
          }
          document.getElementsByTagName('head')[0].appendChild(link);
        });
      });
    }
  };
})();

UserScriptStorage = (function() {
  class UserScriptStorage {
    constructor() {
      // следим сразу за изменениями localStorage
      window.addEventListener('storage', (event) => {
        var key;
        if (event.storageArea !== localStorage || event.key.startsWith(this.prefix)) {
          return;
        }
        key = event.key.split(this.prefix)[1];
        if (key) {
          this[key] = this.loadData(key);
        }
      });
    }

    registerVariable(key, defaultValue) {
      this.variables[key] = defaultValue;
      this[key] = this.loadData(key);
    }

    loadData(key) {
      var data;
      try {
        data = JSON.parse(localStorage.getItem(this.prefix + key));
      } catch (error1) {
        data = null;
      }
      if (data === null || data === (void 0)) {
        return this.variables[key] || null;
      }
      return data;
    }

    saveData() {
      var key;
      for (key in this.variables) {
        localStorage.setItem(this.prefix + key, JSON.stringify(this[key]));
      }
    }

  }
  UserScriptStorage.prototype.prefix = 'nyamka-from-romano-';

  UserScriptStorage.prototype.variables = {};

  return UserScriptStorage;

}).call(undefined);

var storage = new UserScriptStorage();

var faviconImg$3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAHlBMVEX///8AAAAAAAAAAAC7dgDOgwCSXQDFfAAAAAD////JlwHxAAAACHRSTlMAbo+ZOE5gI9ef7CQAAAABYktHRACIBR1IAAAAB3RJTUUH5gEHDzEjwxhyywAAAGtJREFUCNclzjEOgCAQBMAraemoqay14QHqD874AQk/wJJEwH22d9hsJrvNEhEBRZIKrHUqWO+9IzJ2wuKDoq6Yg04b90dRmTlBYBojJsF7IwMDKXdtTGdcAzsfRxm4flA9my5SxTgKvSHxAZOrHo46S4qhAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTAxLTA3VDE1OjQ5OjM0KzAwOjAwvvv+ggAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wMS0wN1QxNTo0OTozNCswMDowMM+mRj4AAAAASUVORK5CYII=";

var favicon$3 = faviconImg$3;

var getUserId = function(url) {
  var userId;
  url = url || '';
  userId = '';
  if (url.indexOf('/user') > -1) {
    userId = url.split('/user')[1];
  }
  userId = userId.split('?')[0];
  return userId;
};

var getCurrentUserId = function() {
  var profileLink;
  profileLink = document.querySelector('#site-content-right li.first a');
  if (profileLink) {
    return getUserId(profileLink.href);
  }
  return null;
};

var isCurrentSite$3 = function() {
  return location.host === 'fanfics.me';
};

var getChapterEditor$4 = function() {
  return {
    title: document.querySelector("input#chapterName"),
    body: document.querySelector('textarea#chapterText')
  };
};

var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}

var css$c = ".nyamka-from-romano-userscript-blur .MessageLeft, .nyamka-from-romano-userscript-blur .MessageText, .nyamka-from-romano-userscript-blur a.user, .nyamka-from-romano-userscript-blur .MessageCommentLeft,\n.nyamka-from-romano-userscript-blur .MessageRight > .small.light, .nyamka-from-romano-userscript-blur.user, .nyamka-from-romano-userscript-blur > a > img {\n  -webkit-filter: grayscale(1) blur(7px);\n  -moz-filter: grayscale(1) blur(7px);\n  filter: grayscale(1) blur(7px);\n  position: relative;\n  pointer-events: none;\n}\n.nyamka-from-romano-userscript-blur .MessageLeft::after, .nyamka-from-romano-userscript-blur .MessageText::after, .nyamka-from-romano-userscript-blur a.user::after, .nyamka-from-romano-userscript-blur .MessageCommentLeft::after,\n.nyamka-from-romano-userscript-blur .MessageRight > .small.light::after, .nyamka-from-romano-userscript-blur.user::after, .nyamka-from-romano-userscript-blur > a > img::after {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n}\n@media (max-width: 700px) {\n  .nyamka-from-romano-userscript-blur .MessageLeft, .nyamka-from-romano-userscript-blur .MessageText, .nyamka-from-romano-userscript-blur a.user, .nyamka-from-romano-userscript-blur .MessageCommentLeft,\n.nyamka-from-romano-userscript-blur .MessageRight > .small.light, .nyamka-from-romano-userscript-blur.user, .nyamka-from-romano-userscript-blur > a > img {\n    -webkit-filter: grayscale(1) blur(5px);\n    -moz-filter: grayscale(1) blur(5px);\n    filter: grayscale(1) blur(5px);\n  }\n}\n.nyamka-from-romano-userscript-blur .LikeButton, .nyamka-from-romano-userscript-blur .LikeCounter, .nyamka-from-romano-userscript-blur a.normal_link, .nyamka-from-romano-userscript-blur .MessageButtons, .nyamka-from-romano-userscript-blur .DropDownManagement {\n  display: none;\n}\n.nyamka-from-romano-userscript-blur .MessageRightUser > .small.light {\n  display: none;\n}\n.nyamka-from-romano-userscript-blur .MessageRightUser > span[data-show-member] {\n  pointer-events: none;\n}\n\nbody.nyamka-from-romano-userscript-app-view-notifications .ContentTable.Messages:not(.visible) {\n  position: relative;\n  pointer-events: none;\n}\nbody.nyamka-from-romano-userscript-app-view-notifications .ContentTable.Messages:not(.visible)::after {\n  content: \"\";\n  position: absolute;\n  background: #fcfaf2;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n}\n\n@media (max-width: 1023px) {\n  body[data-nyamka-script=fanfics-me] .MessageButtons .LikeButton {\n    visibility: visible;\n  }\n  body[data-nyamka-script=fanfics-me] .MessageButtons .LikeCounter {\n    margin-left: 10px;\n  }\n}";
n(css$c,{});

var hideElement, initSettings, processCommentBody, processLikeBody, processNotificationBody,
  indexOf$5 = [].indexOf;

hideElement = function(node, forceBlur) {
  if (!node) {
    return;
  }
  if (storage.usersHateListUseCssClass || forceBlur) {
    if (node.classList) {
      node.classList.add(`${CSS_PREFIX}-blur`);
    } else if (node.className) {
      node.className = (node.className || '') + ` ${CSS_PREFIX}-blur`;
    }
    return;
  }
  if (node.style) {
    node.style.display = 'none';
  } else {
    node.textContent = '';
  }
};

processCommentBody = function(node) {
  var author, authorId, j, len, ref, user, userId;
  // пытаемся найти id комментатора
  author = node.querySelector('.MessageRightUser a') || {};
  authorId = getUserId(author.href);
  // добавляем id пользователя, если его нет. так потом можно будет нормально скрывать кнопки
  // для собственных мимимишек
  if (authorId && !node.getAttribute('data-poster')) {
    node.setAttribute('data-poster', authorId);
  }
  if (authorId && storage.usersHateList[authorId]) {
    // чао бамбино, сеньорита!
    hideElement(node);
    return;
  }
  ref = node.querySelectorAll('.MessageText a.user');
  // ищем теперь упоминание любого пользователя из hateList в комменте
  for (j = 0, len = ref.length; j < len; j++) {
    user = ref[j];
    userId = getUserId(user.href);
    if (storage.usersHateList[userId]) {
      // ага! зачем читать упоминания о вас, мой дорогой?
      hideElement(node);
      return;
    }
  }
};

processNotificationBody = function(node) {
  var authorId, i, j, len, textContent, user, userId, users, usersContainer;
  usersContainer = node.querySelector('.MessageRightUser') || {};
  textContent = (usersContainer.textContent || '').toLowerCase();
  if (textContent.indexOf('упомянул вас') > -1 || textContent.indexOf('упомянула вас') > -1) {
    authorId = getUserId(usersContainer.querySelector('a').href);
    if (authorId && storage.usersHateList[authorId]) {
      // чао бамбино, сеньорита!
      hideElement(node);
      return;
    }
    return;
  }
  // обычный список мимимишек
  users = usersContainer.querySelectorAll('a.user');
  for (i = j = 0, len = users.length; j < len; i = ++j) {
    user = users[i];
    userId = getUserId(user.href);
    if (!userId || !storage.usersHateList[userId]) {
      continue;
    }
    if (users.length === 1) {
      hideElement(node);
      return;
    }
    // скрываем только имя и запятую
    hideElement(user);
    hideElement(user.nextSibling);
    if (i === 0) {
      hideElement(node.querySelector('.MessageLeft'), true);
    }
  }
};

processLikeBody = function(node) {
  var author, authorId;
  author = node.querySelector('a') || {};
  authorId = getUserId(author.href);
  if (authorId && storage.usersHateList[authorId]) {
    // чао бамбино, сеньорита!
    hideElement(node);
    return;
  }
};

initSettings = function() {
  var checkbox, infos, j, knownUserIds, len, oblivionSettings, ref, ref1, tdStat, tr, userId, v, valueToChecked;
  if (!document.getElementById('bl_list')) {
    return setTimeout(initSettings, 300);
  }
  valueToChecked = function(value) {
    if (value) {
      return 'checked';
    }
    return '';
  };
  knownUserIds = [];
  ref = document.getElementById('bl_list').querySelectorAll('tr');
  for (j = 0, len = ref.length; j < len; j++) {
    tr = ref[j];
    tdStat = tr.querySelector('td.stat');
    userId = tr.id.split('bl_member_')[1];
    if (!tdStat || !userId) {
      continue;
    }
    checkbox = createElement(`<div>
    <label style="cursor: pointer">
        <input type='checkbox' data-user-id="${userId}" ${valueToChecked(storage.usersHateList[userId])}>
        <small style='font-size: 90%'>Скрывать связанные комментарии, уведомления, мимимишки</small>
    </label>
</div>`);
    checkbox.querySelector('input').addEventListener('click', function() {
      userId = this.getAttribute('data-user-id');
      storage.usersHateList[userId] = !!this.checked;
      storage.saveData();
    });
    tr.children[1].appendChild(checkbox);
    knownUserIds.push(userId);
  }
  ref1 = storage.usersHateList;
  for (userId in ref1) {
    v = ref1[userId];
    if (!v || !knownUserIds.includes(userId)) {
      delete storage.usersHateList[userId];
    }
  }
  storage.saveData();
  infos = document.getElementsByClassName('InfoContainer');
  if (infos[0]) {
    oblivionSettings = createElement(`<div class='InfoContainer'>
    <b>Дополнительные настройки "Забвения пользователей"</b>
    <br>
    <label>
        <input type='checkbox' class='ChekboxImg' ${valueToChecked(storage.usersHateListUseCssClass)}>
        Вместо агрессивного скрытия использовать везде блюр
    </label>
</div>`);
    oblivionSettings.querySelector('input').addEventListener('click', function() {
      storage.usersHateListUseCssClass = !!this.checked;
      storage.saveData();
    });
    infos[0].parentNode.appendChild(oblivionSettings);
  }
};

var init$4 = function() {
  var addHideMimimiStyle, currentUserId, styleHideOwnMimimi;
  if (!isCurrentSite$3()) {
    return;
  }
  // переменные в сторадже и миграции
  // TODO: удалить нижние строки с localStorage, когда пройдет минимум 2-3 месяца
  if (localStorage.getItem('oblivion-userscript-usersHateList')) {
    localStorage.setItem(storage.prefix + 'usersHateList', localStorage.getItem('oblivion-userscript-usersHateList'));
    localStorage.removeItem('oblivion-userscript-usersHateList');
  }
  if (localStorage.getItem('oblivion-userscript-useCssClass')) {
    localStorage.setItem(storage.prefix + 'usersHateListUseCssClass', localStorage.getItem('oblivion-userscript-useCssClass'));
    localStorage.removeItem('oblivion-userscript-useCssClass');
  }
  storage.registerVariable('usersHateList', {});
  storage.registerVariable('usersHateListUseCssClass', false);
  currentUserId = null;
  styleHideOwnMimimi = null;
  addHideMimimiStyle = function() {
    if (!currentUserId) {
      currentUserId = getCurrentUserId();
    }
    if (currentUserId && !styleHideOwnMimimi) {
      styleHideOwnMimimi = createStyle(`table[data-poster="${currentUserId}"] > tbody > tr > td > .MessageBody > .MessageButtons .LikeButton,
table[data-poster="${currentUserId}"] > tbody > tr > td > .MessageButtons .LikeButton,
.MessageAlone[data-poster="${currentUserId}"] > .Message .LikeButton{
    display: none;
}`);
      document.head.appendChild(styleHideOwnMimimi);
    }
  };
  // наблюдение за новым контентом на странице
  onLocationChange(function() {
    if (location.pathname === '/user_properties' && location.search.indexOf('action=black_list') > -1) {
      initSettings();
      return;
    }
    if (location.pathname.startsWith('/message')) {
      document.addEventListener('DOMContentLoaded', function() {
        var container, posterId;
        container = document.querySelector('.MessageAlone');
        if (!container) {
          return;
        }
        addHideMimimiStyle();
        if (!container.getAttribute('data-poster')) {
          posterId = getUserId(document.querySelector('.MessageAloneHead > a').href);
          container.setAttribute('data-poster', posterId);
        }
      });
      return;
    }
    if (location.pathname === '/notifications') {
      document.addEventListener('DOMContentLoaded', function() {
        var container, j, len, node, ref;
        container = document.querySelector('#site-content .ContentTable.Messages');
        if (isEmpty(storage.usersHateList)) {
          if (container) {
            container.classList.add('visible');
          }
          return;
        }
        ref = document.querySelectorAll('table.Message');
        for (j = 0, len = ref.length; j < len; j++) {
          node = ref[j];
          processNotificationBody(node);
        }
        if (container) {
          container.classList.add('visible');
        }
      });
      return;
    }
  });
  onDomMutations(function(mutationsList) {
    var comment, j, k, l, len, len1, len2, len3, like, m, n, node, ref, ref1, ref2;
    addHideMimimiStyle();
//if isEmpty(storage.usersHateList)
//    return
// нас интересуют ТОЛЬКО новые ноды
    for (j = 0, len = mutationsList.length; j < len; j++) {
      m = mutationsList[j];
      if (m.addedNodes.length) {
        ref = m.addedNodes;
        for (k = 0, len1 = ref.length; k < len1; k++) {
          node = ref[k];
          if (!(node)) {
            continue;
          }
          // нашли блок комментов
          if (indexOf$5.call(node.classList || [], 'MessageComments') >= 0 || indexOf$5.call(node.classList || [], 'MessageCommentsContainer') >= 0) {
            ref1 = node.querySelectorAll('table.MessageBody');
            for (l = 0, len2 = ref1.length; l < len2; l++) {
              comment = ref1[l];
              processCommentBody(comment);
            }
          }
          if (location.pathname === '/notifications' && indexOf$5.call(node.classList || [], 'Message') >= 0) {
            processNotificationBody(node);
          }
          // список мимимикнувших в модальных окнах
          if (indexOf$5.call(node.classList || [], 'LikesList') >= 0) {
            ref2 = node.children;
            for (n = 0, len3 = ref2.length; n < len3; n++) {
              like = ref2[n];
              processLikeBody(like);
            }
          }
        }
      }
    }
  });
};

var css$b = ".notyf__message {\n  text-align: left;\n}";
n(css$b,{});

var showNotify;

showNotify = async function(options) {
  var notify;
  try {
    Notyf;
  } catch (error1) {
    await Promise.all([loadOnce.js('https://cdn.jsdelivr.net/npm/notyf@3.10.0/notyf.min.js'), loadOnce.css('https://cdn.jsdelivr.net/npm/notyf@3.10.0/notyf.min.css')]);
  }
  notify = new Notyf({
    duration: 3000,
    position: {
      y: 'top'
    }
  });
  notify[options.type](options.text);
};

var notification = {
  success: function(text) {
    return showNotify({
      type: 'success',
      text
    });
  },
  error: function(text) {
    return showNotify({
      type: 'error',
      text
    });
  }
};

var css$a = ".nyamka-from-romano-userscript-dropdown {\n  position: relative;\n  display: inline-block;\n}\n.nyamka-from-romano-userscript-dropdown-button .caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid\\9 ;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n}\n.nyamka-from-romano-userscript-dropdown-content {\n  display: none;\n  position: absolute;\n  background-color: #D8D8C4;\n  min-width: 220px;\n  border: 1px solid #CCCCCC;\n  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n  z-index: 1;\n  padding: 0;\n}\n.nyamka-from-romano-userscript-dropdown-content li {\n  color: #333;\n  padding: 6px 15px;\n  text-decoration: none;\n  display: block;\n  line-height: 1.2;\n  cursor: pointer;\n}\n.nyamka-from-romano-userscript-dropdown-content li:hover, .nyamka-from-romano-userscript-dropdown-content li:focus {\n  background: #c3a63f;\n  color: black;\n}\n.nyamka-from-romano-userscript-dropdown-content li img {\n  width: 18px;\n  height: auto;\n  margin-right: 6px;\n}\n.nyamka-from-romano-userscript-dropdown-content.show {\n  display: block !important;\n}\n\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-dropdown-button {\n  border: 1px solid #CCCCCC;\n  padding: 5px 6px;\n  background: #F0F0EE;\n  text-align: center;\n  white-space: nowrap;\n  cursor: pointer;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-dropdown-button:hover, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-dropdown-button:focus {\n  background: #d8d8c4;\n}\n\nbody[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-dropdown-button {\n  color: #4f2d01;\n  background: white;\n  font-size: 12px;\n  margin-bottom: 5px;\n  margin-right: 5px;\n  padding: 4px 8px;\n  border: 1px solid #4f2d014d;\n  border-radius: 5px;\n}\nbody[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-dropdown-button:hover, body[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-dropdown-button:focus {\n  color: #4f2d01;\n  border-color: #4f2d014d;\n}\nbody[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-dropdown-content {\n  background-color: #f6ecda;\n  border-radius: 3px;\n  padding: 4px 0;\n}\nbody[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-dropdown-content li:hover, body[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-dropdown-content li:focus {\n  background: #c69e6b;\n}\n\nbody[data-nyamka-script=gikami-ru] .nyamka-from-romano-userscript-dropdown-content {\n  margin-left: 0 !important;\n  border-radius: 1px;\n}\nbody[data-nyamka-script=gikami-ru] .nyamka-from-romano-userscript-dropdown-content li:hover, body[data-nyamka-script=gikami-ru] .nyamka-from-romano-userscript-dropdown-content li:focus {\n  background: #55a4f8;\n  color: white;\n}";
n(css$a,{});

var watchForOutsideClick;

watchForOutsideClick = function(dropdownContent) {
  var callback;
  callback = function(event) {
    if (!event.target.matches(`.${CSS_PREFIX}-dropdown-button`)) {
      if (dropdownContent.classList.contains('show')) {
        dropdownContent.classList.remove('show');
        unsafeWindow.removeEventListener('click', callback);
      }
    }
  };
  unsafeWindow.addEventListener('click', callback);
};

var Dropdown = class Dropdown {
  constructor(title, items) {
    var i, item, len, liItem, ref;
    this.element = createElement(`<div class='${CSS_PREFIX}-dropdown'>
    <button class='${CSS_PREFIX}-dropdown-button'>${title} <span class='caret'></span></button>
    <ul class='${CSS_PREFIX}-dropdown-content' role='menu'>
    </ul>
</div>`);
    this.element.children[0].addEventListener('click', (event) => {
      event.preventDefault();
      this.element.children[1].classList.toggle('show');
      watchForOutsideClick(this.element.children[1]);
    });
    ref = items || [];
    for (i = 0, len = ref.length; i < len; i++) {
      item = ref[i];
      liItem = createElement(`<li role='menuitem'>${item.text}</li>`);
      if (item.onClick) {
        liItem.addEventListener('click', (function(item) {
          return function(event) {
            event.preventDefault();
            item.onClick(event, item);
          };
        })(item));
      }
      this.element.children[1].appendChild(liItem);
    }
    return;
  }

  open() {
    this.element.children[1].classList.add('show');
  }

  close() {
    this.element.children[1].classList.remove('show');
  }

};

var css$9 = ".nyamka-from-romano-userscript-modal-content {\n  text-align: left;\n}\n\nbody[data-nyamka-script=fanfics-me] #nyamka-from-romano-userscript-modals-container {\n  display: none;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content {\n  padding: 10px;\n  text-align: left;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content .form-inline {\n  margin-bottom: 0.7em;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content .form-inline label {\n  margin-bottom: 0.5em;\n  display: inline-block;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content .form-inline select {\n  border: 1px solid #CCCCCC;\n  padding: 5px 6px;\n  background: #F0F0EE;\n  text-align: center;\n  white-space: nowrap;\n  cursor: pointer;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content .form-inline select:hover, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content .form-inline select:focus {\n  background: #d8d8c4;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content h4, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content p {\n  margin-bottom: 0.5em;\n  text-align: left;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content ol {\n  text-align: left;\n  list-style: decimal;\n  padding-left: 2em;\n  margin-bottom: 0.5em;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-modal-content ol li {\n  margin-bottom: 0.5em;\n}\n\nbody[data-nyamka-script=gikami-ru] #nyamka-from-romano-userscript-modals-container .modal-header .modal-title {\n  order: 0;\n}\nbody[data-nyamka-script=gikami-ru] #nyamka-from-romano-userscript-modals-container .modal-header button.close {\n  order: 1;\n}\nbody[data-nyamka-script=gikami-ru] #nyamka-from-romano-userscript-modals-container .modal-header button.close span {\n  margin: 0;\n  padding: 0px 10px;\n}\nbody[data-nyamka-script=gikami-ru] #nyamka-from-romano-userscript-modals-container hr {\n  margin: 15px 0;\n}";
n(css$9,{});

var getJQuery, getModalType,
  indexOf$4 = [].indexOf;

getJQuery = function() {
  try {
    if ($) {
      return $;
    }
  } catch (error1) {
  }
  try {
    return jQuery;
  } catch (error1) {
  }
  return void 0;
};

getModalType = (function() {
  var modalType;
  modalType = null;
  return function() {
    var jq, test;
    if (!modalType) {
      jq = getJQuery();
      test = jq(createElement('<div></div>'));
      if (test.arcticmodal) {
        modalType = 'arctic';
      } else {
        modalType = 'bootstrap';
      }
    }
    return modalType;
  };
})();

var Modal = class Modal {
  constructor(options) {
    var closeButton, modalType, modalsContainer;
    this.options = options || {};
    modalsContainer = document.getElementById(`${CSS_PREFIX}-modals-container`);
    if (!modalsContainer) {
      modalsContainer = createElement(`<div id='${CSS_PREFIX}-modals-container'></div>`);
      document.body.appendChild(modalsContainer);
    }
    modalType = getModalType();
    if (modalType === 'arctic') {
      closeButton = "<div class='box-modal_close arcticmodal-close'>Закрыть</div>";
      if (this.options.disableClose) {
        closeButton = '';
      }
      this.element = createElement(`<div class='box-modal'>
    ${closeButton}
    <div>
        <div class='modal-title'>${this.options.title || ''}</div>
        <div class='${CSS_PREFIX}-modal-content'>
            ${this.options.content}
        </div>
        <div class='clear'></div>
    </div>
</div>`);
    } else if (modalType === 'bootstrap') {
      closeButton = `<button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
    <span aria-hidden="true">&times;</span>
</button>`;
      if (this.options.disableClose) {
        closeButton = '';
      }
      this.element = createElement(`<div class='modal fade' role='dialog' aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                ${closeButton}
                <h5 class="modal-title">${this.options.title || ''}</h5>
            </div>
            <div class="modal-body">
                ${this.options.content}
            </div>
        </div>
    </div>
</div>`);
    }
    modalsContainer.appendChild(this.element);
  }

  isVisible() {
    var modalType, modalsContainer;
    modalType = getModalType();
    if (modalType === 'arctic') {
      modalsContainer = document.getElementById(`${CSS_PREFIX}-modals-container`);
      if (!modalsContainer) {
        return false;
      }
      return this.element.parentNode !== modalsContainer;
    } else if (modalType === 'bootstrap') {
      return indexOf$4.call(this.element.classList, 'in') >= 0 || indexOf$4.call(this.element.classList, 'show') >= 0; // bootstrap4
    }
    return false;
  }

  show() {
    var jq, modalType;
    modalType = getModalType();
    jq = getJQuery();
    if (modalType === 'arctic') {
      jq(this.element).arcticmodal();
    } else if (modalType === 'bootstrap') {
      jq(this.element).modal({
        keyboard: !this.options.disableClose
      });
    }
  }

  close() {
    var jq, modalType;
    modalType = getModalType();
    jq = getJQuery();
    if (modalType === 'arctic') {
      try {
        jq(this.element).arcticmodal('close');
      } catch (error1) {
      }
    } else if (modalType === 'bootstrap') {
      jq(this.element).modal('hide');
    }
  }

  destroy() {
    var modalsContainer;
    this.close();
    modalsContainer = document.getElementById(`${CSS_PREFIX}-modals-container`);
    if (!modalsContainer) {
      return;
    }
    try {
      modalsContainer.removeChild(this.element);
    } catch (error1) {
    }
  }

};

var faviconImg$2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABpUExURU0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAE0HAEdwTDgyGKEAAAAjdFJOU//mkncNGYJUTNbuESH0m7DhRsD5QCnMpLdjjAe7ZjIEXsMAsLedawAAAOVJREFUOMulU0cSwkAM05Zk0wskgRTq/x/JFpghMyI54KtkW7ZlPHcCfxCKq1Gq5wQ91hlsDB2tMDYORKlurIU+4R0F1VAB6cGXN0ykAY7y4PN7NoWtXithUdGxMbWFYunTBdtDZMub5VvfmqCBJkltj0sf0U2WSBOBlb4V4YGmzQIu2S0KHNt3/sSOZbW7/i4qds0CuIf14EzPXX3mx0D9kCO9BLzhhqlhSo9n3FEaKggQOSd0w+TTk1+ejGIvv/1tWicg2XC1NdHSbtg+R6w3/+IU7zyOmLcJSu68nsx3CPO/3/0C6z9sqvXOqB8AAAAASUVORK5CYII=";

var favicon$2 = faviconImg$2;

var isCurrentSite$2 = function() {
  return location.host === 'ficbook.net';
};

var getChapterEditor$3 = function() {
  var baseEditorTab, container;
  //container = document.querySelector('div.text-editor-container')
  container = document.querySelector('form#savePartForm');
  if (!container) {
    return;
  }
  baseEditorTab = container.querySelector("a#jsToFicbookEditor");
  // обязательно переключаемся на обычный редактор
  if (baseEditorTab) {
    baseEditorTab.click();
  }
  return {
    title: container.querySelector("input#titleInput"),
    body: container.querySelector('textarea[name="content"]')
  };
};

var faviconImg$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAAqCAMAAAA3b6P4AAACslBMVEWXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACXAACpit0XAAAA5XRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESFBUWFxgZGhscHR4fICEiIyQlJygpKissLi8wMTM0NTY3ODk6Ozw9PkBBQkNFR0hJSktMTU5PUFFSVFVWV1hZWltcXV5fY2RlZmhpamtsbW5vcHFyc3V2d3p7fX5/gIGCg4SFhoeIiouMjY6PkJGSlJWWl5iZmpucnZ6foKGipKWnqKmrrK2ur7CxsrO0tba3uLm6u7y9vr/AwsPFxsfIycrLzM7P0NLT1NXW19na29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+b1plRQAABBRJREFUSMedlvtb1FUQxgcEBMtQggUCxVACu1ApYmRmUqESkCkUREaS4h3JCDONEFPBoBQCJcDIGxkGKYGBkgGSAq4BARIXWWA//0c/7J39LvY0P82cd97nzJlzZuaIKvBRmVqmP/XOrrQNIbOVsNfyjq/3nYrs/1GlWjPe90v28wrgnOiDP7ddeN9WAE47O9DLQI6PksfDMWVjnfuDlCC3b4HbpYcOFjUC9UHKWywtQZNpjTmdgu60uSIis979HRr8bIT4YjVDqV6TFlPgVqjxjBegyM4MfSPepDsm9tAcb5mwHnpfMJmq39C+ZLQCytrfM3deUAylwWYL2+BTc4eICU4aNk/pLgm0DNQuqY+/Nk8zmuX0PmFx83V0eIiIyOPlmq3Wpw+tg1OG7Lk1c8YSzmZsqYhIhLp7pVLy3AugLUqnz73L15boHogUke1cW6ic+5n7QJvhLCLic4cTlmAGRIhdFhfdlcmPpUjCfSj3FpEZ9dQ5W6CFDPrLIc652rj2FWUi0f1wdZGI5DERbg56dlIvO6hyt1UTe8pEZKUa1JEiMVBhDu6GzbHc8LFZUSXHRUTC/oShBHG5DKkmbPUg1xPujSyxSba/sltEREJuA9tl0Qikz9JD8f1ovrjOVtvF7NexRqcsVgOfSIIW6pMDVe7z3zwLHDjFeSfb7GV/P6fXwrqATInuAvraWruB0U2bx4aenqKRJA/MMairhoAsCczr1TWH8dPLfO7w2VRtqKDZFFjsOHBY5JmNX549dzQ5ROQkLY9MQbZvKDCzNgHkGCvaLRGOznS2zQ6e2GJu7gXY7/3kiqQj52ubbo9C143asm2hLsrsD3jV8l2PAbcGsBRN9VuK7B+Gvc3N+WnDKEuqAtlz8FdT37J/5dhdk3vbxUb4Y23UusT08nZAobyTSDeoD8VUmKja3DCVcylk6LB5J7Qcts54Ncv13PVXDMQWLfC9o4SOMxqmd/TqocSKvZirTiIiTusM3NbM5aq9AGccPoYaB73jwn/ItWJ/xQ4RkTWVOupg4VqViEw7ApBTA5l6P9/T8LrV1veHA0RCirQANKU/q193KdZHEiUiMjc2vxUO2E9ml5MlXhn9ANRsVJmAWdUAjAaLiKoRaN9pRX6bdv9VjQD8FGv5HgNuAjS5ioj3Hd3jnyS+7RQfA+BSpONkMFwD5OvOVzEClZNmuV0hE/cAqqOmK7yjD4ENen1Jhpo+y6xt1SXmWoKNEtzS8qOn0Zi3jw7z1hg+BNCZ5m2z/DxmmFuZ7DKbATeBsYKgKX8/C6JNehjfmEZ3DlAb8YC/k1dVlrHx5LHaNNZ7GElzlQdJwOXaOA8REb9sSh2Myw5xn78s/0Fmpzc0V+TmVY1y2lP+h3jF5l9qvPpdnP4I/wITXDY67Xw1sAAAAABJRU5ErkJggg==";

var favicon$1 = faviconImg$1;

var isCurrentSite$1 = function() {
  return location.host === 'archiveofourown.org';
};

var getChapterEditor$2 = function() {
  return void 0;
};

var isCurrentSite = function() {
  return location.host === 'gikami.ru';
};

var getChapterEditor$1 = function() {
  var body, bodyEditor, container, editor, i, len, ref;
  container = document.querySelector('form[name="form_book"]');
  if (!container) {
    return;
  }
  ref = unsafeWindow._mediumEditors || [];
  for (i = 0, len = ref.length; i < len; i++) {
    editor = ref[i];
    if (editor && editor.elements[0]) {
      if (editor.elements[0].id.startsWith('medium-editor-book')) {
        bodyEditor = editor;
        break;
      }
    }
  }
  if (!bodyEditor) {
    throw "Can't find editor for body!";
  }
  // создаем "прокси" для того, чтоб не ломать код, который ожидает обычный textarea для тела редактора
  body = new Proxy({}, {
    get: function(target, property) {
      if (property === 'addEventListener' || property === 'removeEventListener') {
        return function() {
          return bodyEditor.elements[0][property].apply(bodyEditor.elements[0], arguments);
        };
      }
      if (property === 'value') {
        return bodyEditor.getContent();
      }
      throw "Not implemented";
    },
    set: function(target, property, value) {
      if (property !== 'value') {
        throw "Not implemented";
      }
      bodyEditor.elements[0].click();
      bodyEditor.elements[0].focus();
      bodyEditor.selectAllContents();
      bodyEditor.pasteHTML(value + '', {
        cleanAttrs: [],
        cleanTags: [],
        unwrapTags: []
      });
    }
  });
  return {
    title: container.querySelector('input[name="title"]'),
    body: body
  };
};

var faviconImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABxVBMVEUAAABIU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU15IU17////OEFtSAAAAlXRSTlMAAAc5Bj3XQgiluBBK8vtvBA633CsVQF75nn1IF8j0UoPDFHD9/vjJG41rIdbq6e1UAkTAvqB/dDw/me7mPi7h5ToJJOtcGZWfLWSh2free2Hs221grOi7l8zHHaqCvN9Q1LQ7tTRf50cpesq9xEnRNobVC/YBhAocI1qSGqao7+B1LzPjwSjkr0sgxYv8cSeKN4cYA0t1F5MAAAHHSURBVDjLlZPpOxtRFMbnjWBCERp7GgnJqKUJQRt7GlsRYmsJuth3SsRWO7XV3p7/151EZDKeZzw9X+6Z+77zmzn3nsNx/xdQRamhpCM6JhYKDvAaiouHAuBVAiUmPSIArRyG5BQieq17NKSmyQxAegYzUKYKgc9lZcsN+jeiToYcJoA3mnLlgDwzWQTmyH8L6AsMhXJAUTHRuywrka2k1F5G5c8ARvZyBf8+7oOjsqqaamrlgLp6IudHuBpyNI1E1qbm0ggDtC1k+JTW2tbu7mCkziRPVwQBcHT39PZ9/mIW67D1D3gHhyIB/HDx128CBeO7u8MdJQP8GBm1UThixiJ/EfHjTiEsJ6ZMoFl6acCkYAnrUwPT6pnyWQkD+jkJvnp+oW9xiZw/nxyBQ5ZExvLMCluGfQjpOrdUXzW6/GtsFUIngXWNVO9sUwEbXpaNbCIIaFoNywmaOvGysSXu/dIGOmPbG1It1h07H+BifZc972VDBMwGKxT2xw8On5oeR8ds7/c2y056iMynZ57zC5W0cn/eH5OpbIsll3Tlvb5RP+tgrY+Fi4Pu2OrRKwwLbhfG/ErTdnc/pDRrHGf/q6xz/17QHwAqy6S9PqXuBQAAAABJRU5ErkJggg==";

var favicon = faviconImg;

var getChapterEditor = function() {
  if (isCurrentSite$3()) {
    return getChapterEditor$4();
  }
  if (isCurrentSite$2()) {
    return getChapterEditor$3();
  }
  if (isCurrentSite$1()) {
    return getChapterEditor$2();
  }
  if (isCurrentSite()) {
    return getChapterEditor$1();
  }
  return void 0;
};

var fanficsMePreprocess, ficbookNetPreprocess, lineToParagraph;

fanficsMePreprocess = function(text, options) {
  var converted, end, getNoteMark, j, len, line, note, noteTag, notes, ref, start;
  options = options || {};
  noteTag = options.noteTag || 'note';
  converted = [];
  notes = [];
  getNoteMark = function(index, inText) {
    if (options.noteType === '*') {
      return "*".repeat(index);
    }
    // number
    if (inText) {
      return `(${index})`;
    }
    return `${index})`;
  };
  ref = text.split('\n').filter(function(line) {
    return !!line.trim();
  });
  for (j = 0, len = ref.length; j < len; j++) {
    line = ref[j];
    start = line.indexOf(`<${noteTag}>`);
    end = line.indexOf(`</${noteTag}>`);
    if (start > -1) {
      note = line.substring(start + noteTag.length + 2, end);
      line = line.substring(0, start) + "<b>" + getNoteMark(notes.length + 1, true) + "</b>" + line.substr(end + noteTag.length + 3);
      notes.push(note);
    }
    converted.push(line);
  }
  converted = converted.join('\n');
  if (notes.length) {
    converted = converted + "\n<center>---</center>\n<i>ПРИМЕЧАНИЯ:</i>\n" + notes.map(function(note, index) {
      return `<i><b>${getNoteMark(index + 1)}</b> — ${note}</i>`;
    }).join('\n');
  }
  return converted;
};

ficbookNetPreprocess = function(text, options) {
  var converted, j, len, line, ref;
  options = options || {};
  if (options.convertNoteTag) {
    text = text.replaceAll("<footnote>", `<${options.convertNoteTag}>`).replaceAll("</footnote>", `</${options.convertNoteTag}>`);
  }
  if (options.extractNoteTag) {
    options.noteTag = options.noteTag || 'footnote';
    text = fanficsMePreprocess(text, options);
  }
  converted = [];
  ref = text.split('\n');
  for (j = 0, len = ref.length; j < len; j++) {
    line = ref[j];
    if (line.startsWith('<tab>')) {
      line = line.substr(5);
    }
    converted.push(line);
  }
  return converted.join('\n');
};

lineToParagraph = function(line, nextLine, paragraphType) {
  nextLine = nextLine || '';
  if (!line.trim()) {
    return line;
  }
  if (paragraphType === 'tab' && !line.startsWith('<center>') && !line.endsWith('</center>') && line) {
    return `<tab>${line}`;
  }
  if (paragraphType === '4-spaces' && !line.startsWith('<center>') && !line.endsWith('</center>')) {
    return `&nbsp;&nbsp;&nbsp;&nbsp;${line}`;
  }
  if (paragraphType === '2em' && !line.startsWith('<center>') && !line.endsWith('</center>')) {
    return `<2em>${line}`;
  }
  if (paragraphType === 'new-line') {
    if (!line.startsWith('<center>') && !line.endsWith('</center>') && nextLine.trim()) {
      return `${line}\n&nbsp;`;
    }
  }
  return line;
};

var fanficsMe = {
  toFicbookNet: function(text) {
    var converted, i, j, len, line, lines;
    converted = [];
    text = fanficsMePreprocess(text, {
      noteType: storage.exportNotesStrategyForFicbookNet
    });
    text = text.replaceAll('<u>', '').replaceAll('</u>', '').replaceAll('<hr>', '<tab>\n').replaceAll('<empty-line>', '\n<tab>');
    lines = text.split('\n');
    for (i = j = 0, len = lines.length; j < len; i = ++j) {
      line = lines[i];
      if (!line.trim()) {
        continue;
      }
      if (line === '<tab>') {
        converted.push(line);
        continue;
      }
      if (line.indexOf('***') > -1 || line.indexOf('* * *') > -1 && line.indexOf('<center>') === -1) {
        line = `<center>${line}</center>`;
      } else if (line.indexOf('<center>') === -1 && line.indexOf('<right>') === -1) {
        line = lineToParagraph(line, lines[i + 1], storage.exportParagraphStrategyForFicbookNet);
      }
      converted.push(line);
    }
    return converted.join('\n');
  },
  toAuthorToday: function(text) {
    var converted, j, len, line, lines;
    converted = [];
    text = fanficsMePreprocess(text, {
      noteType: storage.exportNotesStrategyForAuthorToday
    });
    text = text.replaceAll('<hr>', '&nbsp;').replaceAll('<empty-line>', '&nbsp;');
    lines = text.split('\n');
    for (j = 0, len = lines.length; j < len; j++) {
      line = lines[j];
      if (line.indexOf('***') > -1 || line.indexOf('* * *') > -1) {
        line = line.replaceAll('<center>', '').replaceAll('</center>', '');
        line = `<p style="text-align: center;">${line}</p>`;
      } else if (line.indexOf('<center>') > -1) {
        line = line.replace("<center>", "<p style=\"text-align: center;\">").replace('</center>', '</p>');
      } else if (line.indexOf('<right>') > -1) {
        line = line.replace("<right>", "<p style=\"text-align: right;\">").replace('</right>', '</p>');
      } else {
        line = `<p>${line}</p>`;
      }
      converted.push(line);
    }
    return converted.join('\n');
  },
  toAO3: function(text) {
    var converted, i, j, len, line, lines;
    converted = [];
    text = fanficsMePreprocess(text, {
      noteType: storage.exportNotesStrategyForAO3
    });
    text = text.replaceAll('<i>', '<em>').replaceAll('</i>', '</em>').replaceAll('<s>', '<strike>').replaceAll('</s>', '</strike>').replaceAll('<hr>', '<hr/>').replaceAll('<empty-line>', '&nbsp;');
    lines = text.split('\n');
    for (i = j = 0, len = lines.length; j < len; i = ++j) {
      line = lines[i];
      if (line.indexOf('***') > -1 || line.indexOf('* * *') > -1) {
        line = line.replaceAll('<center>', '').replaceAll('</center>', '');
        line = `<p align='center'>${line}</p>`;
      } else if (line === '<center>---</center>') {
        line = "<hr/>";
      } else if (line.indexOf('<center>') > -1) {
        line = line.replace("<center>", "<p align='center'>").replace('</center>', '</p>');
      } else if (line.indexOf('<right>') > -1) {
        line = line.replace("<right>", "<p align='right'>").replace('</right>', '</p>');
      } else if (line.indexOf('<hr/>') === -1) {
        line = lineToParagraph(line, lines[i + 1], storage.exportParagraphStrategyForAO3);
        line = line.split('\n').join("</p><p>");
        line = `<p>${line}</p>`;
      }
      converted.push(line);
    }
    return converted.join('\n');
  }
};

var ficbookNet = {
  toFanficsMe: function(text) {
    return ficbookNetPreprocess(text, {
      convertNoteTag: 'note'
    });
  },
  toAuthorToday: function(text) {
    var converted, j, len, line, ref;
    converted = [];
    text = ficbookNetPreprocess(text, {
      extractNoteTag: true,
      noteType: storage.exportNotesStrategyForAuthorToday
    });
    ref = text.split('\n');
    for (j = 0, len = ref.length; j < len; j++) {
      line = ref[j];
      if (!line.trim()) {
        line = '&nbsp;';
      }
      if (line.indexOf('***') > -1 || line.indexOf('* * *') > -1) {
        line = line.replaceAll('<center>', '').replaceAll('</center>', '');
        line = `<p style='text-align: center;'>${line}</p>`;
      } else if (line.indexOf('<center>') > -1) {
        line = line.replace("<center>", "<p style='text-align: center;'>").replace('</center>', '</p>');
      } else if (line.indexOf('<right>') > -1) {
        line = line.replace("<right>", "<p style='text-align: right;'>").replace('</right>', '</p>');
      } else {
        line = `<p>${line}</p>`;
      }
      converted.push(line);
    }
    return converted.join('\n');
  },
  toAO3: function(text) {
    var converted, i, j, len, line, lines;
    converted = [];
    text = ficbookNetPreprocess(text, {
      extractNoteTag: true,
      noteType: storage.exportNotesStrategyForAO3
    });
    text = text.replaceAll('<i>', '<em>').replaceAll('</i>', '</em>').replaceAll('<s>', '<strike>').replaceAll('</s>', '</strike>');
    lines = text.split('\n');
    for (i = j = 0, len = lines.length; j < len; i = ++j) {
      line = lines[i];
      if (!line.trim()) {
        line = '&nbsp;';
      }
      if (line.indexOf('***') > -1 || line.indexOf('* * *') > -1) {
        line = line.replaceAll('<center>', '').replaceAll('</center>', '');
        line = `<p align='center'>${line}</p>`;
      } else if (line.indexOf('<center>') > -1) {
        line = line.replace("<center>", "<p align='center'>").replace('</center>', '</p>');
      } else if (line.indexOf('<right>') > -1) {
        line = line.replace("<right>", "<p align='right'>").replace('</right>', '</p>');
      } else {
        line = lineToParagraph(line, lines[i + 1], storage.exportParagraphStrategyForAO3);
        line = line.split('\n').join("</p><p>");
        line = `<p>${line}</p>`;
      }
      converted.push(line);
    }
    return converted.join('\n');
  },
  toGikami: function(text) {
    var converted, i, j, len, line, lines;
    converted = [];
    text = ficbookNetPreprocess(text, {
      extractNoteTag: true
    });
    lines = text.split('\n');
    for (i = j = 0, len = lines.length; j < len; i = ++j) {
      line = lines[i];
      if (!line.trim()) {
        line = '&nbsp;';
      }
      if (line.indexOf('***') > -1 || line.indexOf('* * *') > -1) {
        line = line.replaceAll('<center>', '').replaceAll('</center>', '');
        line = `<p align='center'>${line}</p>`;
      } else if (line.indexOf('<center>') > -1) {
        line = line.replace("<center>", "<p style='text-align: center;'>").replace('</center>', '</p>');
      } else if (line.indexOf('<right>') > -1) {
        line = line.replace("<right>", "<p style='text-align: right;'>").replace('</right>', '</p>');
      } else {
        line = lineToParagraph(line, lines[i + 1], storage.exportParagraphStrategyForGikami);
        line = line.split('\n').join("</p><p>");
        line = `<p>${line}</p>`.replace("<p><2em>", "<p style='text-indent: 2em'>");
      }
      converted.push(line);
    }
    return converted.join('\n');
  }
};

var execute = async function(text) {
  var tp;
  try {
    /*
        настройки такие же, как и на ficbook.net
    */
    Typograf;
  } catch (error1) {
    await loadOnce.js('https://cdn.jsdelivr.net/npm/typograf@6.12.1/dist/typograf.min.js');
    Typograf.addRule({
      name: "common/other/typographicSpaces",
      handler: (t) => {
        return t.replace("! ≫", "!≫");
      }
    });
  }
  tp = new Typograf({
    locale: ['ru']
  });
  tp.setSetting("common/punctuation/quote", "ru", {
    left: "«",
    right: "»",
    removeDuplicateQuotes: true
  });
  tp.disableRule("common/nbsp/*");
  tp.disableRule("ru/nbsp/*");
  tp.disableRule("ru/dash/koe");
  tp.disableRule("ru/dash/to");
  tp.disableRule("ru/punctuation/ano");
  return tp.execute(text || '');
};

var SVG_ICON_FLOWER_EMPTY = "<svg focusable=\"false\" data-icon=\"flower\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M461.5 256c30.7-26.8 50.5-65.8 50.5-109.7C512 65.5 446.5 0 365.7 0 321.8 0 282.8 19.8 256 50.5 229.2 19.8 190.2 0 146.3 0 65.5 0 0 65.5 0 146.3c0 43.9 19.8 82.9 50.5 109.7C19.8 282.8 0 321.8 0 365.7 0 446.5 65.5 512 146.3 512c43.9 0 82.9-19.8 109.7-50.5 26.8 30.7 65.8 50.5 109.7 50.5 80.8 0 146.3-65.5 146.3-146.3 0-43.9-19.8-82.9-50.5-109.7zm-95.8 224c-32.9 0-63.3-14-85.6-39.5L256 412.9l-24.1 27.6C209.6 466 179.2 480 146.3 480 83.3 480 32 428.7 32 365.7c0-32.9 14-63.3 39.5-85.6L99.1 256l-27.6-24.1C46 209.6 32 179.2 32 146.3 32 83.3 83.3 32 146.3 32c32.9 0 63.3 14 85.6 39.5L256 99.1l24.1-27.6C302.4 46 332.8 32 365.7 32c63 0 114.3 51.3 114.3 114.3 0 32.9-14 63.3-39.5 85.6L412.9 256l27.6 24.1c25.5 22.3 39.5 52.7 39.5 85.6 0 63-51.3 114.3-114.3 114.3zM256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 160c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\" class=\"\"></path></svg>\n";

var SVG_ICON_FLOWER_FULL = "<svg focusable=\"false\" data-icon=\"flower\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M480 160A128 128 0 0 0 352 32c-38.45 0-72.54 17.3-96 44.14C232.54 49.3 198.45 32 160 32A128 128 0 0 0 32 160c0 38.45 17.3 72.54 44.14 96C49.3 279.46 32 313.55 32 352a128 128 0 0 0 128 128c38.45 0 72.54-17.3 96-44.14C279.46 462.7 313.55 480 352 480a128 128 0 0 0 128-128c0-38.45-17.3-72.54-44.14-96C462.7 232.54 480 198.45 480 160zM256 336a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\" class=\"\"></path></svg>\n";

var SVG_ICON_INDENT_EMPTY = "<svg focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path fill=\"currentColor\" d=\"M27.31 148.7a15.63 15.63 0 0 0-11.17-4.7A16 16 0 0 0 0 160v192a16 16 0 0 0 16.13 16 15.58 15.58 0 0 0 11.18-4.7l96-96a16 16 0 0 0 0-22.62zM32 313.36V198.64L89.37 256zM440 48H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8zm0 384H8a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h432a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8zm0-128H200a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h240a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8z\" class=\"\"></path></svg>\n";

var SVG_ICON_INDENT_FULL = "<svg focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path fill=\"currentColor\" d=\"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\" class=\"\"></path></svg>\n";

var SVG_ICON_PASTE = "<svg focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"><path fill=\"currentColor\" d=\"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"></path></svg>\n";

var IMG_HOW_TO_EXPORT = "data:image/jpeg;base64,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";

var css$8 = ".nyamka-from-romano-userscript-markup-tools-autoformat .autoformat-active svg, .nyamka-from-romano-userscript-markup-tools-autoformat .autoformat svg, .nyamka-from-romano-userscript-markup-tools-autoformat .paste svg, .nyamka-from-romano-userscript-markup-tools-autotab .autoformat-active svg, .nyamka-from-romano-userscript-markup-tools-autotab .autoformat svg, .nyamka-from-romano-userscript-markup-tools-autotab .paste svg, .nyamka-from-romano-userscript-markup-tools-paste .autoformat-active svg, .nyamka-from-romano-userscript-markup-tools-paste .autoformat svg, .nyamka-from-romano-userscript-markup-tools-paste .paste svg {\n  width: 11px;\n}\n.nyamka-from-romano-userscript-markup-tools-autoformat .autoformat-active, .nyamka-from-romano-userscript-markup-tools-autotab .autoformat-active, .nyamka-from-romano-userscript-markup-tools-paste .autoformat-active {\n  display: none;\n}\n.nyamka-from-romano-userscript-markup-tools-autoformat.active .autoformat-active, .nyamka-from-romano-userscript-markup-tools-autotab.active .autoformat-active, .nyamka-from-romano-userscript-markup-tools-paste.active .autoformat-active {\n  display: inline-block;\n}\n.nyamka-from-romano-userscript-markup-tools-autoformat.active .autoformat, .nyamka-from-romano-userscript-markup-tools-autotab.active .autoformat, .nyamka-from-romano-userscript-markup-tools-paste.active .autoformat {\n  display: none;\n}\n\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autoformat, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autotab {\n  border: 1px solid #CCCCCC;\n  padding: 5px 6px;\n  background: #F0F0EE;\n  text-align: center;\n  white-space: nowrap;\n  cursor: pointer;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autoformat:hover, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autoformat:focus, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autotab:hover, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autotab:focus {\n  background: #d8d8c4;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autoformat.active, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autotab.active {\n  background: #c3a63f;\n  color: black;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autoformat.active:hover, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools-autotab.active:hover {\n  background: #cfb866;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-markup-tools button {\n  line-height: 15px;\n  padding: 4px 6px;\n  font-size: 14px;\n  margin-right: 5px;\n  margin: 5px 2px;\n  margin-left: 0;\n}\nbody[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-markup-tools {\n  margin-top: 6px;\n}\nbody[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-markup-tools button {\n  margin-bottom: 0;\n}\n\nbody[data-nyamka-script=gikami-ru] .nyamka-from-romano-userscript-markup-tools {\n  margin-top: 6px;\n}\nbody[data-nyamka-script=gikami-ru] .nyamka-from-romano-userscript-markup-tools button {\n  padding: 3px 7px;\n  margin-right: 6px;\n  font-weight: normal;\n  margin-bottom: 6px;\n  font-size: 14px;\n}\nbody[data-nyamka-script=gikami-ru] form.form_book input.editor-title, body[data-nyamka-script=gikami-ru] form.form_book .medium-editor-book-element {\n  border: 1px solid #dedfe2;\n  border-radius: 8px;\n  padding-left: 5px;\n  padding-right: 5px;\n}\nbody[data-nyamka-script=gikami-ru] form.form_book .card-footer {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  border-radius: 0;\n  background: #23282d;\n}";
n(css$8,{});

var getItemAsString = function(item) {
  return new Promise(function(resolve, reject) {
    item.getAsString(resolve);
  });
};

var pasteModal = (function() {
  var modal, onClipboardPasteRmWatcher;
  modal = null;
  onClipboardPasteRmWatcher = null;
  return function() {
    if (modal) {
      modal.destroy();
    }
    modal = new Modal({
      title: "Вставка html-текста с сохранением форматирования",
      content: `<div class='${CSS_PREFIX}-chapters-importer-modal'>
    <div class="${CSS_PREFIX}-chapters-importer-modal-paste-area visible" style="margin: 0">
        <div class='${CSS_PREFIX}-chapters-importer-modal-svg-paste'>
            ${SVG_ICON_PASTE}
        </div>
        <p><b>Вставьте html-текст из буфера обмена по Ctrl+V</b></p>
        <div><textarea class='form-control' placeholder="Вставьте текст из буфера обмена в это текстовое поле"></textarea></div>
    </div>
</div>`
    });
    return new Promise(function(resolve, reject) {
      onClipboardPasteRmWatcher = onClipboardPaste(async function(clipboardData) {
        var data, itemHtml, itemText, items;
        if (!modal || !modal.isVisible()) {
          onClipboardPasteRmWatcher();
          onClipboardPasteRmWatcher = null;
          return;
        }
        data = null;
        items = Array.prototype.slice.call(clipboardData.items);
        itemText = items.find(function(item) {
          return item.type === 'text/plain';
        });
        itemHtml = items.find(function(item) {
          return item.type === 'text/html';
        });
        if (itemHtml) {
          data = (await getItemAsString(itemHtml));
        } else if (itemText) {
          data = (await getItemAsString(itemText));
        }
        if (data) {
          onClipboardPasteRmWatcher();
          onClipboardPasteRmWatcher = null;
          modal.destroy();
          resolve(data);
        }
      });
      modal.show();
    });
  };
})();

var addTabsToText, exportChapterText, getOnFormatButtonClickFunction, initMarkupTools, onShowSettingsClick,
  indexOf$3 = [].indexOf;

exportChapterText = async function(exportProvider) {
  var editor, modifier, text;
  modifier = exportProvider.split(':')[1];
  exportProvider = exportProvider.split(':')[0];
  editor = getChapterEditor();
  if (!editor || !editor.body) {
    notification.error('Не получилось найти редактор текста на странице');
    return;
  }
  text = editor.body.value || '';
  if (isCurrentSite$3()) {
    text = fanficsMe[`to${exportProvider}`](text);
  } else if (isCurrentSite$2()) {
    text = ficbookNet[`to${exportProvider}`](text);
    if (exportProvider === 'FanficsMe' && modifier === 'blog') {
      text = text.replaceAll("<i>", "[i]").replaceAll("</i>", "[/i]").replaceAll("<b>", "[b]").replaceAll("</b>", "[/b]").replaceAll("<s>", "[s]").replaceAll("</s>", "[/s]").replaceAll("<center>", "").replaceAll("</center>", "").replaceAll("<right>", "").replaceAll("</right>", "").replaceAll("<hr>", "***");
    }
  }
  (await copyToClipboard(text, 'text/html'));
  notification.success('Текст скопирован в буфер обмена!');
};

if (isCurrentSite()) {
  addTabsToText = function(text) {
    var formatted, i, len, line, ref;
    formatted = [];
    text = text.split("</p>").join("</p>\n");
    ref = text.split('\n');
    for (i = 0, len = ref.length; i < len; i++) {
      line = ref[i];
      if (line.indexOf("<center>") === -1 && line.indexOf("<right>") === -1 && line.indexOf('***') === -1 && line.indexOf('* * *') === -1 && line.indexOf('text-indent: 2em') === -1 && line.trim()) {
        line = line.replace("<p>", "<p style='text-indent: 2em'>");
      }
      formatted.push(line);
    }
    return formatted.join('\n');
  };
} else {
  addTabsToText = function(text) {
    var formatted, i, len, line, ref;
    formatted = [];
    ref = text.split('\n');
    for (i = 0, len = ref.length; i < len; i++) {
      line = ref[i];
      if (line.indexOf("<center>") === -1 && line.indexOf("<right>") === -1 && line.indexOf('***') === -1 && line.indexOf('* * *') === -1 && !line.startsWith('<tab>') && line.trim()) {
        line = `<tab>${line}`;
      }
      formatted.push(line);
    }
    return formatted.join('\n');
  };
}

getOnFormatButtonClickFunction = function(transformFunction) {
  var textBeforeFormat;
  textBeforeFormat = null;
  return async function(event) {
    var cleanTextBeforeFormat, editor;
    event.preventDefault();
    if (textBeforeFormat !== null && indexOf$3.call(this.classList, 'active') >= 0) {
      // нужно восстановление текста
      editor = getChapterEditor();
      if (!editor || !editor.body) {
        return;
      }
      editor.body.value = textBeforeFormat;
      this.classList.remove('active');
      return;
    }
    editor = getChapterEditor() || {};
    if (!editor.body || !editor.body.value || !editor.body.value.trim()) {
      return;
    }
    cleanTextBeforeFormat = () => {
      this.classList.remove('active');
      textBeforeFormat = null;
      editor = getChapterEditor() || {};
      if (!editor.body) {
        return;
      }
      ['input', 'cut', 'paste'].forEach(function(eventName) {
        editor.body.removeEventListener(eventName, cleanTextBeforeFormat);
      });
    };
    // следим за тем, что если текст изменился, то и отменить форматирование уже нельзя
    textBeforeFormat = editor.body.value;
    editor.body.value = (await transformFunction(editor.body.value));
    this.classList.add('active');
    ['input', 'cut', 'paste'].forEach(function(eventName) {
      editor.body.addEventListener(eventName, cleanTextBeforeFormat);
    });
  };
};

onShowSettingsClick = (function() {
  var getNotesSettings, modal;
  modal = null;
  getNotesSettings = function(siteName) {
    if (!isCurrentSite$3() && !isCurrentSite$2()) {
      return '';
    }
    return `<div class='form-group form-inline'>
    <label>Экспортировать сноски как...</label>
    <select class='form-control input-sm' data-property='exportNotesStrategyFor${siteName}'>
        <option value='*'>звездочки, пример: *</option>
        <option value='number'>цифры, пример: (1)</option>
    </select>
</div>`;
  };
  return function() {
    var i, len, property, ref, selectElement, settings;
    if (modal) {
      modal.destroy();
    }
    settings = [];
    if (isCurrentSite$3()) {
      settings.push(`<h4>Настройки экспорта в Ficbook-разметку</h4>
<div class='form-group form-inline'>
    <label>Разделение абзацев c помощью...</label>
    <select class='form-control input-sm' data-property='exportParagraphStrategyForFicbookNet'>
        <option value='tab'>&lt;tab&gt; в начале предложений</option>
        <option value=''>никак не отделять</option>
    </select>
</div>
${getNotesSettings('FicbookNet')}`);
    }
    settings.push(`<h4>Настройки экспорта в AO3-разметку</h4>
<div class='form-group form-inline'>
    <label>Красная строка с помощью...</label>
    <select class='form-control input-sm' data-property='exportParagraphStrategyForAO3'>
        <option value='4-spaces'>4-х пробелов в начале предложений</option>
        <option value=''>никак не отделять</option>
    </select>
</div>
${getNotesSettings('AO3')}`);
    if (isCurrentSite$3() || isCurrentSite$2()) {
      settings.push(`<h4>Настройки экспорта в AuthorToday-разметку</h4>
${getNotesSettings('AuthorToday')}`);
    }
    modal = new Modal({
      title: "Настройки и помощь",
      content: `${settings.join('<hr/>')}
<hr/>
<h4>Помощь</h4>
<p>При нажатии на "экспорт" текст главы из этой страницы будет конвертирован в верстку выбранного типа и скопирован в буфер обмена.</p>
<p>После этого вы можете перейти на другой сайт и просто вставить текст в редактор.</p>
<p>Если верстка, на ваш взгляд, вставилась неправильно, то перейдите в режим редактирования html и вставьте заново текст (на скриншоте ниже показано на какие кнопки нужно нажимать).</p>
<img style="width: 100%; max-width: 450px;" src="${IMG_HOW_TO_EXPORT}">
<hr/>
<p><b>ВНИМАНИЕ! Не вся верстка может быть конвертирована! Например:</b></p>
<ol>
    <li>тег <b>&lt;hr&gt;</b> в верстке для AuthorToday и Ficbook будет заменен пустой строкой</li>
    <li>перечеркнутые слова с помощью тега <b>&lt;s&gt;</b> в верстке для AuthorToday скорее всего пропадут (какой-то внутренний баг их редактора текста)</li>
    <li>на AO3 нет такого понятия как "красная строка", поэтому вы сами должны выбрать, как должны разделяться абзацы при экспорте</li>
    <li>теги сносок <b>&lt;note&gt;</b> и <b>&lt;footnote&gt;</b> при невозможности конвертирования будут указаны как "ПРИМЕЧАНИЯ" в конце текста</li>
</ol>`
    });
    ref = modal.element.querySelectorAll('select');
    for (i = 0, len = ref.length; i < len; i++) {
      selectElement = ref[i];
      property = selectElement.getAttribute('data-property');
      if (!property) {
        continue;
      }
      selectElement.value = storage[property];
      selectElement.addEventListener('change', function() {
        property = this.getAttribute('data-property');
        storage[property] = this.value;
        storage.saveData();
      });
    }
    return modal.show();
  };
})();

initMarkupTools = function() {
  var autoFormatButton, autoTabButton, container, dropdown, exporterItems, mEditor, pasteButton, toolbar;
  if (isCurrentSite$3()) {
    container = document.getElementsByClassName('TextEditorContainer')[0];
  } else if (isCurrentSite$2()) {
    //container = document.querySelector('.text-editor-container .editor-section')
    container = document.querySelector('.editor-section');
  } else if (isCurrentSite()) {
    mEditor = document.querySelector('textarea[name="content"]');
    if (mEditor) {
      mEditor.parentNode.insertBefore(createElement("<div></div>"), mEditor.parentNode.children[0]);
      container = mEditor.parentNode.children[0];
    }
  }
  if (!container) {
    setTimeout(initMarkupTools, 500);
    return;
  }
  if (container.querySelector(`.${CSS_PREFIX}-markup-tools`)) {
    return;
  }
  exporterItems = [];
  if (!isCurrentSite$2()) {
    exporterItems.push({
      text: `<img src='${favicon$2}'>Ficbook-разметку`,
      onClick: function() {
        exportChapterText('FicbookNet');
      }
    });
  }
  if (!isCurrentSite$3()) {
    exporterItems.push({
      //text: 'Fanfics-разметку (фанфики)'
      text: `<img src='${favicon$3}'>Fanfics-разметку`,
      onClick: function() {
        exportChapterText('FanficsMe');
      }
    });
  }
  /*
  exporterItems.push({
      text: 'Fanfics-разметку (блогозаписи)'
      onClick: ()->
          exportChapterText('FanficsMe:blog')
          return
  })
  */
  // остальные
  exporterItems.push({
    text: `<img src='${favicon}'>Author.today-разметку`,
    onClick: function() {
      exportChapterText('AuthorToday');
    }
  });
  exporterItems.push({
    text: `<img src='${favicon$1}'>AO3-разметку`,
    onClick: function() {
      exportChapterText('AO3');
    }
  });
  /*
  if !gikami.isCurrentSite()
      exporterItems.push({
          text: 'Gikami-разметку'
          onClick: ()->
              exportChapterText('Gikami')
              return
      })
  */
  exporterItems.push({
    text: 'ℹ️ Настройка/помощь',
    onClick: function(event) {
      onShowSettingsClick();
    }
  });
  // помещаем в один контейнер все кнопки
  toolbar = createElement(`<div class='${CSS_PREFIX}-markup-tools'>
</div>`);
  dropdown = new Dropdown('Экспорт в...', exporterItems);
  toolbar.appendChild(dropdown.element);
  if (isCurrentSite$3()) {
    autoFormatButton = createElement(`<button class='${CSS_PREFIX}-markup-tools-autoformat' title="Убрать лишние пробелы, заменить символы и т.п.">
    <span class='autoformat-active'>${SVG_ICON_FLOWER_FULL}</span>
    <span class='autoformat'>${SVG_ICON_FLOWER_EMPTY}</span>
    <span class='autoformat-active'>Отменить форматирование</span>
    <span class='autoformat'>Отформатировать текст</span>
</button>`);
    autoFormatButton.addEventListener('click', getOnFormatButtonClickFunction(execute));
    toolbar.appendChild(autoFormatButton);
  }
  if (isCurrentSite$2()) {
    autoTabButton = createElement(`<button class='btn btn-for-formatting-text ${CSS_PREFIX}-markup-tools-autotab' title="Автоматическая простановка &lt;tab&gt;">
    <span class='autoformat-active'>${SVG_ICON_INDENT_FULL}</span>
    <span class='autoformat'>${SVG_ICON_INDENT_EMPTY}</span>
    <span class='autoformat-active'>Отменить простановку &lt;tab&gt;</span>
    <span class='autoformat'>Проставить &lt;tab&gt;</span>
</button>`);
  }
  if (isCurrentSite()) {
    autoTabButton = createElement(`<button class='btn btn-for-formatting-text ${CSS_PREFIX}-markup-tools-autotab' title="Автоматическая простановка абзацев">
    <span class='autoformat-active'>${SVG_ICON_INDENT_FULL}</span>
    <span class='autoformat'>${SVG_ICON_INDENT_EMPTY}</span>
    <span class='autoformat-active'>Отменить простановку абзацев</span>
    <span class='autoformat'>Проставить абзацы</span>
</button>`);
  }
  if (autoTabButton) {
    autoTabButton.addEventListener('click', getOnFormatButtonClickFunction(addTabsToText));
    toolbar.appendChild(autoTabButton);
  }
  if (isCurrentSite()) {
    pasteButton = createElement(`<button class='btn btn-for-formatting-text ${CSS_PREFIX}-markup-tools-paste' title="Вставка из буфера обмена с сохранением форматирования">
    <span class='paste'>${SVG_ICON_PASTE}</span>
    Вставка из буфера обмена
</button>`);
    pasteButton.addEventListener('click', async function(event) {
      var editor;
      event.preventDefault();
      editor = getChapterEditor$1();
      editor.body.value = (await pasteModal());
    });
    toolbar.appendChild(pasteButton);
  }
  container.appendChild(toolbar);
};

var init$3 = function() {
  ['FanficsMe', 'FicbookNet', 'AuthorToday', 'AO3'].forEach(function(siteName) {
    storage.registerVariable(`exportNotesStrategyFor${siteName}`, 'number');
  });
  if (isCurrentSite$3()) {
    storage.registerVariable("exportParagraphStrategyForFicbookNet", 'tab');
  }
  storage.registerVariable("exportParagraphStrategyForAO3", '4-spaces');
  storage.registerVariable("exportParagraphStrategyForGikami", '2em');
  onLocationChange(function() {
    if (isCurrentSite$3() && location.pathname === '/fic_write' && (location.search.indexOf('soaction=chapter_edit') > -1 || location.search.indexOf('soaction=chapter_new') > -1)) {
      initMarkupTools();
    }
    if (isCurrentSite$2() && (/\/home\/myfics\/\d+.\/parts\/\d+.?$/.test(location.pathname) || /\/home\/myfics\/\d+.\/addpart/.test(location.pathname))) {
      initMarkupTools();
    }
    if (isCurrentSite() && (/\/book\/\d+.\/add$/.test(location.pathname) || /\/book\/\d+.\/redact\/\d+.?$/.test(location.pathname))) {
      initMarkupTools();
    }
  });
};

var css$7 = ".nyamka-from-romano-userscript-image-cropper-modal-loading {\n  padding: 2em 0;\n  padding-bottom: 3em;\n  text-align: center;\n}\n.nyamka-from-romano-userscript-image-cropper-modal-loading p {\n  text-align: center;\n}\n.nyamka-from-romano-userscript-image-cropper-modal-loading p img {\n  position: relative;\n  top: 4px;\n  left: 4px;\n  max-width: 16px;\n}\n.nyamka-from-romano-userscript-image-cropper-modal-cropper {\n  display: none;\n  max-width: 100%;\n  min-width: 100%;\n}\n.nyamka-from-romano-userscript-image-cropper-modal-preview {\n  overflow: hidden;\n  max-height: 80vh;\n}\n@media (max-width: 700px) {\n  .nyamka-from-romano-userscript-image-cropper-modal-preview {\n    max-height: 65vh;\n  }\n}\n.nyamka-from-romano-userscript-image-cropper-modal-btns-block {\n  display: none;\n  text-align: center;\n}\n.nyamka-from-romano-userscript-image-cropper-modal-btns-block button {\n  border: 1px solid #CCCCCC;\n  padding: 5px 6px;\n  background: #F0F0EE;\n  text-align: center;\n  white-space: nowrap;\n  cursor: pointer;\n  margin: 10px;\n  margin-top: 0;\n}\n.nyamka-from-romano-userscript-image-cropper-modal-btns-block button:hover, .nyamka-from-romano-userscript-image-cropper-modal-btns-block button:focus {\n  background: #d8d8c4;\n}";
n(css$7,{});

var imageCropperModal = (function() {
  var modal;
  modal = null;
  return function(imageFile) {
    if (modal) {
      modal.destroy();
    }
    modal = new Modal({
      title: "Обрезка картинки",
      content: `<div class='${CSS_PREFIX}-image-cropper-modal'>
    <div class='${CSS_PREFIX}-image-cropper-modal-loading'>
        <p>
            Подождите, пока зарузится редактор
            <img src="https://fanfics.me/images/load_2.gif">
        </p>
    </div>
    <div class='${CSS_PREFIX}-image-cropper-modal-btns-block'>
        <button class='upload-cropped'>Загрузить обрезанный файл</button>
        <button class='upload-original'>Загрузить файл</button>
    </div>
    <div class='${CSS_PREFIX}-image-cropper-modal-preview'>
        <img class='${CSS_PREFIX}-image-cropper-modal-cropper' src="${URL.createObjectURL(imageFile)}">
    </div>
    <div class='clear'></div>
</div>`
    });
    return new Promise(async function(resolve, reject) {
      var cropper;
      modal.show();
      try {
        Cropper;
      } catch (error1) {
        await Promise.all([loadOnce.js('https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.12/cropper.min.js'), loadOnce.css('https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.12/cropper.min.css')]);
      }
      modal.element.querySelector(`.${CSS_PREFIX}-image-cropper-modal-loading`).style.display = 'none';
      modal.element.querySelector(`.${CSS_PREFIX}-image-cropper-modal-cropper`).style.display = 'block';
      modal.element.querySelector(`.${CSS_PREFIX}-image-cropper-modal-btns-block`).style.display = 'block';
      cropper = new Cropper(modal.element.querySelector(`.${CSS_PREFIX}-image-cropper-modal-cropper`));
      modal.element.querySelector("button.upload-cropped").addEventListener('click', function() {
        cropper.getCroppedCanvas().toBlob(function(blob) {
          modal.destroy();
          modal = null;
          blob.name = imageFile.name;
          resolve(blob);
        });
      });
      modal.element.querySelector("button.upload-original").addEventListener('click', function() {
        modal.destroy();
        modal = null;
        resolve(imageFile);
      });
    });
  };
})();

var IMG_IMGBB_API_KEY = "data:image/png;base64,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";

var css$6 = ".nyamka-from-romano-userscript-imgbb-api-key-modal img {\n  width: 100%;\n  max-width: 350px;\n  margin-top: 0.5em;\n}\n.nyamka-from-romano-userscript-imgbb-api-key-modal input {\n  border: 1px solid #D8D8C4;\n  padding: 5px;\n  background: #fff;\n  color: #888;\n}\n.nyamka-from-romano-userscript-imgbb-api-key-modal input:focus {\n  color: black;\n}\n.nyamka-from-romano-userscript-imgbb-api-key-modal button {\n  border: 1px solid #CCCCCC;\n  padding: 5px 6px;\n  background: #F0F0EE;\n  text-align: center;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.nyamka-from-romano-userscript-imgbb-api-key-modal button:hover, .nyamka-from-romano-userscript-imgbb-api-key-modal button:focus {\n  background: #d8d8c4;\n}\n.nyamka-from-romano-userscript-imgbb-api-key-modal input, .nyamka-from-romano-userscript-imgbb-api-key-modal button {\n  margin: 0.5em 0;\n  margin-right: 0.5em;\n}";
n(css$6,{});

var imgBbApiKeyModal = (function() {
  var modal;
  modal = null;
  return function() {
    var imgbbApiKey, inputElement, saveButtonElement;
    if (modal) {
      modal.destroy();
    }
    modal = new Modal({
      title: "Настройка загрузки картинок",
      content: `<div class='${CSS_PREFIX}-imgbb-api-key-modal'>
    <input type='text' required='' placeholder='Вставьте сюда API key'>
    <button>Сохранить API key</button>
    <hr>
    <p>Для работы с загрузкой файлов вам нужно зарегистрировать API key на сайте <b>https://ru.imgbb.com</b></p>
    <ol>
        <li>Перейдите на <a href='https://imgbb.com/login' target='_blank'>https://imgbb.com/login</a> и войдите на сайт (или зарегистрируйтесь, если вас там нет)</li>
        <li>Перейдите на <a href='https://api.imgbb.com/'  target='_blank'>https://api.imgbb.com</a> и найдите на странице большую голубую кнопку "Get API key". Нажмите на нее</li>
        <li>
        Скопируйте полученый ключ из текстового инпута (на скриншоте ниже это "bla-blabla-blabla-bla") в текстовый инпут в этом модальном окне
        <div></div>
        <img src="${IMG_IMGBB_API_KEY}">
        </li>
    </ol>
    <p><b>ВНИМАНИЕ:</b> если вы будете удалять фото в личном кабинете https://ru.imgbb.com, но тут они тоже удалятся!</p>
</div>`
    });
    imgbbApiKey = storage.imgbbApiKey;
    saveButtonElement = modal.element.querySelector('button');
    inputElement = modal.element.querySelector('input');
    inputElement.value = imgbbApiKey;
    saveButtonElement.disabled = !imgbbApiKey;
    return new Promise(function(resolve, reject) {
      modal.show();
      inputElement.addEventListener('input', function() {
        imgbbApiKey = this.value;
        saveButtonElement.disabled = !this.value;
      });
      saveButtonElement.addEventListener('click', function() {
        if (!imgbbApiKey) {
          return;
        }
        storage.imgbbApiKey = imgbbApiKey;
        storage.saveData();
        modal.destroy();
        modal = null;
        resolve(imgbbApiKey);
      });
    });
  };
})();

var SVG_ICON_UPLOAD = "<svg focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><path fill=\"currentColor\" d=\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\" class=\"\"></path></svg>\n";

var css$5 = ".nyamka-from-romano-userscript-upload-image-modal-dnd-area {\n  display: none;\n  text-align: center;\n  padding: 4em 2em;\n  margin-bottom: 1em;\n  background-color: #c3a63f;\n  outline: 2px dashed #fcfaf2;\n  outline-offset: -10px;\n  -webkit-transition: outline-offset 0.15s ease-in-out, background-color 0.15s linear;\n  transition: outline-offset 0.15s ease-in-out, background-color 0.15s linear;\n  text-align: center;\n}\n.nyamka-from-romano-userscript-upload-image-modal-dnd-area.visible {\n  display: block;\n}\n.nyamka-from-romano-userscript-upload-image-modal-dnd-area.is-dragover {\n  outline-offset: -20px;\n  outline-color: #c3a63f;\n  background-color: #d8d8c4;\n}\n.nyamka-from-romano-userscript-upload-image-modal-dnd-area.is-dragover p, .nyamka-from-romano-userscript-upload-image-modal-dnd-area.is-dragover label, .nyamka-from-romano-userscript-upload-image-modal-dnd-area.is-dragover svg {\n  color: #c3a63f;\n}\n.nyamka-from-romano-userscript-upload-image-modal-dnd-area p, .nyamka-from-romano-userscript-upload-image-modal-dnd-area label {\n  text-align: center !important;\n  color: #fcfaf2;\n  margin: 0.5em 0;\n  font-size: 120%;\n}\n.nyamka-from-romano-userscript-upload-image-modal-dnd-area label {\n  text-decoration: underline;\n  cursor: pointer;\n}\n.nyamka-from-romano-userscript-upload-image-modal-dnd-area input[type=file] {\n  display: none;\n}\n.nyamka-from-romano-userscript-upload-image-modal-svg-upload {\n  max-width: 5em;\n  text-align: center;\n  margin: 0 auto;\n  color: #fcfaf2;\n}\n.nyamka-from-romano-userscript-upload-image-modal-errors {\n  display: none;\n  padding: 5em 0;\n  text-align: center;\n  text-align: center;\n}\n.nyamka-from-romano-userscript-upload-image-modal-errors.visible {\n  display: block;\n}\n.nyamka-from-romano-userscript-upload-image-modal-errors ul {\n  margin-bottom: 1em;\n  text-align: center;\n}\n.nyamka-from-romano-userscript-upload-image-modal-errors ul li {\n  color: #ca0000;\n  margin-bottom: 0.5em;\n}\n.nyamka-from-romano-userscript-upload-image-modal-description p {\n  margin: 0.5em 0;\n  text-align: left;\n}\n.nyamka-from-romano-userscript-upload-image-modal-description .change-api-key {\n  cursor: pointer;\n  text-decoration: underline;\n}\n.nyamka-from-romano-userscript-upload-image-modal-upload-progress {\n  display: none;\n  padding: 2em 0;\n  text-align: center;\n  display: none;\n}\n.nyamka-from-romano-userscript-upload-image-modal-upload-progress.visible {\n  display: block;\n}\n.nyamka-from-romano-userscript-upload-image-modal-upload-progress li {\n  margin: 0.5em 0;\n  text-align: center;\n}\n.nyamka-from-romano-userscript-upload-image-modal-upload-progress button {\n  display: none;\n  margin-top: 3em;\n}\n.nyamka-from-romano-userscript-upload-image-modal-upload-progress button.visible {\n  display: inline-block;\n}\n.nyamka-from-romano-userscript-upload-image-modal button {\n  border: 1px solid #CCCCCC;\n  padding: 5px 6px;\n  background: #F0F0EE;\n  text-align: center;\n  white-space: nowrap;\n  cursor: pointer;\n  margin: 0.5em 0;\n  margin-right: 0.5em;\n}\n.nyamka-from-romano-userscript-upload-image-modal button:hover, .nyamka-from-romano-userscript-upload-image-modal button:focus {\n  background: #d8d8c4;\n}\n.nyamka-from-romano-userscript-upload-image-modal .status {\n  font-weight: bold;\n}\n.nyamka-from-romano-userscript-upload-image-modal .status.fail {\n  color: #ca0000;\n}\n.nyamka-from-romano-userscript-upload-image-modal .status.fail img {\n  display: none;\n}\n.nyamka-from-romano-userscript-upload-image-modal .status.success {\n  color: green;\n}\n.nyamka-from-romano-userscript-upload-image-modal .status.success img {\n  display: none;\n}\n.nyamka-from-romano-userscript-upload-image-modal .status img {\n  position: relative;\n  top: 3px;\n  left: 3px;\n  max-width: 16px;\n}\n.nyamka-from-romano-userscript-upload-image-modal .visible-lg {\n  display: none;\n}\n@media (min-width: 1023px) {\n  .nyamka-from-romano-userscript-upload-image-modal .visible-lg {\n    display: block;\n  }\n}";
n(css$5,{});

var IMAGE_ALLOWED_EXT, IMAGE_ALLOWED_MAX_SIZE, isFileAllowedForUpload, uploadImage,
  indexOf$2 = [].indexOf;

IMAGE_ALLOWED_EXT = ['jpg', 'jpeg', 'png', 'gif', 'tiff', 'bmp'];

IMAGE_ALLOWED_MAX_SIZE = 30 * 1024 * 1024; // 30 mb

isFileAllowedForUpload = function(file) {
  var ref;
  if (ref = file.type.split('/')[1], indexOf$2.call(IMAGE_ALLOWED_EXT, ref) < 0) {
    return `Файл <b>${file.name}</b> нельзя загружать, т.к. это неразрешенный формат ${file.type || 'unknown'}. Выберите другой файл`;
  }
  if (file.size > IMAGE_ALLOWED_MAX_SIZE) {
    return `Файл <b>${file.name}</b> нельзя загружать, т.к. его размер >= 30 мегабайтам. Уменьшите картинку в фоторедакторе`;
  }
  return true;
};

uploadImage = async function(image) {
  var form;
  form = new FormData();
  form.append('image', image, image.name);
  return (await fetch(`https://api.imgbb.com/1/upload?key=${storage.imgbbApiKey}`, {
    method: 'POST',
    body: form
  }));
};

var uploadImageModal = (function() {
  var modal, onClipboardPasteRmWatcher;
  modal = null;
  onClipboardPasteRmWatcher = null;
  return async function() {
    if (!storage.imgbbApiKey) {
      (await imgBbApiKeyModal());
    }
    if (modal) {
      modal.destroy();
    }
    if (onClipboardPasteRmWatcher) {
      onClipboardPasteRmWatcher();
    }
    modal = new Modal({
      title: "Загрузка изображения",
      content: `<div class='${CSS_PREFIX}-upload-image-modal'>
    <div class="${CSS_PREFIX}-upload-image-modal-dnd-area visible">
        <div class='${CSS_PREFIX}-upload-image-modal-svg-upload'>
            ${SVG_ICON_UPLOAD}
        </div>
        <p><b>Перетащите изображение в эту область для начала загрузки</b></p>
        <p><small>или</small></p>
        <label for='${CSS_PREFIX}-label-image-upload' role='button'><b>Выберите изображение</b></label>
        <input type='file' id='${CSS_PREFIX}-label-image-upload' accept='${IMAGE_ALLOWED_EXT.map(function(ext) {
        return "image/" + ext;
      })}' multiple>
        <div class='visible-lg'>
            <p><small>или</small></p>
            <p><b>Вставьте изображение из буфера обмена по Ctrl+V</b> <small>(может работать не во всех браузерах и не со всеми картинками)</small></p>
        </div>
    </div>
    <div class='${CSS_PREFIX}-upload-image-modal-upload-progress'>
        <div></div>
        <button>Вставить ссылки в текст</button>
    </div>
    <div class='${CSS_PREFIX}-upload-image-modal-errors'>
        <div class='${CSS_PREFIX}-upload-image-modal-errors-content'></div>
        <button>Выбрать файлы заново</button>
    </div>
    <div class='${CSS_PREFIX}-upload-image-modal-description'>
        <p>Файлы загружаются через <a href='https://ru.imgbb.com/' target='_blank'>https://ru.imgbb.com</a></p>
        <p>Чтоб настроить API key <a role='button' class='change-api-key'>нажмите сюда</a></p>
    </div>
</div>`
    });
    return new Promise(function(resolve, reject) {
      var areaElement, errorsElement, highlightArea, onFilesSelect, unhighlightArea;
      modal.show();
      highlightArea = function(event) {
        areaElement.classList.add('is-dragover');
      };
      unhighlightArea = function() {
        areaElement.classList.remove('is-dragover');
      };
      onFilesSelect = async function(files) {
        var cropped, errors, file, isAllUploaded, isAllowed, j, len, progressElement, progressLis, promises, results;
        console.log('SELECTED', files);
        // проверяем, разрешена ли загрузка для выбранных файлов
        errors = [];
        for (j = 0, len = files.length; j < len; j++) {
          file = files[j];
          isAllowed = isFileAllowedForUpload(file);
          if (isAllowed !== true) {
            errors.push(isAllowed);
          }
        }
        if (errors.length) {
          areaElement.classList.remove('visible');
          errorsElement.classList.add('visible');
          errorsElement.querySelector(`.${CSS_PREFIX}-upload-image-modal-errors-content`).replaceChildren(createElement(`<ul>
    ${errors.map(function(text) {
            return `<li>${text}</li>`;
          }).join('')}
</ul>`));
          return;
        }
        if (files.length === 1) {
          // открываем мод окно с обрезкой
          cropped = (await imageCropperModal(files[0]));
          files = [cropped];
        }
        if (files.length) {
          // начинаем загрузку
          progressLis = [];
          promises = Array.prototype.slice.call(files).map(async function(file, i) {
            var body, result;
            progressLis.push(`${file.name} - <span class='status'>загружается<img src='https://fanfics.me/images/load_2.gif'></span>`);
            result = (await uploadImage(file));
            try {
              body = (await result.json());
            } catch (error1) {
              body = {
                error: {
                  message: 'Bad Request'
                }
              };
            }
            if (result.status !== 200) {
              progressElement.querySelectorAll('li')[i].children[0].textContent = `Не получилось загрузить. Ошибка сервера ru.imgbb.com: ${body.error.message}`;
              progressElement.querySelectorAll('li')[i].children[0].classList.add('fail');
              return false;
            }
            progressElement.querySelectorAll('li')[i].children[0].textContent = "Загружено";
            progressElement.querySelectorAll('li')[i].children[0].classList.add('success');
            if (body.data && body.data.url) {
              if (extname(body.data.url) === '.gif') {
                return body.data.url + '?.jpg';
              }
              return body.data.url;
            }
            progressElement.querySelectorAll('li')[i].children[0].textContent = "Не получилось загрузить";
            progressElement.querySelectorAll('li')[i].children[0].classList.add('fail');
            return false;
          });
          areaElement.classList.remove('visible');
          errorsElement.classList.remove('visible');
          progressElement = modal.element.querySelector(`.${CSS_PREFIX}-upload-image-modal-upload-progress`);
          progressElement.classList.add('visible');
          progressElement.children[0].replaceChildren(createElement(`<ul>
    ${progressLis.map(function(html) {
            return `<li>${html}</li>`;
          }).join('')}
</ul>`));
          progressElement.querySelector('button').addEventListener('click', function() {
            modal.destroy();
            onClipboardPasteRmWatcher();
            onClipboardPasteRmWatcher = null;
            // готовые ссылки для вставки в документ
            resolve(results.filter(function(url) {
              return !!url;
            }).join('\n'));
          });
          results = (await Promise.all(promises));
          isAllUploaded = results.every(function(r) {
            return !!r;
          });
          if (isAllUploaded) {
            // если все загружено, то сразу и закрываем мод окно
            modal.destroy();
            onClipboardPasteRmWatcher();
            onClipboardPasteRmWatcher = null;
            // готовые ссылки для вставки в документ
            resolve(results.filter(function(url) {
              return !!url;
            }).join('\n'));
            return;
          }
          progressElement.querySelector('button').classList.add('visible');
        }
      };
      modal.element.querySelector('.change-api-key').addEventListener('click', imgBbApiKeyModal);
      errorsElement = modal.element.querySelector(`.${CSS_PREFIX}-upload-image-modal-errors`);
      errorsElement.querySelector('button').addEventListener('click', function() {
        areaElement.classList.add('visible');
        errorsElement.classList.remove('visible');
        areaElement.querySelector("input[type='file']").value = '';
      });
      areaElement = modal.element.querySelector(`.${CSS_PREFIX}-upload-image-modal-dnd-area`);
      areaElement.querySelector("input[type='file']").addEventListener('change', function(event) {
        return onFilesSelect(this.files || []);
      });
      ['drag', 'dragstart', 'dragend', 'dragover', 'dragenter', 'dragleave', 'drop'].forEach(function(eventName) {
        areaElement.addEventListener(eventName, function(event) {
          event.preventDefault();
          event.stopPropagation();
        });
      });
      ['dragover', 'dragenter'].forEach(function(eventName) {
        areaElement.addEventListener(eventName, highlightArea);
      });
      ['dragleave', 'dragend', 'drop'].forEach(function(eventName) {
        areaElement.addEventListener(eventName, unhighlightArea);
      });
      areaElement.addEventListener('drop', function(event) {
        var droppedFiles;
        if (event.originalEvent) {
          droppedFiles = event.originalEvent.dataTransfer.files;
        } else {
          droppedFiles = event.dataTransfer.files;
        }
        onFilesSelect(droppedFiles || []);
      });
      onClipboardPasteRmWatcher = onClipboardPaste(function(clipboardData) {
        var files, item, j, len, ref;
        if (!modal || !modal.isVisible()) {
          onClipboardPasteRmWatcher();
          onClipboardPasteRmWatcher = null;
          return;
        }
        files = [];
        ref = clipboardData.items;
        for (j = 0, len = ref.length; j < len; j++) {
          item = ref[j];
          if (item.kind === 'file') {
            files.push(item.getAsFile());
          }
        }
        if (files.length) {
          onFilesSelect(files);
        }
      });
    });
  };
})();

var SVG_ICON_SMILEY_FACE = "<svg focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 496 512\"><path fill=\"currentColor\" d=\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\" class=\"\"></path></svg>\n";

var css$4 = ".emoji-picker__wrapper {\n  z-index: 100;\n}\n.emoji-picker__wrapper .emoji-picker.light, .emoji-picker__wrapper .emoji-picker.dark {\n  --emoji-size: 1.2em !important;\n}";
n(css$4,{});

var TRANSLATIONS;

TRANSLATIONS = {
  search: 'Искать эмоджи...',
  categories: {
    recents: 'Недавние',
    smileys: 'Смайлы и эмоции',
    people: 'Люди и тело',
    animals: 'Животные и природа',
    food: 'Еда и напитки',
    activities: 'Мероприятия',
    travel: 'Путешествия и места',
    objects: 'Объекты',
    symbols: 'Символы',
    flags: 'Флаги',
    custom: 'Пользовательские'
  },
  notFound: 'Эмоджи не найдены'
};

var generateEmojiPickerButton = function(options) {
  var button, picker;
  options = options || {};
  options.cssClass = options.cssClass || `${CSS_PREFIX}-emoji-button`;
  picker = null;
  button = createElement(`<button class='${options.cssClass}' title='Эмоджи'>${SVG_ICON_SMILEY_FACE}</button>`);
  button.addEventListener('click', async function(event) {
    var emojiModule, theme;
    event.preventDefault();
    if (!picker) {
      emojiModule = (await loadOnce.js("https://cdn.jsdelivr.net/npm/@joeattardi/emoji-button@4.6.0/dist/index.min.js", {
        module: true
      }));
      theme = 'light';
      if (storage.isDarkModeEnabled) {
        theme = 'dark';
      }
      picker = new emojiModule.EmojiButton({
        i18n: TRANSLATIONS,
        showVariants: false,
        initialCategory: 'recents',
        theme
      });
      picker.on('emoji', function(selection) {
        event = new CustomEvent('emojiSelected', {
          detail: selection
        });
        button.dispatchEvent(event);
      });
    }
    picker.togglePicker(button);
  });
  return button;
};

var css$3 = "button.nyamka-from-romano-userscript-tools-upload-button, button.nyamka-from-romano-userscript-tools-emoji-button {\n  display: inline-block;\n  padding: 3px 10px 4px 10px;\n  font-size: 12px;\n  font-family: Tahoma, Roboto, Verdana, Sans-Serif, Lucida Sans, ubuntu;\n  border-radius: 2px;\n  background: #efefdb;\n  border: #92927e 1px solid;\n  cursor: pointer;\n  margin-left: 1em;\n}\nbutton.nyamka-from-romano-userscript-tools-upload-button:hover, button.nyamka-from-romano-userscript-tools-upload-button:focus, button.nyamka-from-romano-userscript-tools-emoji-button:hover, button.nyamka-from-romano-userscript-tools-emoji-button:focus {\n  background: #d8d8c4;\n}\nbutton.nyamka-from-romano-userscript-tools-upload-button svg, button.nyamka-from-romano-userscript-tools-emoji-button svg {\n  display: none;\n}\n@media (max-width: 700px) {\n  button.nyamka-from-romano-userscript-tools-upload-button, button.nyamka-from-romano-userscript-tools-emoji-button {\n    padding-top: 0;\n    padding-bottom: 0;\n    position: relative;\n    line-height: 1;\n    top: 4px;\n  }\n  button.nyamka-from-romano-userscript-tools-upload-button span.text, button.nyamka-from-romano-userscript-tools-emoji-button span.text {\n    display: none;\n  }\n  button.nyamka-from-romano-userscript-tools-upload-button svg, button.nyamka-from-romano-userscript-tools-emoji-button svg {\n    width: 1.9em;\n    display: inline-block;\n  }\n}\n\nbutton.nyamka-from-romano-userscript-tools-emoji-button {\n  padding-left: 3px;\n  padding-right: 3px;\n  padding-top: 0;\n}\nbutton.nyamka-from-romano-userscript-tools-emoji-button svg {\n  display: inline-block;\n  width: 1.2em;\n  position: relative;\n  top: 3.5px;\n}\n@media (max-width: 1023px) {\n  button.nyamka-from-romano-userscript-tools-emoji-button {\n    display: none;\n  }\n}\n\n.MessageCommentNewInstr button.nyamka-from-romano-userscript-tools-upload-button, .MessageCommentNewInstr button.nyamka-from-romano-userscript-tools-emoji-button, .DialogNewMsgButton button.nyamka-from-romano-userscript-tools-upload-button, .DialogNewMsgButton button.nyamka-from-romano-userscript-tools-emoji-button {\n  float: left;\n  top: 0;\n}\n.MessageCommentNewInstr button.nyamka-from-romano-userscript-tools-emoji-button, .DialogNewMsgButton button.nyamka-from-romano-userscript-tools-emoji-button {\n  padding-bottom: 3.3px;\n}\n\nbody[data-ffme-extender-script=true] button.nyamka-from-romano-userscript-tools-upload-button, body[data-ffme-extender-script=true] button.nyamka-from-romano-userscript-tools-emoji-button {\n  display: none;\n}\nbody[data-ffme-extender-script=true] button.ffe-emoji svg {\n  width: 15px;\n  padding-top: 2px;\n}\nbody[data-ffme-extender-script=true] .MessageNewInfoHead {\n  margin-top: 5px;\n  padding-left: 0;\n}\nbody[data-ffme-extender-script=true] .MessageNewInfoHead button:first-of-type {\n  margin-left: 0;\n}";
n(css$3,{});

var getEditorForm, getTextareaPlaceholderDiv, injectButtons, injectButtonsIntoFfmeToolbar, insertTextInCommentForm, onEmojiButtonClick, onUploadButtonClick,
  indexOf$1 = [].indexOf;

getEditorForm = function(child) {
  if (!child || !child.classList || !child.nodeName) {
    return;
  }
  if (child.classList && ((indexOf$1.call(child.classList, 'MessageCommentNewForm') >= 0) || (indexOf$1.call(child.classList, 'MessageNewForm') >= 0) || (indexOf$1.call(child.classList, 'DialogNewMsgForm') >= 0))) {
    return child;
  }
  if (child.nodeName === 'FORM' && child.id && (child.id.startsWith('messageEditForm') || child.id.startsWith('message_commentEditForm'))) {
    return child;
  }
  return getEditorForm(child.parentNode);
};

getTextareaPlaceholderDiv = function(child) {
  var mn;
  if (!child) {
    return;
  }
  if (child.nodeName === 'FORM' && child.id && child.id.startsWith('message_commentEditForm')) {
    return;
  }
  // форма редактора уже созданного коммента в треде
  mn = child.querySelector('div.MessageNew');
  if (mn) {
    return mn;
  }
  return getTextareaPlaceholderDiv(child.parentNode);
};

insertTextInCommentForm = async function(commentForm, delimeter, insertFunction) {
  var caretPosition, i, isEmptyTextarea, len, newText, ref, tarea, textarea, valueBegin, valueEnd;
  textarea = null;
  ref = commentForm.querySelectorAll('textarea');
  for (i = 0, len = ref.length; i < len; i++) {
    tarea = ref[i];
    if (tarea.tabIndex !== '-1') {
      textarea = tarea;
    }
  }
  if (!textarea) {
    return;
  }
  caretPosition = getInputCaretPosition(textarea);
  newText = (await insertFunction());
  if (!newText) {
    return;
  }
  valueBegin = textarea.value.substring(0, caretPosition.startPos);
  valueEnd = textarea.value.substring(caretPosition.endPos, textarea.value.length);
  isEmptyTextarea = !textarea.value.trim();
  textarea.value = '';
  delimeter = delimeter || '';
  textarea.value = valueBegin;
  if (delimeter && valueBegin[valueBegin.length - 1] !== delimeter) {
    textarea.value += delimeter;
  }
  textarea.value += newText;
  caretPosition = textarea.value.length;
  if (valueEnd && valueEnd[0] !== delimeter) {
    textarea.value += delimeter;
  }
  textarea.value += valueEnd;
  setTimeout(function() {
    var placeholder;
    textarea.focus();
    textarea.click();
    textarea.setSelectionRange(caretPosition, caretPosition);
    if (!isEmptyTextarea) {
      return;
    }
    // ищем элемент, который мимикрирует под textarea и нажимаем на него, чтоб сфокусировался textarea
    placeholder = getTextareaPlaceholderDiv(textarea);
    if (placeholder) {
      placeholder.click();
    }
  });
};

onUploadButtonClick = function(commentForm) {
  insertTextInCommentForm(commentForm, '\n', uploadImageModal);
};

onEmojiButtonClick = function(commentForm, emojiSymbol) {
  insertTextInCommentForm(commentForm, '', function() {
    return emojiSymbol.emoji;
  });
};

injectButtons = function(commentForm) {
  var emojiButton, inputSubmit, tools, uploadButton;
  if (!commentForm || commentForm.querySelector(`button.${CSS_PREFIX}-tools-upload-button`)) {
    return;
  }
  tools = commentForm.querySelector('.MessageCommentNewInstr') || commentForm.querySelector('.MessageNewInstr') || commentForm.querySelector('.CommentEditManagement') || commentForm.querySelector('.DialogNewMsgButton > div'); // панель инструментов новых сообщений в личке
  if (!tools) {
    return;
  }
  uploadButton = createElement(`<button class='${CSS_PREFIX}-tools-upload-button'>${SVG_ICON_UPLOAD}<span class='text'>Загрузить картинку</span></button>`);
  emojiButton = generateEmojiPickerButton({
    cssClass: `${CSS_PREFIX}-tools-emoji-button`
  });
  inputSubmit = tools.querySelector("input[type='submit']");
  if (inputSubmit.nextSibling) {
    tools.insertBefore(uploadButton, inputSubmit.nextSibling);
    tools.insertBefore(emojiButton, uploadButton.nextSibling);
  } else {
    tools.appendChild(uploadButton);
    tools.appendChild(emojiButton);
  }
  uploadButton.addEventListener('click', function(event) {
    event.preventDefault();
    onUploadButtonClick(commentForm);
  });
  emojiButton.addEventListener('emojiSelected', function(event) {
    event.preventDefault();
    onEmojiButtonClick(commentForm, event.detail);
  });
};

injectButtonsIntoFfmeToolbar = function(commentForm) {
  var emojiButton, eraserButton, helloButton, uploadButton, uploadButtonPatched;
  if (!commentForm || commentForm.querySelector("button[data-nyamka-script-patched='true']")) {
    return;
  }
  // перехватить события от нажатия не получится
  // полностью заменяем кнопку
  uploadButton = commentForm.querySelector('button.ffe-image');
  uploadButtonPatched = uploadButton.cloneNode(true);
  // помечаем кнопку, чтоб опять не патчить форму. НЕ ПЕРЕНОСИТЬ ЭТО СВОЙСТВО В form!
  uploadButtonPatched.setAttribute('data-nyamka-script-patched', true);
  uploadButton.parentNode.replaceChild(uploadButtonPatched, uploadButton);
  uploadButtonPatched.addEventListener('click', function(event) {
    event.preventDefault();
    onUploadButtonClick(commentForm);
  });
  // заменяем кнопку привет-ведьмы
  emojiButton = generateEmojiPickerButton({
    cssClass: "ffe-blog-text-attr ffe-emoji"
  });
  helloButton = commentForm.querySelector('button.ffe-hello');
  if (helloButton) {
    helloButton.parentNode.replaceChild(emojiButton, helloButton);
  } else {
    // это редактор нового поста в профиле
    eraserButton = commentForm.querySelector('button.ffe-eraser');
    if (eraserButton && eraserButton.nextSibling) {
      eraserButton.parentNode.insertBefore(emojiButton, eraserButton.nextSibling);
    } else {
      emojiButton = null;
    }
  }
  if (emojiButton) {
    emojiButton.addEventListener('emojiSelected', function(event) {
      event.preventDefault();
      onEmojiButtonClick(commentForm, event.detail);
    });
  }
  // помечаем страницу как такую, которая содержит сторонний скрипт
  document.body.setAttribute('data-ffme-extender-script', true);
};

var init$2 = function() {
  if (!isCurrentSite$3()) {
    return;
  }
  storage.registerVariable('imgbbApiKey', null);
  // наблюдение за новым контентом на странице
  onLocationChange(function() {
    if (location.pathname.startsWith('/user')) {
      document.addEventListener('DOMContentLoaded', function() {
        return injectButtons(document.querySelector('#MessageNewPost'));
      });
      return;
    }
    if (location.pathname.startsWith('/message')) {
      document.addEventListener('DOMContentLoaded', function() {
        return injectButtons(document.querySelector('.MessageCommentNewForm > form'));
      });
      return;
    }
  });
  onDomMutations(function(mutationsList) {
    var form, i, j, len, len1, m, node, ref;
    for (i = 0, len = mutationsList.length; i < len; i++) {
      m = mutationsList[i];
      if (m.addedNodes.length) {
        ref = m.addedNodes;
        for (j = 0, len1 = ref.length; j < len1; j++) {
          node = ref[j];
          if (!(node)) {
            continue;
          }
          if (node.nodeName === 'BUTTON' && indexOf$1.call(node.classList, 'ffe-image') >= 0) {
            // панель от Fanfics Extender. кнопка загрузки картинок
            injectButtonsIntoFfmeToolbar(getEditorForm(node), node);
            return;
          }
          if (node.nodeName === 'DIV' && (indexOf$1.call(node.classList, 'MessageCommentNewForm_Container') >= 0 || indexOf$1.call(node.classList, 'MessageNewForm') >= 0)) {
            // нашли панель для работы с сообщениями
            injectButtons(node);
            return;
          }
          if (node.nodeName === 'FORM' && indexOf$1.call(node.classList, 'DialogNewMsgForm') >= 0) {
            // редактор сообщений в личке
            injectButtons(node);
            return;
          }
          if (node.nodeName === 'TR' && (indexOf$1.call(node.classList, 'MessageComments') >= 0)) {
            form = node.querySelector('.MessageCommentNewForm_Container');
            if (form) {
              injectButtons(form);
              return;
            }
          }
          if (node.nodeName === 'TEXTAREA' && (indexOf$1.call(node.classList, 'MessageCommentNew') >= 0 || indexOf$1.call(node.classList, 'CommentEditText') >= 0 || indexOf$1.call(node.classList, 'MessageNew') >= 0)) { // редактор нового поста на странице профиля
            form = getEditorForm(node);
            if (form) {
              injectButtons(form);
              return;
            }
          }
          if (node.nodeName === 'INPUT' && node.type === 'submit' && indexOf$1.call(node.classList, 'modern_button') >= 0) {
            // когда в треде создали новый коммент (не на отдельной странице, а в списке "блого-записей")
            // или когда в личке создали новое сообщение
            form = getEditorForm(node);
            if (form) {
              injectButtons(form);
              return;
            }
          }
        }
      }
    }
  });
};

var OfficeHtmlToSimpleHtmlConverter, getNodeName,
  indexOf = [].indexOf;

getNodeName = function(node) {
  if (node && node.nodeName) {
    return node.nodeName.toLowerCase();
  }
  return '';
};

OfficeHtmlToSimpleHtmlConverter = class OfficeHtmlToSimpleHtmlConverter {
  constructor() {
    this.allowedSimpleTags = ['b', 'i', 's', 'u'];
    this.allowedTags = ['h1', 'h2', 'center', 'right'];
    this.ignoreBackgrounds = [
      "#cccccc",
      "rgb(204, 204, 204)", //серый
      "#b7b7b7",
      "rgb(183, 183, 183)",
      "#999999",
      "rgb(153, 153, 153)",
      "#666666",
      "rgb(102, 102, 102)",
      "#434343",
      "rgb(67, 67, 67)",
      "#ff0000",
      "rgb(255, 0, 0)", //красный
      "#cc0000",
      "rgb(204, 0, 0)"
    ];
  }

  isNodeNameSimpleTag(nodeName) {
    if (isString(nodeName)) {
      return indexOf.call(this.allowedSimpleTags, nodeName) >= 0;
    }
    return true;
  }

  generateOpenTag(nodeName) {
    if (isString(nodeName)) {
      nodeName = [nodeName];
    }
    return nodeName.filter((n) => {
      return indexOf.call(this.allowedTags, n) >= 0 || indexOf.call(this.allowedSimpleTags, n) >= 0;
    }).map(function(n) {
      return `<${n}>`;
    }).join('');
  }

  generateCloseTag(nodeName) {
    var closeTag;
    if (isString(nodeName)) {
      nodeName = [nodeName];
    }
    closeTag = nodeName.filter((n) => {
      return indexOf.call(this.allowedTags, n) >= 0 || indexOf.call(this.allowedSimpleTags, n) >= 0;
    }).reverse().map(function(n) {
      return `</${n}>`;
    }).join('');
    if (indexOf.call(nodeName, 'center') >= 0 || indexOf.call(nodeName, 'right') >= 0) {
      closeTag += '\n';
    }
    return closeTag;
  }

  getNodeName(elementDom) {
    var _nodeName, nodeName, ref, ref1;
    nodeName = getNodeName(elementDom);
    if ((nodeName === 'span' || nodeName === 'p') && elementDom && elementDom.style) {
      _nodeName = [];
      /*
          порядок тегов важен! сначала должны находиться center/right
      */
      if ((ref = elementDom.style['text-align']) === 'center' || ref === 'right') {
        _nodeName.push(elementDom.style['text-align']);
      }
      if ((ref1 = elementDom.style['font-weight']) === '700' || ref1 === '900') {
        _nodeName.push('b');
      }
      if ((elementDom.style['font-style']) === 'italic') {
        _nodeName.push('i');
      }
      if ((elementDom.style['text-decoration']) === 'underline') {
        _nodeName.push('u');
      }
      if (_nodeName.length) {
        return _nodeName;
      }
    }
    return nodeName;
  }

  isElementIgnored(elementDom) {
    var ref, ref1;
    if (elementDom && elementDom.style) {
      return (ref = elementDom.style['background-color'], indexOf.call(this.ignoreBackgrounds, ref) >= 0) || (ref1 = elementDom.style['background'], indexOf.call(this.ignoreBackgrounds, ref1) >= 0);
    }
    return false;
  }

  domToSimpleHtml(elementDom) {
    var child, j, len, nodeName, ref, simpleHtml;
    if (this.isElementIgnored(elementDom)) {
      return '';
    }
    nodeName = this.getNodeName(elementDom);
    if (nodeName === 'br') {
      return '<empty-line>\n';
    }
    if (nodeName === 'hr') {
      return '<hr>\n';
    }
    if ((!elementDom.children || !elementDom.children.length) && !elementDom.textContent) {
      if (nodeName === 'p' && !nodeName.length) {
        return '<empty-line>\n';
      }
      return '';
    }
    if (nodeName === 'h1' || nodeName === 'h2') {
      return `<${nodeName}>${elementDom.textContent}</${nodeName}>\n`;
    }
    simpleHtml = this.generateOpenTag(nodeName);
    if (!elementDom.children || !elementDom.children.length) {
      simpleHtml += elementDom.textContent;
    }
    ref = elementDom.children || [];
    for (j = 0, len = ref.length; j < len; j++) {
      child = ref[j];
      simpleHtml = `${simpleHtml}${this.domToSimpleHtml(child)}`;
    }
    simpleHtml = simpleHtml + this.generateCloseTag(nodeName);
    if (nodeName === 'p') {
      simpleHtml += '\n';
    }
    return simpleHtml;
  }

  cleanGoogleDocsHtmlText(htmlText) {
    var div, doc, j, k, len, len1, mainNode, node, nodes, ref;
    doc = createElement(htmlText);
    nodes = [];
    try {
      mainNode = doc.querySelector("b[id^=docs-internal-guid-]");
      if (mainNode) {
        nodes = mainNode.children;
      }
    } catch (error1) {
    }
    if (!nodes.length) {
      ref = createElement(htmlText).children;
      // быстро найти не получилось
      for (j = 0, len = ref.length; j < len; j++) {
        node = ref[j];
        if (getNodeName(node) !== 'meta') {
          nodes.push(node);
        }
      }
      if ((nodes.length === 2 && getNodeName(nodes[1]) === 'br') || nodes.length === 1) {
        nodes = nodes[0].children;
      }
    }
    div = document.createElement('div');
    for (k = 0, len1 = nodes.length; k < len1; k++) {
      node = nodes[k];
      // баг с игнором дублирующихся нодов
      div.appendChild(node.cloneNode(true));
    }
    return div;
  }

  cleanLibreOfficeHtmlText(htmlText) {
    var doc;
    // TODO: доделать парсе для libreOffice
    doc = createElement(htmlText);
    return doc.querySelector('body');
  }

  cleanDefaultHtmlText(htmlText) {
    return this.cleanGoogleDocsHtmlText(htmlText);
  }

  detectOfficeType(htmlText) {
    if (htmlText.includes('id="docs-internal-guid-')) {
      return 'googleDocs';
    }
    if (htmlText.startsWith("<!DOCTYPE HTML PUBLIC") && (htmlText.indexOf("LibreOffice") > -1 || htmlText.indexOf("OpenOffice") > -1)) {
      return 'libreOffice';
    }
    return 'html';
  }

  convert(htmlText) {
    var cleaned, docType, domElement, text;
    docType = this.detectOfficeType(htmlText);
    if (docType === 'googleDocs') {
      domElement = this.cleanGoogleDocsHtmlText(htmlText);
    } else if (docType === 'libreOffice') {
      domElement = this.cleanLibreOfficeHtmlText(htmlText);
    } else {
      domElement = this.cleanDefaultHtmlText(htmlText);
    }
    text = this.domToSimpleHtml(domElement);
    // вырезаем теги ignore
    cleaned = text;
    Array.from(text.matchAll(/<ignore>(.*?)<\/ignore>/g)).map(function(value) {
      cleaned = cleaned.replaceAll(value, '');
    });
    return {
      text: cleaned,
      type: docType
    };
  }

};

var htmlToSimpleHtml = function(htmlText) {
  var c;
  c = new OfficeHtmlToSimpleHtmlConverter();
  return c.convert(htmlText);
};

var simpleHtmlToChapters = function(textHtml) {
  var allMatchedTitles, body, chapters, endIndex, i, j, len, match, title;
  // парсим на заголовки и блоки
  chapters = [];
  textHtml = textHtml.replaceAll("<h2>", "<h1>").replaceAll("</h2>", "</h1>");
  allMatchedTitles = Array.from(textHtml.matchAll(/<h1>(.*?)<\/h1>/g));
  for (i = j = 0, len = allMatchedTitles.length; j < len; i = ++j) {
    match = allMatchedTitles[i];
    title = match[1].trim() || "";
    if (allMatchedTitles[i + 1]) {
      endIndex = allMatchedTitles[i + 1].index;
    } else {
      endIndex = textHtml.length - 1;
    }
    body = textHtml.substring(match.index + match[0].length, endIndex).trim();
    chapters.push({title, body});
  }
  if (!chapters.length) {
    chapters = [
      {
        title: "",
        body: textHtml
      }
    ];
  }
  return chapters;
};

var IMG_GDOCS_PALETTE = "data:image/jpeg;base64,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";

var css$2 = ".nyamka-from-romano-userscript-chapters-importer-modal-paste-area {\n  display: none;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-paste-area.visible {\n  display: block;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-paste-area textarea {\n  width: 100%;\n  min-height: 5em;\n  resize: none;\n  margin-bottom: 15px;\n  box-sizing: border-box;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-paste-area p {\n  text-align: center !important;\n  color: #fcfaf2;\n  margin: 0.5em 0;\n  font-size: 120%;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-paste-area svg, .nyamka-from-romano-userscript-chapters-importer-modal-paste-area p {\n  display: none;\n}\n@media (min-width: 1023px) {\n  .nyamka-from-romano-userscript-chapters-importer-modal-paste-area {\n    text-align: center;\n    padding: 2em 2em;\n    margin-bottom: 1em;\n    background-color: #c3a63f;\n    outline: 2px dashed #fcfaf2;\n    outline-offset: -10px;\n    -webkit-transition: outline-offset 0.15s ease-in-out, background-color 0.15s linear;\n    transition: outline-offset 0.15s ease-in-out, background-color 0.15s linear;\n    text-align: center;\n  }\n  .nyamka-from-romano-userscript-chapters-importer-modal-paste-area svg, .nyamka-from-romano-userscript-chapters-importer-modal-paste-area p {\n    display: inline-block;\n  }\n  .nyamka-from-romano-userscript-chapters-importer-modal-paste-area textarea {\n    display: none;\n  }\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-svg-paste {\n  max-width: 5em;\n  text-align: center;\n  margin: 0 auto;\n  color: #fcfaf2;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-errors {\n  display: none;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-errors.visible {\n  display: block;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-errors p {\n  color: #ca0000;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-description {\n  display: none;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-description.visible {\n  display: block;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-debug {\n  display: none;\n  text-align: center;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-debug.visible {\n  display: block;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal-debug button {\n  text-align: center;\n  margin: 0 auto;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal .bg-grey, .nyamka-from-romano-userscript-chapters-importer-modal .bg-red {\n  padding: 2px 4px;\n  padding-top: 1px;\n  border-radius: 2px;\n  white-space: nowrap;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal .bg-grey {\n  background: gray;\n  color: black;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal .bg-red {\n  background: red;\n  color: black;\n}\n.nyamka-from-romano-userscript-chapters-importer-modal img {\n  max-width: 350px;\n  width: 100%;\n}\n\n@media (min-width: 1023px) {\n  body[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-chapters-importer-modal-paste-area {\n    background-color: #4e2b18;\n    outline: 2px dashed #faf5ea;\n  }\n}\n\n@media (min-width: 1023px) {\n  body[data-nyamka-script=gikami-ru] .nyamka-from-romano-userscript-chapters-importer-modal-paste-area {\n    background-color: #54a6ff;\n    outline: 2px dashed #f0f2f5;\n  }\n}";
n(css$2,{});

var chaptersImporterModal = (function() {
  var debugData, modal, onClipboardPasteRmWatcher;
  modal = null;
  onClipboardPasteRmWatcher = null;
  debugData = null;
  return function(multipleChapters) {
    var exportSettings, i, len, property, ref, selectElement, title;
    if (modal) {
      modal.destroy();
    }
    debugData = {
      status: 'OK',
      rawOfficeType: 'unknown',
      rawOfficeHtml: '',
      convertedHtml: '',
      error: null
    };
    title = "Импортирование главы из Google Docs";
    exportSettings = [];
    if (multipleChapters) {
      title = "Импортирование глав из Google Docs";
    }
    if (exportSettings.length) {
      //exportSettings.unshift("<h3>Настроийки импорта</h3>")
      exportSettings.push("<hr>");
    }
    modal = new Modal({
      title: title,
      content: `<div class='${CSS_PREFIX}-chapters-importer-modal'>
    <div class="${CSS_PREFIX}-chapters-importer-modal-paste-area visible">
        <div class='${CSS_PREFIX}-chapters-importer-modal-svg-paste'>
            ${SVG_ICON_PASTE}
        </div>
        <p><b>Вставьте текст из Google Docs из буфера обмена по Ctrl+V</b></p>
        <div><textarea class='form-control' placeholder="Вставьте текст из Google Docs из буфера обмена в это текстовое поле"></textarea></div>
    </div>
    ${exportSettings.join('')}
    <div class='${CSS_PREFIX}-chapters-importer-modal-description visible'>
        <p><i>Импортированы будут заголовки 1 и 2 уровня, жирный, курсив и перечеркнутый текст. Также будет импортированы выравнивания (по центру, по правому краю) и горизонтальные линии. Картинки, таблицы, списки нормально импортироваться не смогут.</i></p>
        <p>Заголовки глав должны быть оформлены стилями "Заголовок 1" или "Заголовок 2" (оба варианта будут считаться названиями глав).</p>
        <p>Можно импортировать сноски с тегами <b>&lt;note&gt;&lt;/note&gt;</b> и <b>&lt;footnote&gt;&lt;/footnote&gt;</b></p>
        <p>
            Если вы хотите, чтоб какой-то текст был проигнорирован при импорте, то
            выделите его красным цветом <span class='bg-red'>вот так</span>
            или
            выделите серым цветом <span class='bg-grey'>вот так</span>
            или
            заключите текст в тег <b>&lt;ignore&gt;&lt;/ignore&gt;</b>
        </p>
        <p>Кнопка выделения текста в Google docs:</p>
        <img src="${IMG_GDOCS_PALETTE}">
    </div>
    <div class='${CSS_PREFIX}-chapters-importer-modal-errors'>
        <p>Возникли ошибки при импорте документа:</p>
        <ul>
        </ul>
    </div>
    <div class="${CSS_PREFIX}-chapters-importer-modal-debug">
        <hr>
        <button class='btn btn-default'>Скачать debug-данные</button>
    </div>
    <div class='clear'></div>
</div>`
    });
    ref = modal.element.querySelectorAll('select');
    for (i = 0, len = ref.length; i < len; i++) {
      selectElement = ref[i];
      property = selectElement.getAttribute('data-property');
      if (!property) {
        continue;
      }
      selectElement.value = storage[property];
      selectElement.addEventListener('change', function() {
        property = this.getAttribute('data-property');
        storage[property] = this.value;
        storage.saveData();
      });
    }
    return new Promise(function(resolve, reject) {
      var displayErrorAndSaveToDebug, processOfficeHtml;
      displayErrorAndSaveToDebug = function(error) {
        var ul;
        debugData.status = 'FAIL';
        if (!(error instanceof Array || Array.isArray(error))) {
          debugData.error = {
            text: error.text || error.toString(),
            stack: error.stack
          };
          ul = modal.element.querySelector(`.${CSS_PREFIX}-chapters-importer-modal-errors > ul`);
          ul.style.padding = 0;
          ul.appendChild(createElement(`${error.text || error.toString()}`));
          if (error.stack) {
            ul.appendChild(createElement(`<code>${error.stack}</code>`));
          }
        }
        modal.element.querySelector(`.${CSS_PREFIX}-chapters-importer-modal-errors`).classList.add('visible');
        modal.element.querySelector(`.${CSS_PREFIX}-chapters-importer-modal-debug`).classList.add('visible');
        modal.element.querySelector(`.${CSS_PREFIX}-chapters-importer-modal-paste-area`).classList.remove('visible');
        modal.element.querySelector(`.${CSS_PREFIX}-chapters-importer-modal-description`).classList.remove('visible');
        console.warn("Ошибка в chaptersImporterModal: ", error);
        console.log(debugData);
        reject(error);
      };
      processOfficeHtml = function(officeHtml) {
        var chapters, converted, error, titles;
        debugData.rawOfficeHtml = officeHtml;
        console.log(officeHtml);
        try {
          converted = htmlToSimpleHtml(officeHtml);
          debugData.convertedHtml = converted.text;
          debugData.rawOfficeType = converted.type;
        } catch (error1) {
          error = error1;
          displayErrorAndSaveToDebug(error);
          return;
        }
        try {
          chapters = simpleHtmlToChapters(converted.text);
          debugData.chapters = chapters;
        } catch (error1) {
          error = error1;
          displayErrorAndSaveToDebug(error);
          return;
        }
        if (!multipleChapters && chapters.length > 1) {
          // такой импорт производить нельзя
          titles = chapters.map(function(ch) {
            return `'${ch.title}'`;
          });
          displayErrorAndSaveToDebug({
            text: `<b>Обнаружено ${chapters.length} заголовкa(-ов) в тексте</b>: ${titles.join(', ')}.<br><b>Такое не разрешено.</b> Вставьте в модальное окно импорта текст без заголовка h1/h2 или с ОДНИМ заголовком h1/h2`
          });
          return;
        }
        return chapters;
      };
      //console.log processOfficeHtml(TEST_TEXT)
      //console.log debugData
      onClipboardPasteRmWatcher = onClipboardPaste(async function(clipboardData) {
        var chapters, data, itemHtml, itemText, items;
        if (!modal || !modal.isVisible()) {
          onClipboardPasteRmWatcher();
          onClipboardPasteRmWatcher = null;
          return;
        }
        data = null;
        items = Array.prototype.slice.call(clipboardData.items);
        itemText = items.find(function(item) {
          return item.type === 'text/plain';
        });
        itemHtml = items.find(function(item) {
          return item.type === 'text/html';
        });
        if (itemHtml) {
          data = (await getItemAsString(itemHtml));
        } else if (itemText) {
          data = (await getItemAsString(itemText));
        }
        if (onClipboardPasteRmWatcher) {
          onClipboardPasteRmWatcher();
          onClipboardPasteRmWatcher = null;
        }
        if (!data) {
          displayErrorAndSaveToDebug({
            text: "Текст в буфере обмена не обнаружен"
          });
          return;
        }
        chapters = processOfficeHtml(data);
        if (chapters) {
          modal.destroy();
          resolve(chapters);
        }
      });
      modal.element.querySelector(`.${CSS_PREFIX}-chapters-importer-modal-debug > button`).addEventListener('click', function() {
        downloadDataAsFile(debugData, 'debugData.json');
      });
      modal.show();
    });
  };
})();

var SVG_ICON_GOOGLE_DRIVE = "<svg aria-hidden=\"true\" focusable=\"false\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"currentColor\" d=\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\" class=\"\"></path></svg>\n";

var css$1 = "body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-chapters-importer-button {\n  border: 1px solid #CCCCCC;\n  padding: 5px 6px;\n  background: #F0F0EE;\n  text-align: center;\n  white-space: nowrap;\n  cursor: pointer;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-chapters-importer-button:hover, body[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-chapters-importer-button:focus {\n  background: #d8d8c4;\n}\nbody[data-nyamka-script=fanfics-me] .nyamka-from-romano-userscript-chapters-importer-button svg {\n  width: 11px;\n}\n\nbody[data-nyamka-script=ficbook-net] .nyamka-from-romano-userscript-chapters-importer-button svg, body[data-nyamka-script=gikami-ru] .nyamka-from-romano-userscript-chapters-importer-button svg {\n  width: 15px;\n  max-width: 15px;\n  margin-bottom: -2px;\n}";
n(css$1,{});

var importChapters, injectImportButton;

importChapters = function(chapters, allowMultipleChapters) {
  var editor;
  if (isCurrentSite$2()) {
    chapters = chapters.map(function(chapter) {
      chapter.body = chapter.body.replaceAll("<note>", "<footnote>").replaceAll("</note>", "</footnote>");
      return chapter;
    });
  }
  if (!allowMultipleChapters) {
    editor = getChapterEditor();
    if (!editor || !editor.title || !editor.body) {
      notification.error("Не получилось найти на сайте форму для редактирования главы");
      return;
    }
    if (chapters[0].title) {
      editor.title.value = chapters[0].title;
    }
    editor.body.value = chapters[0].body;
    notification.success("Текст импортирован. Теперь вы можете сохранить главу");
  }
};

injectImportButton = function(allowMultipleChapters) {
  var btnClass, buttonImport, container;
  container = document.querySelector('.nyamka-from-romano-userscript-markup-tools') || document.querySelector('.operations > .add-part') || document.querySelector('.medium-editor-book-stat'); //gikami
  if (!container) {
    return setTimeout(function() {
      return injectImportButton(allowMultipleChapters);
    }, 500);
  }
  if (container.querySelector(`button.${CSS_PREFIX}-chapters-importer-button`)) {
    return;
  }
  if (allowMultipleChapters) {
    btnClass = 'btn-default btn-sm mb-5';
  } else {
    btnClass = 'btn-for-formatting-text';
  }
  buttonImport = createElement(`<button class='btn ${btnClass} ${CSS_PREFIX}-chapters-importer-button''>
    ${SVG_ICON_GOOGLE_DRIVE}
    Импортировать
</button>`);
  container.appendChild(buttonImport);
  return buttonImport.addEventListener('click', async function(event) {
    var chapters, error;
    event.preventDefault();
    try {
      chapters = (await chaptersImporterModal());
    } catch (error1) {
      error = error1;
      console.log(error);
      return;
    }
    importChapters(chapters, allowMultipleChapters);
  });
};

//chaptersImporterModal()
//console.log ficbookNet.getChaptersListForFanfic()
var init$1 = function() {
  onLocationChange(function() {
    if (isCurrentSite$2()) {
      if (/\/home\/myfics\/\d+.\/parts\/\d+.?$/.test(location.pathname) || /\/home\/myfics\/\d+.\/addpart/.test(location.pathname)) {
        injectImportButton();
      }
      return;
    }
    if (isCurrentSite$3()) {
      if (location.pathname === '/fic_write' && (location.search.indexOf('soaction=chapter_edit') > -1 || location.search.indexOf('soaction=chapter_new') > -1)) {
        injectImportButton();
      }
      return;
    }
    if (isCurrentSite()) {
      if (/\/book\/\d+.\/add$/.test(location.pathname) || /\/book\/\d+.\/redact\/\d+.?$/.test(location.pathname)) {
        injectImportButton();
      }
      return;
    }
  });
};

var css = "body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] {\n  background: #666666;\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar2, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar3, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .AuthorIntroduction .title, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar {\n  background: #555555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar3 {\n  border-bottom: none;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar-pers, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar-menu li a {\n  color: #bbb;\n  text-shadow: 1px 1px 1px #000000;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #back, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ReadTextContainer h2, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .tr .title {\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #take_bookmark {\n  color: #3caa3c;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #back:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #take_bookmark:hover {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .read_properties_button:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .read_properties_button.hover {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HeaderSlideMenu {\n  background-color: #555;\n  border-color: #333;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HeaderSlideMenu .light {\n  color: #bbbbbb;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HeaderSlideMenu li {\n  border-color: #555555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HeaderSlideMenu li:hover {\n  background-color: #777777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ReadTextContainer, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ReadTextContainerIn, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ReadTable, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .summary_text_fic3, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .horizontal-bar, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #CommentForm .title {\n  background: #333;\n  border-color: #333;\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .horizontal-bar, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ReadTextContainer, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ReadTable {\n  border-color: #777777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] a {\n  color: #1e1e93;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] a:visited {\n  color: #1e1e93;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] h1, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageCommentsCount {\n  color: #bbbbbb;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #CommentForm textarea, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #CommentForm .comment_area {\n  background: #777;\n  border-color: #555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .comments .title, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .SerieContainerTitle, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .CommentItemTop {\n  background: #777;\n  border-color: #555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .dotted_button:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .chContents_1:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .chContents_3:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .chNav_large:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .chNav:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .blockquote {\n  background-color: #333;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar-menu li:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar-menu li.hover {\n  background-color: #333;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar-pers:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .topbar-pers.hover {\n  background-color: #333;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FM_Management, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MarksList, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageCommentsCount {\n  border-color: #555;\n  background-color: #555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FM_Subscription, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MarksListHead {\n  color: #bbb;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FM_Subscription1:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FM_Subscription2:hover {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HorMenuSecondLine {\n  border-color: #777;\n  background-color: #555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HorMenuSecondLine .activ2 a {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HorMenuSecondLine .activ2 a:hover {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HorMenuSecondLine a:hover {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MarksListHead, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .chNav_large {\n  border-color: #777;\n  background-color: #555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MarksList1 .marks_list li:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MarksList1 .marks_list_add li:hover {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .totop:hover {\n  background-color: #777;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FM_List, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MarksList1 .marks_list {\n  filter: brightness(70%);\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .t-l, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .t-rl, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .t-lb, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .t-rlb, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageCommentsNext {\n  border-color: #555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FM_note_container {\n  background-color: #555;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content {\n  background: #666666;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-right {\n  background: #4d4d4d;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-right .main_menu li {\n  border-color: #404040;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-right .main_menu li a {\n  color: #8f8fff;\n  text-shadow: 0 0 1px black;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-right .main_menu li a:visited {\n  color: #8f8fff;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-right .main_menu li.checked {\n  border-color: #262626;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .main_menu2.insert_main_menu a {\n  color: #8f8fff;\n  text-shadow: 0 0 1px black;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .main_menu2.insert_main_menu a:visited {\n  color: #8f8fff;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-center, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HorMenuFirstLine {\n  background: #666666;\n  color: #eeeeee;\n  border-color: #4d4d4d;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-center li > a:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HorMenuFirstLine li > a:hover {\n  background: #595959;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #site-content-center li.activ2 > a, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .HorMenuFirstLine li.activ2 > a {\n  background: #4d4d4d;\n  border-color: #404040;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeft h2, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileRight h2, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FanartRight h2, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Sidebar_NativeAd, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageAloneHead {\n  background: #4d4d4d;\n  border-color: #333333;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeft h2 a, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileRight h2 a, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FanartRight h2 a, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Sidebar_NativeAd a, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageAloneHead a {\n  color: #8f8fff;\n  text-shadow: 0 0 1px black;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeft h2 a:visited, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileRight h2 a:visited, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FanartRight h2 a:visited, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Sidebar_NativeAd a:visited, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageAloneHead a:visited {\n  color: #8f8fff;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeftFic, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeft_PersonalCard {\n  border-color: #333333;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeftFic:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeft_PersonalCard:hover {\n  background: transparent;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileLeft_h2_descr, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FanartRight_h2_descr, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Sidebar_NativeAd_title {\n  background: gray;\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Profile_Head {\n  position: relative;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Profile_Head h1 > a {\n  color: white;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Profile_Head::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background: #00000082;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageCommentsShow, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .dropdown-click .body, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageManagement, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .profile_info_more,\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FanartTable2 .TdImg {\n  background: #737373;\n  color: #eeeeee !important;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .dropdown-click .header {\n  background: #666666;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageCommentsHide {\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageCommentsHide:hover {\n  background: #636363;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageNewManagementPrivate img {\n  filter: contrast(4.5);\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageNewManagementPrivate .small > div {\n  background: #737373 !important;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageNewManagementPrivate li:hover {\n  background: #636363;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .gen {\n  color: #6e006e;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .red {\n  color: #cb0000;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Comments, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .green, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .date {\n  color: #4dd34d !important;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .blue {\n  color: #00006e;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .light, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .small_light_link, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .small_light, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DateUpdate, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .FicDopInfo_Link,\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .ProfileInfo_main tr td {\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .header-search, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] div.MessageNew, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] textarea.MessageNew, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] input.MessageCommentNew, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] textarea.MessageCommentNew,\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .input_3, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] textarea.DialogNewMsgTextarea, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] textarea.CommentEditText, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .fdmain-search {\n  background-color: #e6e6e6;\n  color: #1a1a1a;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .header-search-answ {\n  background: #737373;\n  border-color: #595959;\n  box-shadow: 0 0 6px #202020;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .header-search-answ li:hover {\n  background: #8c8c8c;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] img.avatar, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] img.open-picture, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MyCommentsItemText img, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogItem_Avatar img, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogNewMsgHeader img,\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Message .MessageLeft a > img, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageCommentLeft a > img {\n  filter: brightness(0.7);\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PollVoteFormContainer {\n  border: 1px solid #404040;\n  background: #595959;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PollVoteFormContainer h2 {\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PollVoteForm_Answer {\n  background: #EFEFDB;\n  color: #666666;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PollVoteForm_Answer .light {\n  color: #666666;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PollVoteFormNoVoted .PollVoteForm_Answer:hover {\n  background: #D8D8C4;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PollVoteForm_AnswerPersentBg {\n  background: #D8D8C4;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PollMultiple .PollVoteForm_Answer.checked {\n  background: #D8D8C4;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MessageAloneTextFormat_Container .checked {\n  color: #666666;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .spoiler {\n  background: #595959;\n  color: #595959;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .spoiler.selected {\n  background: #595959;\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .spoiler::before {\n  background: #404040;\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .fic_info_title.nav {\n  background: #757575;\n  color: #eeeeee !important;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .fic_info_content {\n  background: #6e6e6e;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .RecommentCloud {\n  background: #545454;\n  border-color: #3b3b3b;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .RecommentCloud::before {\n  border-color: transparent transparent #3b3b3b #3b3b3b;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .RecommentCloud::after {\n  border-color: transparent transparent #545454 #545454;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #FicWriteMenu td.activ #publ_count, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #FicWriteMenu td.activ #moderation_count, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #FicWriteMenu td.activ #moderation_count, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #FicWriteMenu td.activ #deleted_count, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #FicWriteMenu td.activ #series_count {\n  color: #eeeeee !important;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .TextEditorContainer .TextFormat, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .TextEditorContainer .TextFormat2 {\n  color: #2e2e2e;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .TextFormat3 {\n  color: #2e2e2e;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogItem:hover, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogItem.notread, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogMsg.NotRead, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogMsg.DialogMsgSelected {\n  background: #545454;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogNewMsgForm {\n  background: #666666;\n  border-color: #545454;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogItem_LastMessage.notread, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogItem_LastMessage.notread .small.light, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogNewMsgAtchButton, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogNewMsgAtchButton .small.light {\n  color: #666666;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .DialogNewMsgButton img {\n  filter: contrast(4.5);\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] #data-container table.FullWidth {\n  background: #666666 !important;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .box-modal {\n  background: #666666;\n  color: #eeeeee;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .box-modal .box-modal_close.arcticmodal-close {\n  color: #262626;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Footer {\n  background: #333333;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Footer a {\n  color: #8f8fff;\n  text-shadow: 0 0 1px black;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .Footer a:visited {\n  color: #8f8fff;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .PropertiesMenu .sp .activ {\n  background: #595959;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MyCommentsItemShow {\n  color: #eeeeee !important;\n  background: #595959;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .MyCommentsItemShow.MyCommentsItemShowEmpty {\n  background: transparent;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .InfoContainer, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .InfoContainer h2, body.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me] .InfoContainer .light {\n  color: #666666;\n}\nbody.nyamka-from-romano-userscript-darkmode[data-nyamka-script=fanfics-me].nyamka-from-romano-userscript-app-view-notifications .ContentTable.Messages:not(.visible)::after {\n  background: #666666 !important;\n}\n\n.nyamka-from-romano-userscript-darkmode-settings label {\n  display: inline-block;\n  padding: 10px;\n  cursor: pointer;\n}";
n(css,{});

var getMenuContainer, getSettings;

getMenuContainer = async function() {
  var j, len, menu, ref;
  ref = [200, 500, 700, 1000, 1500];
  for (j = 0, len = ref.length; j < len; j++) {
    menu = document.querySelector('.main_menu2.insert_main_menu');
    if (!menu) {
      await timeout();
    } else {
      break;
    }
  }
  return menu;
};

getSettings = function() {
  var checked, settings;
  checked = '';
  if (storage.isDarkModeEnabled) {
    checked = 'checked';
    document.body.classList.add(`${CSS_PREFIX}-darkmode`);
  }
  settings = createElement(`<li data-nyamka-script='true' class='${CSS_PREFIX}-darkmode-settings'>
    <label>
        <input type='checkbox' ${checked}>
        Ночной режим включен
    </label>
</li>`);
  settings.querySelector('input').addEventListener('click', function() {
    storage.isDarkModeEnabled = !!this.checked;
    storage.saveData();
    if (!storage.isDarkModeEnabled) {
      document.body.classList.remove(`${CSS_PREFIX}-darkmode`);
    } else {
      document.body.classList.add(`${CSS_PREFIX}-darkmode`);
    }
  });
  return settings;
};

var init = function() {
  var settings;
  if (!isCurrentSite$3()) {
    return;
  }
  storage.registerVariable('isDarkModeEnabled', false);
  settings = getSettings();
  onLocationChange(async function() {
    var menu;
    menu = (await getMenuContainer());
    if (!menu || menu.parentNode.querySelector("li[data-nyamka-script]")) {
      return;
    }
    menu.parentNode.insertBefore(settings, menu.nextSibling);
  });
};

/*
// ==UserScript==
// @name         Нямка от Рóмана
// @namespace    http://tampermonkey.net/
// @version      0.41
// @description  пакет улучшений фикрайтерских сайтов
// @license     GPL-3.0-or-later
// @author       Roman O
// @match        https://fanfics.me/*
// @match        https://ficbook.net/*
// @grant        unsafeWindow
// @run-at document-body
// ==/UserScript==
*/

document.body.setAttribute('data-nyamka-script', location.host.replaceAll('.', '-'));

init();

init$4();

init$2();

init$3();

//siteNotifications.init()
init$1();